RAID 1 / Mirror - Root Volume
Um ein SDS RAID 1 (Mirror) auf ein bereits vorhandenes ROOT Volume zu spielen,
ist etwas Vorsicht angesagt. Anderst ist es auch überhaupt nicht möglich.
Voraussetzung
Voraussetzung ist das es zwei Slices gibt die Identisch sind und auf verschiedenen
Platten liegen. Ich setze voraus das es sich um c0t0d0s0i (Master)
und c1t1d0s0 (Slave) handelt !
Einkapseln
Als erstes müssen beide Slices wieder eingekapselt werden (Siehe RAID 1
Beschreibung)
Wichtig ist aber nun der Parameter
-f weil das Volume ja gerade benutzt
wird. Das gilt überings bei allen benutzen Volumes !
# metainit -f d1 1 1 c0t0d0s0
# metainit d2 1 1 c1t1d0s0
Soweit so gut ...
RAID 1 Hälfte
Jetzt bauen wir das RAID 1 Device und geben ihm zuerst die
MASTER
Platte
# metainit d0 -m d1
Sofern man nun mehrere Slices die in Benutzung sind so aufbauen will,
kann man erst einmal alle so weiter machen. z.B. /var und so ...
Umschreiben der Mountpoints
ACHTUNG !
NUR BEIM ROOT (/) VOLUME
startet man nun das metaroot Programm
# metaroot d0
Das Programm verbiegt in der /etc/vfstab das Device und Programmiert auch
gleich das EEProm um
Für alle anderen Filesysteme die in Benutzung sind schreibt man nun
die Gerätedateien in der /etc/vfstab auf die neuen Mirror Devices um.
Aus dem /dev/rdsk/c0t928d0s871 ... bla für /var .B. wird dann ein
/dev/md/rdsk/d4711. Natürlich das normale /dsk/ nicht vergessen.
Reboot / um-mounten
Der Reboot ist beim Umschreiben des ROOT (/) Volumes zwingend erforderlich.
Andere Slices die in Benutzung sind, z.B. /var können im laufenden Betrieb
umgebaut werden. Dazu force umount und ein mount mit Mirror Device hinterher.
Beim Reboot kommen ein paar Fehlermeldungen. Die in etwa so aussehen :
genunix: [ID 370176 kern.warning] WARNING: forceload of misc/md_trans failed
Keine Angst ! Das ist normal. Wenn man kein Transaction Device, oder keine
Hotspare oder kein Raid 5 benutzt kommen entsprechende Warnungen. Das ist OK
Nachdem Reboot kann man mit df oder mount sehen das das System nun anstatt
der Hardware Platten nun die SDS Devices hält.
Zweite Hälfte
Als letztes fügt man nun dem Spiegel die andere Hälfte hinzu.
Mann sollte aber unbedingt vermeiden alle gleichzeitig hinzuzufügen,
es sei denn man will die Festplattenköpfe Testen .... also nur
hintereinander ...
# metaattach d0 d2
Fertig ?
Nö
Konfiguration Failover Boot
Wenn nun die Slave Platte brennt bootet das System noch. Geht aber
die Masterplatte baden kann das OBP nicht mehr Booten, weil es die Platte
nicht sieht. Um dem abzuhelfen muss man im OBP ein Alias auf die zweite
Platte legen und es in der Bootreihenfolge mit eintragen.
Als erstet muss man den physikalischen Path sich raussuchen :
# ls -l /dev/rdsk/c1t1d0s0
lrwxrwxrwx 1 hmpf ounk 74 Wed 1 2213 /dev/rdsk/c1t1d0s0 ->
../../devices/pci@9,600000/SUNW,qlc@2/
fp@0,0/ssd@w21000004cffcf99f,0:a,raw
Den muss man nun im OBP eintragen und konfigurieren. Sollte die Maschine gerade
nix tun, kann man es an der Konsole im laufenden Betrieb machen. Die Maschine
ist dann aber OFFLINE. Aber es müsste auch über das Programm eeprom
gehen
ok nvalias rootmirror /pci@9,600000/SUNW,qlc@2/
fp@0,0/ssd@w21000004cffcf99f,0:a,raw
ok printenv boot-device
boot-device = mydisk
ok setenv boot-device mydisk rootmirror
Ende ...
Jetzt fertig ?
Klar :-)