On Thursday 20 November 2003 17:52, iconi wrote:
ich möchte suse9.0 in einen raid 5 installieren WAS und WIE muss ich das tun?!? weiss jemand rat oder kennt jemand eine gute HP.
Gegeben sei ein Suse Linux 8.2 Rechner mit einigen SCSI-Festplatten zu jeweils
4.0 GB Größe:
$ cat /proc/scsi/scsi
Attached devices:
Host: scsi0 Channel: 00 Id: 00 Lun: 00
Vendor: VMware, Model: VMware Virtual S Rev: 1.0
Type: Direct-Access ANSI SCSI revision: 02
Host: scsi0 Channel: 00 Id: 01 Lun: 00
Vendor: VMware, Model: VMware Virtual S Rev: 1.0
Type: Direct-Access ANSI SCSI revision: 02
Host: scsi0 Channel: 00 Id: 02 Lun: 00
Vendor: VMware, Model: VMware Virtual S Rev: 1.0
Type: Direct-Access ANSI SCSI revision: 02
Host: scsi0 Channel: 00 Id: 03 Lun: 00
Vendor: VMware, Model: VMware Virtual S Rev: 1.0
Type: Direct-Access ANSI SCSI revision: 02
Host: scsi0 Channel: 00 Id: 04 Lun: 00
Vendor: VMware, Model: VMware Virtual S Rev: 1.0
Type: Direct-Access ANSI SCSI revision: 02
Der Rechner ist regulär und ohne RAID auf sda installiert:
$ df -Th
Filesystem Type Size Used Avail Use% Mounted on
/dev/sda2 reiserfs 3.6G 310M 3.3G 9% /
shmfs shm 62M 0 62M 0% /dev/shm
Es soll ein RAID-5 über sdb, sdc und sdd eingerichtet werden. sde soll ein Hot
Spare sein.
Wir partitionieren:
$ fdisk -l /dev/sdb
Disk /dev/sdb: 4294 MB, 4294967296 bytes
255 heads, 63 sectors/track, 522 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sdb1 1 7 56196 83 Linux
/dev/sdb2 8 522 4136737+ fd Linux raid autodetect
$ for i in sdc sdd sde; do sfdisk -d /dev/sdb | sfdisk /dev/$i; done
...
Wir erzeugen eine /etc/raidtab:
$ cp /usr/share/doc/packages/raidtools/raid5.conf.sample /etc/raidtab
und passen die Gerätenamen an und tragen zudem noch eine Spare ein:
$ vi /etc/raidtab
...
$ cat /etc/raidtab
# Sample raid-5 configuration
raiddev /dev/md0
raid-level 5
nr-raid-disks 3
chunk-size 4
# Parity placement algorithm
#parity-algorithm left-asymmetric
#
# the best one for maximum performance:
#
parity-algorithm left-symmetric
#parity-algorithm right-asymmetric
#parity-algorithm right-symmetric
# Spare disks for hot reconstruction
nr-spare-disks 1
device /dev/sdb1
raid-disk 0
device /dev/sdc1
raid-disk 1
device /dev/sdd1
raid-disk 2
device /dev/sde1
spare-disk 0
$ mkraid /dev/md0
handling MD device /dev/md0
analyzing super-block
disk 0: /dev/sdb1, 4192933kB, raid superblock at 4192832kB
disk 1: /dev/sdc1, 4192933kB, raid superblock at 4192832kB
disk 2: /dev/sdd1, 4192933kB, raid superblock at 4192832kB
disk 3: /dev/sde1, 4192933kB, raid superblock at 4192832kB
Das Device baut sich nun:
$ cat /proc/mdstat
Personalities : [raid5]
read_ahead 1024 sectors
md0 : active raid5 sde1[3] sdd1[2] sdc1[1] sdb1[0]
8385664 blocks level 5, 4k chunk, algorithm 2 [3/3] [UUU]
[================>....] resync = 83.3% (3494532/4192832) finish=0.2min
speed=55503K/sec
unused devices: <none>
Du kannst jetzt dort direkt ein Dateisystem einrichten:
$ mkfs -t xfs /dev/md0
meta-data=/dev/md0 isize=256 agcount=8, agsize=262052 blks
= sectsz=512
data = bsize=4096 blocks=2096416, imaxpct=0
= sunit=1 swidth=3 blks, unwritten=0
naming =version 2 bsize=4096
log =internal log bsize=4096 blocks=1200, version=1
= sectsz=512 sunit=1 blks
realtime =none extsz=12288 blocks=0, rtextents=0
$ mkdir /x
$ mount /dev/md0 /x
$ df -Th
Filesystem Type Size Used Avail Use% Mounted on
/dev/sda2 reiserfs 3.6G 301M 3.3G 9% /
shmfs shm 125M 0 125M 0% /dev/shm
white:/tmp/work
nfs 5.9G 2.0G 4.0G 34% /mnt
/dev/md0 xfs 8.0G 144K 8.0G 1% /x
$ umount /x
Das ist aber uncool. Cool ist es, wenn man nun schon dabei ist, auch gleich
lvm zu aktivieren:
$ vgscan
vgscan -- reading all physical volumes (this may take a while...)
vgscan -- "/etc/lvmtab" and "/etc/lvmtab.d" successfully created
vgscan -- WARNING: This program does not do a VGDA backup of your volume group
$ pvcreate /dev/md0
pvcreate -- physical volume "/dev/md0" successfully created
$ vgcreate system /dev/md0
vgcreate -- INFO: using default physical extent size 32 MB
vgcreate -- INFO: maximum logical volume size is 2 Terabyte
vgcreate -- doing automatic backup of volume group "system"
vgcreate -- volume group "system" successfully created and activated
Du hast jetzt einen Pool system von Plattenstreifen zu je 32 MB. lvm nennt
diese Plattenstreifen PEs (Physical Extents) und sie stammen aus den Platten
(Physical Volumes), die Du in den Pool geworfen hast. Da Du ein /dev/md0 in
den Pool geworfen hast, sind Deine Plattenstreifen RAID-5 gesichert.
Du kannst jetzt aus dem Pool Plattenstreifen entnehmen (Logical Extents, LEs)
und aus diesen Laufwerke bauen (Logical Volumes, LVs).
Das geht so: "Baue mir ein 400MB großes Home-Laufwerk mit dem Storage aus dem
Pool system".
$ lvcreate -L 400m -n home system
lvcreate -- rounding size up to physical extent boundary
lvcreate -- doing automatic backup of "system"
lvcreate -- logical volume "/dev/system/home" successfully created
$ mkfs -t xfs /dev/system/home
meta-data=/dev/system/home isize=256 agcount=8, agsize=13312 blks
= sectsz=512
data = bsize=4096 blocks=106496, imaxpct=0
= sunit=0 swidth=0 blks, unwritten=0
naming =version 2 bsize=4096
log =internal log bsize=4096 blocks=1200, version=1
= sectsz=512 sunit=0 blks
realtime =none extsz=65536 blocks=0, rtextents=0
$ mount /dev/system/home /home
$ df -Th
Filesystem Type Size Used Avail Use% Mounted on
/dev/sda2 reiserfs 3.6G 302M 3.3G 9% /
shmfs shm 125M 0 125M 0% /dev/shm
white:/tmp/work
nfs 5.9G 2.0G 4.0G 34% /mnt
/dev/system/home
xfs 412M 144K 412M 1% /home
Du kannst so ein LV auch growen:
$ lvextend -L +200M /dev/system/home
lvextend -- rounding relative size up to physical extent boundary
lvextend -- extending logical volume "/dev/system/home" to 640 MB
lvextend -- doing automatic backup of volume group "system"
lvextend -- logical volume "/dev/system/home" successfully extended
$ xfs_growfs /home
meta-data=/home isize=256 agcount=8, agsize=13312 blks
= sectsz=512
data = bsize=4096 blocks=106496, imaxpct=25
= sunit=0 swidth=0 blks, unwritten=0
naming =version 2 bsize=4096
log =internal bsize=4096 blocks=1200, version=1
= sectsz=512 sunit=0 blks
realtime =none extsz=65536 blocks=0, rtextents=0
data blocks changed from 106496 to 163840
$ df -Th
Filesystem Type Size Used Avail Use% Mounted on
/dev/sda2 reiserfs 3.6G 302M 3.3G 9% /
shmfs shm 125M 0 125M 0% /dev/shm
white:/tmp/work
nfs 5.9G 2.0G 4.0G 34% /mnt
/dev/system/home
xfs 636M 224K 636M 1% /home
Zur Datensicherung machen wir einen Snapshot des /home und mounten diesen
als /backup. Der Snapshot hat einen Background-Store von 100m, d.h. in /home
können sich bis zu 100m Daten ändern währen wir /backup sichern.
$ lvcreate -s -L 100m -n backup /dev/system/home
lvcreate -- rounding size up to physical extent boundary
lvcreate -- WARNING: the snapshot will be automatically disabled once it gets
full
lvcreate -- INFO: using default snapshot chunk size of 64 KB for "/dev/system/
backup"
lvcreate -- doing automatic backup of "system"
lvcreate -- logical volume "/dev/system/backup" successfully created
$ mkdir /backup
$ mount -o ro,nouuid /dev/system/backup /backup
$ df -Th
Filesystem Type Size Used Avail Use% Mounted on
/dev/sda2 reiserfs 3.6G 302M 3.3G 9% /
shmfs shm 125M 0 125M 0% /dev/shm
white:/tmp/work
nfs 5.9G 2.0G 4.0G 34% /mnt
/dev/system/home
xfs 636M 224K 636M 1% /home
/dev/system/backup
xfs 636M 224K 636M 1% /backup
$ for i in `seq 1 10`; do cp /etc/termcap /home/$i; done
$ lvdisplay /dev/system/backup
--- Logical volume ---
LV Name /dev/system/backup
VG Name system
LV Write Access read only
LV snapshot status active destination for /dev/system/home
LV Status available
LV # 2
# open 1
LV Size 640 MB
Current LE 20
Allocated LE 20
snapshot chunk size 64 KB
Allocated to snapshot 0.10% [128 KB/127.75 MB]
Allocated to COW-table 256 KB
Allocation next free
Read ahead sectors 1024
Block device 58:1
Wenn die Datensicherung von /backup abgeschlossen ist, können wir den Speicher
für /dev/system/backup zurück in den Pool tun:
$ umount /backup
$ lvremove /dev/system/backup
lvremove -- do you really want to remove "/dev/system/backup"? [y/n]: y
lvremove -- doing automatic backup of volume group "system"
lvremove -- logical volume "/dev/system/backup" successfully removed
Zum Spaß fahren wir den Rechner runter und bauen die sdc mal aus.
$ poweroff
(Anderswo: vi ~(VMware/suse82minimal/suse82minimal.vmx)
(Anderswo: Poweron)
Es entsteht:
$ cat /var/log/boot.msg
...
<3>md: could not lock sde1, zero-size? Marking faulty.
<4>md: could not import sde1, trying to run array nevertheless.
<6>md: autorun ...
<6>md: considering sdd1 ...
<6>md: adding sdd1 ...
<6>md: adding sdc1 ...
<6>md: adding sdb1 ...
<6>md: created md0
<6>md: bind