Obsah
RAID
yum install mdadm
Migrace ze single na RAID1
- pokud se migruje z menšího disku na 2 větší, je lepší přes GPARTED zkopírovat stávající systém na jeden z nových disků a dosavadní disk po té odpojit pro možnost návratu zpět
- nabootovat do stávajícího živého systému
- na novém disku (hdc) vytvořit partitions pomocí
fdiskn– new partitionp– primary1… atdt– změnit typ partition na fdfd– Linux raid autodetect- …
w– write and exit
- vytvořit raid pro jednotlivé partition na novém disku
MAKEDEV md0 MAKEDEV md1 MAKEDEV md2 # /boot mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 missing /dev/hdc1 # / mdadm -C -v /dev/md1 -l 1 -n 2 missing /dev/hdc3 # /home mdadm -C -v /dev/md2 -l 1 -n 2 missing /dev/hdc4
- naformátovat
mkfs.ext2 /dev/md0 mkfs.ext3 /dev/md1 mkfs.ext3 /dev/md2
- podpora pro softw. raid musí být buď přímo v jádře anebo v initramdisku. Nestačí, pokud je v systému jako modul.
Proto je třeba vyvtořit nový initrd soubor pomocímkinitrd /boot/initrd-md.img <aktuální verze jádra>
Systém si sám zjistí, že byl vytvořen raid a sám dá podporu do initrd.
- upravit
grub.confaby tam byly 2 volby pro boot z obou disků a aby se používal novýinitrds podporou poledefault=0 # pri absenci prvniho disku jdi na druhy fallback 1 timeout=5 splashimage=(hd0,0)/grub/splash.xpm.gz hiddenmenu title hd0 - CentOS-4 i386 (2.6.9-22.EL) root (hd0,0) kernel /vmlinuz-2.6.9-22.EL ro root=/dev/md1 initrd /initrd-md.img title hd1 - CentOS-4 i386 (2.6.9-22.EL) root (hd1,0) kernel /vmlinuz-2.6.9-22.EL ro root=/dev/md1 - nabootovat s instalačním CD Centos do
linux rescue - opět nadefinovat pole
- připojit pole
mkdir /mnt/md mount -t ext3 /dev/md1 /mnt/md mkdir /mnt/md/boot mkdir /mnt/md/home mount -t ext2 /dev/md0 /mnt/md/boot mount -t ext3 /dev/md2 /mnt/md/home
- zkopírovat starý filesystém na pole
#--delete maze soubory na cíli, které nejsou ve zdroji rsync -avH --delete --progress -x /mnt/sysimage/* /mnt/md
- upravit
/etc/fstab- nahradit/dev/hdXna/dev/mdX - nabootovat do systému aby používal již pole
- vyrobit na původním disku (hda) stejné partition
- připojit nové partiton k poli
mdadm /dev/md0 -a /dev/hda1 mdadm /dev/md1 -a /dev/hda3 mdadm /dev/md2 -a /dev/hda4
- nainstalovat grub na všechny disky
grub> device (hd0) /dev/hda grub> root (hd0,0) grub> setup (hd0,0) grub> device (hd1) /dev/hdc grub> root (hd1,0) grub> setup (hd1,0)
/etc/mdadm.conf
MAILADDR foo@bar.com
SW RAID
Havárie
- označí disk jako vadný
mdadm --manage -f /dev/md1 /dev/sdc2
- vyjmutí disku z pole
mdadm /dev/md1 -r /dev/sdc2
- přidání disku do pole
mdadm /dev/md1 -a /dev/sdc2
- zastavení pole
mdadm --manage --stop /dev/mdX
- znovusestavení pole
mdadm --assemble /dev/md1 /dev/sda1 /dev/sdb1
- konfigurace pole do souboru
mdadm --examine --scan >> /etc/mdadm/mdadm.conf
Kontrola stavu
cat /proc/mdstat
Spuštění kontroly pole
echo check > /sys/block/mdX/md/sync_action- spustí kontroluecho repair > /sys/block/mdX/md/sync_action- spustí kontrolu a snaží se opravit i případné chyby
badblocks
badblocks -o /var/log/badblock.log -snv /dev/sdb- testuje disk read/write nedestruktivní metodoubadblocks -o /var/log/badblock.log -swv /dev/sdb- testuje disk read/write DESTRUKTIVNÍ metodou
příklad vytvoření pole a jeho následné zvětšení
- zrušit případný starý raid
umount /mnt/raid/
- zastavit staré pole
mdadm --manage /dev/md1 --stop
- vytvořit nové pole
hodnota size se vypočítá jako požadované místo v bytech / 5120 tj.1258291200 / 5120 = 245 760mdadm --create --verbose /dev/md1 --level=5 --size=245760 --raid-devices=6 /dev/sda2 /dev/sdb2 /dev/sdc2 /dev/sdd2 /dev/sde2 /dev/sdf2 md1 : active raid5 sdf2[5] sde2[4] sdd2[3] sdc2[2] sdb2[1] sda2[0] 1228800 blocks level 5, 64k chunk, algorithm 2 [6/6] [UUUUUU] Disk /dev/md1: 1258 MB, 1258291200 bytes 2 heads, 4 sectors/track, 307200 cylinders Units = cylinders of 8 * 512 = 4096 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 65536 bytes / 327680 bytes Disk identifier: 0x0f70020c - vytvoření filestruktury
mkfs.ext3 /dev/md1
- zvětšení zařízení md1. Toto lze provést normálně za běhu, nezvětší se filesystém.
mdadm --grow /dev/md1 --size=705598 md1 : active raid5 sdf2[5] sde2[4] sdd2[3] sdc2[2] sdb2[1] sda2[0] 3527680 blocks level 5, 64k chunk, algorithm 2 [6/6] [UUUUUU] [==========>..........] resync = 53.5% (378112/705536) finish=0.0min speed=66176K/sec Disk /dev/md1: 2516 MB, 2516582400 bytes 2 heads, 4 sectors/track, 614400 cylinders Units = cylinders of 8 * 512 = 4096 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 65536 bytes / 327680 bytes Disk identifier: 0x19a069c8 - odmontovat pole
umount /mnt/raid
- provést kontrolu filesystému
e2fsck -f /dev/md1
- zvětšit filesystém
resize2fs /dev/md1
- provést kontrolu filesystému
e2fsck -f /dev/md1
- namontovat pole
mount /mnt/raid
RHEL 4 vs. GRUB
- problém je ten, že po instalaci na sw. raid vytvořený během instalace se nezapíší do MBR údaje a tak je potřeba GRUB dokonfigurovat ručně
grub> device (hd0) /dev/hda grub> root (hd0,0) Filesystem type is ext2fs, partition type 0xfd grub> setup (hd0) Checking if "/boot/grub/stage1" exists... yes Checking if "/boot/grub/stage2" exists... yes Checking if "/boot/grub/e2fs_stage1_5" exists... yes Running "embed /boot/grub/e2fs_stage1_5 (hd0)"... 16 sectors are embedded succeeded Running "install /boot/grub/stage1 (hd0) (hd0)1+16 p (hd0,0)/boot/grub/stage2 /boot/grub/grub.conf"... succeeded Done. grub> device (hd1) /dev/hdc grub> root (hd1,0) Filesystem type is ext2fs, partition type 0xfd grub> setup (hd1) Checking if "/boot/grub/stage1" exists... yes Checking if "/boot/grub/stage2" exists... yes Checking if "/boot/grub/e2fs_stage1_5" exists... yes Running "embed /boot/grub/e2fs_stage1_5 (hd1)"... 16 sectors are embedded. succeeded Running "install /boot/grub/stage1 (hd1) (hd1)1+16 p (hd1,0)/boot/grub/stage2 /boot/grub/grub.conf"... succeeded Done. grub> quit
