SW RAID + LVM + GRUB v Redhat EL 4

Kontrola připojení disku Fdisk

fdisk -l - výpis nového disku (v našem případě - sdb)

fdisk /dev/sdb

n,p,1,1,13 - vytvoření disku boot 100 MB
n,p,2,14,enter - zbytek disku

a,1 - nastavení disku jako boot

t,1,fd - Linux raid autodetect
t,2,fd - Linux raid autodetect

w - uložení nastavení

fdisk /dev/sda - změna nastavení SDA disků na fd typ

t,1,fd - Linux raid autodetect
t,2,fd - Linux raid autodetect

w - uložení nastavení
q - odchod

Konečný výsledek: fdisk -l

Device Boot   Start   End   Blocks   Id System
/dev/sda1 * 1   13   104391   fd  Linux raid autodetect /dev/sda2   14 1044 8281507+  fd  Linux raid autodetect

Device Boot   Start   End   Blocks   Id System
/dev/sdb1 * 1   13   104391   fd  Linux raid autodetect /dev/sdb2   14 1044 8281507+  fd  Linux raid autodetect

Vytváření RAIDu

echo 'DEVICE /dev/hd*[0-9] /dev/sd*[0-9]' >> /etc/mdadm.conf -- vytvoření kofiguráku raidu

mdadm --create /dev/md0 -l 1 -n 2 missing /dev/sdb1 -- vytvoření raidu s degradací jednoho disku BOOT

mdadm --create /dev/md1 -l 1 -n 2 missing /dev/sdb2 -- vytvoření raidu s degradací jednoho disku

sfdisk -d /dev/sda > /etc/partitions.sda - záloha partition tables (když vyhoří disk (to a samé pro sdb))

sfdisk /dev/sda < /etc/partitions.sda - obnova zálohovací tabulky (na nový disk (to a samé pro sdb))

cat /proc/mdstat - kontrola vytvoření raidu (synchronizace při dokončování raidu)

mdadm --detail /dev/md0 (/dev/md1) - detail o raidu

Vytváření LVM

pvcreate /dev/md0 - vytvoření partition
vgcreate vg01 /dev/md0 - vytvoření volum groupy

vgdisplay -v vg00 - podle výpisu velikosti partition vytvořit stejné v nové vg01

lvcreate -L 5G -n root vg01 - vytvoření LVM partition o velikosti 5GB
lvcreate -L 1G -n swap vg01 - vytvoření LVM partition o velikosti 1GB

vgdisplay -v vg01 - kontrola volum groupy

mkfs.ext3 /dev/vg01/root - naformátování partition root (opakovat pro další adresáře /home /opt)

mkswap /dev/vg01/swap - naformátování swapu

swapon /dev/vg01/swap - zapnutí swapu

Vytvoření nového adresářového stromu z LVM

mkdir /mnt/newroot - vytvoření bodu pro mount nového rootu

mount /dev/vg01/root /mnt/newroot - připojení nového svazku

rsync -avx --delete / /mnt/newroot - přenesení souborů do nového root

mkdir /mnt/newopt - vytvoření bodu pro mount nového opt (opakovat pro další adresáře /home /tmp)

mount /dev/vg01/opt /mnt/newopt - připojení nového svazku

rsync -avx --delete /opt /mnt/newopt - přenesení souborů do nového opt

vi /boot/grub/menu.lst

default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title Red Hat Enterprise Linux ES RAID 1 (2.6.9-11.EL) SW RAID 1
root (hd0,0)
kernel /vmlinuz-2.6.9-11.EL ro root=/dev/vg01/root quiet změna !!
initrd /initrd-2.6.9-11.RAID.EL.img změna nový initrd !!
boot # vložit

title Red Hat Enterprise Linux ES RAID 1 (2.6.9-11.EL) [Miror Rescue]
root (hd1,0) -- změna !!
kernel /vmlinuz-2.6.9-11.EL ro root=/dev/vg01/root quiet
initrd /initrd-2.6.9-11.RAID.EL.img
boot

Vytvoření nového boot - před vytvářením mkinitrd

mkdir /mnt/newboot - vytvoření bodu pro mount nového bootu

mount /dev/md0 /mnt/newboot - připojení nového svazku

rsync -avx --delete /boot /mnt/newboot - přenesení souborů do nového bootu

grub-install /dev/sda (případně grub-install --recheck /dev/sda)
grub-install /dev/sdb (případně grub-install --recheck /dev/sdb) - zapsání nového grub do MBR

vi /etc/fstab

