Do obsługi macierzy służą programy z pakietu raidtools. Najlepiej jednak (najprościej) zainstalować macierz podczas instalacji RedHata. Oto krótki opis jak to zrobić (RAID-1 z dwoma dyskami):
Stworzyć następujący układ partycji:
/dev/hda1 Linux RAID 3000M /dev/hda5 Swap 256 /dev/hda6 DOS 256 /dev/hda7 Linux RAID resztaTakie same partycje należy utworzyć na drugim dysku (np. /dev/hdc).
Wybrać opcję "Make RAID Device".
Należy tu połączyć partycje /dev/hda(c)1 i /dev/hda(c)7 jak pokazano poniżej:
/dev/md0 - /dev/hda1 + /dev/hdc1 - / /dev/md1 - /dev/hda7 + /dev/hdc7 - /optOba są typu RAID-1. W tej konfiguracji mamy po jednym swapie na każdy dysk (oba są wykorzystane).
Zainstalować w normalny sposób system.
Po resecie nie uruchomi się Linux, ponieważ program instalacyjny ustawił w /etc/lilo.conf, że root to /dev/md0, a to nie zadziała. Trzeba jeszcze raz odpalić program instalacyjny RedHata z płytki, po starcie X nacisnąć Ctrl-Alt-F2.
Następnie wykonać komendy:
mkdir /mnt2 mknod /dev/hda1 b 22 1 mount /dev/hda1 /mnt2 mv /mnt2/etc/lilo.conf /mnt2/etc/lilo.conf.old cat /mnt2/etc/lilo.conf.old | sed -e "s/md0/hda1/" > /mnt2/etc/lilo.conf /mnt2/sbin/lilo -r /mnt2
Mamy stworzoną macierz dyskową z software'owym mirroringiem. Dane są równolegle zapisywane na dwa dyski, o synchronizację dba proces mdrecovery. W pliku /proc/mdstat znajduje się aktualny stan macierzy. Z niego można się dowiedzieć o awarii. Niestety w wersji 6.2 nie jest zbyt wygodne naprawienie macierzy dyskowej po awarii jednego z dysków. Co gorsza system nie zareaguje w specjalnie widoczny sposób w tej sytuacji. Plik /proc/mdstat pokaże, które dyski działają, a które nie. Dysk awaryjny zostanie wyłączony z macierzy. Poniżej pokazano przykładowy wynik wydania komendy cat /proc/mdstat (uwaga - przykład jest dla innej konfiguracji niż opisana powyżej):
Personalities : [raid1] read_ahead 1024 sectors md0 : active raid1 sdb1[1] 1052160 blocks [2/1] [_U] md1 : active raid1 sdb2[1] 5245120 blocks [2/1] [_U] md2 : active raid1 sdb5[1] sda5[0] 2096384 blocks [2/2] [UU] md4 : active raid1 sdb6[1] 1052160 blocks [2/1] [_U] md3 : active raid1 sdb7[1] 1052160 blocks [2/1] [_U] md5 : active raid1 sdb8[1] 25053248 blocks [2/1] [_U] unused devices: <none>"U" (czyli up) oznacza, że dysk działa w macierzy. "_" oznacza, że dysk jest wyłączony lub go brakuje w macierzy.
Na przykładzie powyżej widać, że tylko jedna partycja w macierzy ma działające oba dyski ([2/2] [UU]) - partycja md2 (składająca się z partycji sdb5 i sda5). Reszta partycji macierzowych ma tylko 1 dysk ([2/1] [_U]). Co zrobić, by zainstalować nowy dysk? Należy go sformatować w ten sam sposób (utworzyć te same partycje), co istniejący dysk. Powinien to być dysk o takim samym rozmiarze, ale w przypadku trudności ze znalezieniem dysku o takiej samej pojemności można włożyć większy, wolny obszar można przeznaczyć na dodatkową partycję, która powinna się jednak znajdować na końcu (np. /dev/hdc9).
Po odpowiednim podzieleniu dysku na partycji i sformatowaniu go należy wydać następujące komendy (dodające do macierzy drugi dysk):
raidhotadd /dev/md0 /dev/hdc1 raidhotadd /dev/md5 /dev/hdc7
W tle (w wolnym czasie procesora) rozpocznie się proces synchronizacji dysku z macierzą. Nie nastąpi to od razu, ale po jakimś czasie (do kilku godzin przy słabo obciążonym systemie). Proces wykonuje się całkowicie przezroczyście, nie koliduje to w żaden sposób z zapisami i odczytami z macierzy. W pliku /proc/mdstat pokazywany jest aktualny stan synchronizacji wraz z przewidywanym czasem zakończenia (finish). Poniżej pokazany jest wynik komendy cat /proc/mdstat po wywołaniu polecenia raidhotadd /dev/md0 /dev/sda1:
Personalities : [raid1] read_ahead 1024 sectors md0 : active raid1 sda1[2] sdb1[1] 1052160 blocks [2/1] [_U] [===>.................] recovery = 18.0% (190500/1052160) finish=1.3min s peed=10583K/sec md1 : active raid1 sdb2[1] 5245120 blocks [2/1] [_U] md2 : active raid1 sdb5[1] sda5[0] 2096384 blocks [2/2] [UU] md4 : active raid1 sdb6[1] 1052160 blocks [2/1] [_U] md3 : active raid1 sdb7[1] 1052160 blocks [2/1] [_U] md5 : active raid1 sdb8[1] 25053248 blocks [2/1] [_U] unused devices: <none>
Uwaga! Nie wolno robić żadnych modyfikacji tablicy partycji, kiedy pracuje na nich aktywna macierz. Aby zmienić układ dysku, należy zatrzymać obie macierze (komendą raidstop). W konfiguracji, którą pokazałem powyżej system znajduje się na aktywnym urządzeniu /dev/md0, trzeba zatem oba dyski włożyć do oddzielnego systemu z Linuksem i wtedy przeprowadzać modyfikacje. Zmiany należy uwzględnić w plikach /etc/raidtab na obu dyskach.
Poprzedni | Spis treści | Następny |
Wykorzystanie czujników z płyt głównych - lm_sensors | Początek rozdziału | Konfiguracja Specialixa |