{{page>:menu}} ====== RAID ====== *''yum install mdadm'' *http://linux.die.net/man/8/mdadm *http://linux.die.net/man/5/mdadm.conf *https://raid.wiki.kernel.org/index.php/RAID_setup *[[http://busybox.net/~aldot/mkfs_stride.html|Výpočet pro CHUNK a BLOCK]] ===== Migrace ze single na RAID1 ===== -pokud se migruje z menšího disku na 2 větší, je lepší přes [[http://gparted.sourceforge.net/|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í ''fdisk'' *''n'' -- new partition *''p'' -- primary *''1'' ... atd *''t'' -- změnit typ partition na fd *''fd'' -- 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 Systém si sám zjistí, že byl vytvořen raid a sám dá podporu do initrd. -upravit ''grub.conf'' aby tam byly 2 volby pro boot z obou disků a aby se používal nový ''initrd'' s podporou pole default=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/hdX'' na ''/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 ===== *http://www.tldp.org/HOWTO/Software-RAID-HOWTO.html *http://www.root.cz/clanky/o-nejen-softwarovych-diskovych-polich-1/ *http://www.root.cz/clanky/o-nejen-softwarovych-diskovych-polich-2/ *http://www.root.cz/clanky/o-nejen-softwarovych-diskovych-polich-3/ *http://www.linuxsa.org.au/mailing-list/2003-07/1270.html ==== Havárie ==== *označí disk jako vadnýmdadm --manage -f /dev/md1 /dev/sdc2 *vyjmutí disku z polemdadm /dev/md1 -r /dev/sdc2 *přidání disku do polemdadm /dev/md1 -a /dev/sdc2 *zastavení polemdadm --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í kontrolu *''echo repair > /sys/block/mdX/md/sync_action'' - spustí kontrolu a snaží se opravit i případné chyby ===== badblocks ===== *[[http://linux.die.net/man/8/badblocks|manuál]] *''badblocks -o /var/log/badblock.log -snv /dev/sdb'' - testuje disk read/write nedestruktivní metodou *''badblocks -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ý raidumount /mnt/raid/ *zastavit staré polemdadm --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 760'' mdadm --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í filestrukturymkfs.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 poleumount /mnt/raid *provést kontrolu filesystémue2fsck -f /dev/md1 *zvětšit filesystém resize2fs /dev/md1 *provést kontrolu filesystémue2fsck -f /dev/md1 *namontovat polemount /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