RAID mdadm
Michał Panasiewicz
wolvverine w tarchomin.pl
Sob, 16 Kwi 2005, 04:16:55 CEST
--
Michał Panasiewicz
jabber: wolvverine [ at ] chrome [ dot ] pl
e-mail: wolvverine [ at ] tlen [ dot ] pl , wolvverine [ at ] pld-linux [ dot ] org
http://gielda.linux.pl - chcesz pomóc, przyłącz się :)
-------------- następna część ---------
W systemie linux istnieje możliwość tworzenia na dyskach programowych macierzy RAID poziomów 0-5,10,01. Służy do tego usługa mdadm.
W przeciwieństwie do macierzy RAID sprzętowych które wymagają specjalnego kontrolera macierzowego RAID, macierze RAID programowe zakłada się na dyskach podłączonych do zwykłego kontrolera IDE, SATA lub SCSI.
Różnica polega na tym że w macierzy sprzętowej macierz zakładana jest na dyskach, natomiast w programowej na partycjach dysków.
Instalacja
Instalujemy następujące pakiety za pomocą poldka:
poldek -i mdadm mdadm-initrd
oraz dla dysków ATA przy korzystaniu z device-mapera dodatkowo:
poldek -i dmraid
Tworzenie
Zaczynamy od założenia na każdym dysku który ma wchodzić w skład macierzy RAID takich samych równych partycji, 1 lub kilku na każdym dysku którego chcemy użyć.
na przykład:
mamy 4 dyski podłączone do interfejsu SATA
fdisk /dev/sda
Command (m for help): n
Command action
l logical (5 or over)
p primary partition (1-4)
p
Selected partition (1-4)
1
podajemy rozmiar pierwszej i tak dla kazdej nastepnej (mogą być 4 partycje primary )
po skończeniu dajemy:
Command (m for help): p
Device Boot Start End
/dev/sda1 1 382
/dev/sda2 383 3326
/dev/sda3 3327 3737
/dev/sda4 3737 8700
zapisujemy sobie podział według cylindrów (start i end) potem już wpisujemy tylko przy zakładaniu nastepnych partycji numer 1 cylindra i ostatniego (partycje powinny być równe gdyż i tak w przeciwnym razie wielkość macierzy będzie wyznaczana przez najmniejszą partycję i najlepiej na)
dajemy:
Command (m for help): w
nastepuje zapisanie tablicy partycji na dysk
i tak dla kazdego pozostałego dysku który chcemy użyć do stworzenia macierzy.
przystępujemy do zakładania RAID na partycjach za pomocą polecenia mdadm
z kilkoma opcjami:
-C, --create - Create a new array.
-l, --level= - Set raid level. Options are: linear, raid0, 0, stripe, raid1, 1, mirror, raid5, 4, raid5, 5, multipath, mp. Obviously some of these are synonymous. Only the first 4 are valid when Building.
-n, --raid-devices= number of active devices in array.
-x, --spare-devices= number of spare (eXtra) devices in initial array. Spares can be added and removed later.
-v --verbose -
macierz RAID0 na dwóch partycjach - /dev/sda1 i /dev/sdb1 jako /dev/md0
mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sda1 /dev/sdb1
macierz RAID1 na dwóch partycjach - /dev/sdc1 i /dev/sdd1 jako /dev/md1
mdadm --create --verbose /dev/md1 --level=1 --raid-devices=2 /dev/sdc1 /dev/sdd1
macierz RAID5 na 4 partycjach w tym jedna jako zapasowa (spare) jesli nie podasz ile ma być zapasowych partycji domyślnie 1 zostanie zarezerwowana na zapasową
mdadm --create --verbose /dev/md2 --level=1 --raid-devices=4 --spare-devices=1 /dev/sda3 /dev/sdb3 /dev/sdc3 /dev/sdd3
następnie musimy dodać odpowiednie wpisy w /etc/mdadm.conf np. dla utworzonego wyżej RAID5 i RAID1:
DEVICE /dev/sd[abcd][123]
ARRAY /dev/md0 devices=/dev/sda1,/dev/sdb1
ARRAY /dev/md1 devices=/dev/sdc1,/dev/sdd1
ARRAY /dev/md2 devices=/dev/sda3,/dev/sdb3,/dev/sdc3,/dev/sdd3
Czyli:
- pierwszy wpis definiuje jakie partycje wchodzą do kolejnych raidów
- kolejne definiują macierze /dev/mdx
mając dwie macierze RAID0 np: /dev/md0 i /dev/md1, możemy utworzyć macierz RAID10 jako /dev/md2
mdadm --create --verbose /dev/md2 --level=1 --raid-devices=2 /dev/md0 /dev/md1
analogicznie RAID01 tworzymy mając dwie macierze RAID1
po utworzeniu macierzy postępujemy z nią dalej jak z partycją czyli zakładamy system plików i odwołujemy sie do niej np: jako /dev/md0
jeśli chcemy by system startował z macierzy musimy dodatkowo do lilo.conf dopisać:
# cat /etc/lilo.conf:
boot=/dev/md0
raid-extra-boot="/dev/sda,/dev/sdb"
image=/boot/vmlinuz
label=pld
root=/dev/md0
initrd=/boot/initrd
Więcej informacji o liście dyskusyjnej pld-doc