{{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