/dev/vg01/root / ext3 defaults 1 1 /dev/vg01/opt /opt ext3 defaults 1 1 /dev/md0 /boot ext3 defaults 1 2 none /dev/pts devpts gid=5,mode=620 0 0 none /proc proc defaults 0 0 none /sys sysfs defaults 0 0 /dev/vg01/swap swap swap defaults 0 0

změnit fstab tabulku - nesmí tam být LABEL u /boot + změna VG01 u root a swap (případně dalších /home /tmp /opt)

Boot

mkinitrd /boot/initrd-2.6.x-x.RAID.EL.img --preload raid1 2.6.x-x.0.EL - vytvoření initrd obrazu s podporou raid1
umount /mnt/newboot - provést se všemi nově přimoutovanými disky
sync
sync

umount /boot - odpojení boot z sda1

mdadm --add /dev/md0 /dev/sda1 - přidání sda1 disku do raidu

Reboot

Systém by měl naběhnout v degradovaném Raidu 1 s LVM vg01

vgchange -a n /dev/vg00 - deaktivace vg00

ls /dev/vg* - mělo by se vypsat jen vg01

mdadm --add /dev/md1 /dev/sda2 - přidaní sda2 disku do raidu

cat /proc/mdstat - kontrola synchronizace

Personalities : [raid1]
md1 : active raid1 sda2[2] sdb2[0]
8281408 blocks [2/1] [U_]
[>....................] recovery = 0.2% (22528/8281408) finish=18.2min speed=7509K/sec
md0 : active raid1 sda1[1] sdb1[0]
104320 blocks [2/2] [UU]

unused devices:

Kontola /boot/grub/menu.lst - podle sekce BOOT

Boot z raidu - aby grub mohl nastartovat z sdb disku po výpadku sda disku a opačně.

grub
grub>device (hd0) /dev/sda
grub>root (hd0,0)
grub>setup (hd0)
grub>quit

grub
grub>device (hd1) /dev/sdb
grub>root (hd1,0)
grub>setup (hd1)
grub>quit

Monitoring výpadku Disku z Raidu

mdadm --monitor --mail=root@localhost --delay=1800 /dev/md0

Vložení informací do mdadm.conf

mdadm --detail --scan >> /etc/mdadm.conf - vložení inform. do mdadm.conf

DEVICE /dev/hd*[0-9] /dev/sd*[0-9]
ARRAY /dev/md1 level=raid1 num-devices=2 UUID=a29f76b0:9f3cd33a:46db3ba4:1de7151d devices=/dev/sdb2,/dev/sda2
ARRAY /dev/md0 level=raid1 num-devices=2 UUID=4f135a0d:eb0ecb32:1b008f60:80aeae32 devices=/dev/sdb1,/dev/sda1

Odbrání disku z Raidu

mdadm --fail /dev/md0 /dev/sda1 - označí disk jako špatný
mdadm --remove /dev/md0 /dev/sda1 - odebere disk z Raidu

Test Výpadku disku

V biosu vypneme disk (třeba sda) měli by jsme nabootovat v degradovanám Raidu. Kontrola:
mdadm --detail /dev/md0 (md1)
cat /proc/mdstat

Reboot

Zapneme zas v biosu disk a nastartujem systém. Opět by měl systém nabootovat v degradovaném Raidu.
Zkontolujem fdisk -l zda je druhý disk opět vidět v systému. Nebude mít žádné rozdělení,
abychom nemuseli opětovně vše rozdělovat použijem naši zálohu tabulky, kterou jsme dělali na začátku :)

tj: sfdisk --force /dev/sdb < /etc/partitions.sdb -- Teď se nám vrátila původní tabulka rozdělení.

Přidáme disk do Raidu

mdadm /dev/md0 -a /dev/sdb1 * přidání boot
mdadm /dev/md1 -a /dev/sdb2 * přidání zbytku

Kontrola synchronizace cat /proc/mdstat

grub
grub>device (hd0) /dev/sda
grub>root (hd0,0)
grub>setup (hd0)

grub>device (hd1) /dev/sdb
grub>root (hd1,0)
grub>setup (hd1)
grub>quit

Reboot

Systém zas naběhne v Raidu !? :)


Odkazy:

http://hilli.dk/howtos/lvm2-and-software-raid-in-linux/
http://www.linuxsoft.cz/article.php?id_article=723
http://lists.us.dell.com/pipermail/linux-poweredge/2003-July/008898.html
http://unthought.net/Software-RAID.HOWTO/Software-RAID.HOWTO-5.html

********************************************************************************
D3d Howto
Rekonix s.r.o.
********************************************************************************