Konfiguration
Man sollte sich zuerst über die Konfiguration klar werden. Hierzu benutzt man das Kommando metastat.
Das gibt eine ausführliche Ausgabe die letztendlich auf folgende Tabelle hinausläuft.
Slize | gemountet an | Mirror | c1t0d0s | c1t1d0s |
0 | / | d30 | d20 | d10 |
1 | swap | d31 | d21 | d11 |
4 | /var | d34 | d24 | d14 |
Neue Platte einbauen
Wie haben also zwei Platten c1t0d0 und c1t1d0. In unserem Szenario ist gleich die erste Platte c1t0d0 defekt.
Der Spiegel D3x läuft auf der zweiten Platte.
Also erster Schritt, defekte Platte raus, neue Platte rein.
Die neue Platte muss man dem System aber noch bekannt geben. Entweder mittels reboot -- -r oder wenn das
System nicht ausfallen kann/darf dann mittels der Kommandofolge drvconf; disk.
Als nächstes sollten wir die Partitionstabelle auf der neuen Platten anlegen, indem wir sie von der zweiten Platte kopieren.
# prtvtoc /dev/rdsk/c1t1d0s2 | fmthard -s - /dev/rdsk/c1t0d0s2
fmthard: New volume table of contents now in place.
Reparatur der Metadatenbank
Zuerst sollten wir die Metadatenbank reparieren. Mit dem Kommando metadb -i kann man sich den Status der
Datenbank ansehen.
# metadb -i
flags first blk block count
W p l 16 8192 /dev/dsk/c1t0d0s3
W p l 8208 8192 /dev/dsk/c1t0d0s3
a m p luo 16 8192 /dev/dsk/c1t1d0s3
a p luo 8208 8192 /dev/dsk/c1t1d0s3
Wie man sieht, es gibt 4 Kopien der Datenbank, die Masterdatenbank (Flag m) läuft auf der
zweiten Platten ab Block 16. Die beiden Kopien auf der Platte c1t0d0s3 stehen nicht zur Verfügung.
Klar die erste Platte ist ja neu, also die Informationen das auf dieser Platte Kopien der Masterbank sein sollen - löschen.
metadb -f -d /dev/dsk/c1t0d0s3
Und anschließend neu anlegen
# metadb -a -f -c2 /dev/dsk/c1t1d0s3
# metadb
flags first blk block count
a luo 16 8192 /dev/dsk/c1t0d0s3
a luo 8208 8192 /dev/dsk/c1t0d0s3
a m p u 16 8192 /dev/dsk/c1t1d0s3
a p u 8208 8192 /dev/dsk/c1t1d0s3
Submirror anlegen
Endlich können wir die Partionen der neuen Platten einbinden. Das passiert in zwei Schritten.
Zuerst muss die Information über den alten Submirror gelöscht werden. Im zweiten Schritt wird
der Submirror auf der neuen Platte neu angelegt.
Normalerweise könnte man sofort den Submirror mittels metaoffline aushängen, in der Praxis funktioniert
das aber nicht immer. In diesen Fällen sollte man vorher den Submirror mittels metaoffline als nicht
in Benutzung markieren.
# metaoffline -f d31 d11
d31: submirror d11 is offlined
Anschließen den Submirror aushängen
# metadetach -f d31 d11
d31: submirror d11 is detached
danach den Submirror löschen
# metaclear d11
d11: Concat/Stripe is cleared
Jetzt endlich den Submirror neu definieren
# metainit -f d11 1 1 c1t0d0s1
d11: Concat/Stripe is setup
und zum Schluss in den Spiegel einbauen
# metattach d31 d11
d31: submirror d11 is attached
Fertig, für den Swap. Die selben Schritte für die retlichen Partitionen.