Spiegelung (Mirroring) ist eine Technik, welche von vielen Firmen und Heimnutzern eingesetzt wird, um Daten ohne Unterbrechung zu sichern. Wenn ein Spiegel existiert, dann bedeutet dies einfach nur, dass PlatteB die PlatteA dupliziert. Oder PlatteC+D duplizieren PlatteA+A. Der wichtigste Aspekt ist, dass Daten einer Platte oder Partition dupliziert werden, unabhängig von der Konfiguration der Platte. Dadurch kann später diese Information leichter wiederhergestellt, ohne Zugriffsunterbrechung gesichert oder sogar physisch in einem Datentresor gelagert werden.
Stellen Sie zu Beginn sicher, dass ihr System zwei Platten mit identischer Größe aufweist. In dieser Übung gehen wir davon aus, dass es direkt zugängliche (da(4)) SCSI-Platten sind.
Angenommen, FreeBSD wurde auf der ersten Platte da0 installiert, dann sollte gmirror(8) angewiesen werden, seine primären Daten auf dieser Platte zu speichern.
Bevor Sie den Spiegel aufbauen, sollten Sie die maximale Protokollierung
aktivieren und den Zugang zum Gerät gestatten. Dazu setzen Sie die sysctl(8)-Option
kern.geom.debugflags
auf den folgenden Wert:
# sysctl kern.geom.debugflags=17
Nun können Sie den Spiegel aufbauen. Beginnen Sie den Prozess, indem Sie die Metadaten-Informationen auf das Gerät der primären Platte speichern. Konkret erzeugen Sie dabei das Gerät /dev/mirror/gm, indem Sie den folgenden Befehl ausführen:
Warnung: Die Spiegelung der Bootplatte kann zu Datenverlust führen, wenn Sie Daten im letzten Sektor der Platte gespeichert haben. Dieses Risiko lässt sich minimieren, wenn Sie den Spiegel unmittelbar nach der Installation von FreeBSD aufsetzen. Die im folgenden beschriebene Vorgehensweise ist ebenfalls nicht kompatibel mit den Standard-Installationseinstellungen von FreeBSD 9.X, die das neue GPT-Partitionsschema verwenden. GEOM wird GPT-Metadaten überschreiben, was zu Datenverlust und einem möglicherweise nicht bootbarem System führt.
# gmirror label -vb round-robin gm0 /dev/da0
Ihr System sollte wie folgt antworten:
Metadata value stored on /dev/da0. Done.
Initialisieren Sie GEOM. Dadurch wird das Kernelmodul /boot/kernel/geom_mirror.ko geladen:
# gmirror load
Anmerkung: Wenn dieser Befehl erfolgreich ausgeführt wurde, wird die Gerätedatei gm0 im Verzeichnis /dev/mirror erzeugt.
Stellen Sie sicher, dass das Kernelmodul geom_mirror.ko beim Systemstart automatisch geladen wird:
# echo 'geom_mirror_load="YES"' >> /boot/loader.conf
Bearbeiten Sie die Datei /etc/fstab und ersetzen Sie alle Verweise auf die alte Gerätedatei da0 durch die neue Gerätedatei gm0 des Plattenspiegels. Um die Datei /etc/fstab bearbeiten zu können, müssen Sie als Benutzer root am System angemeldet sein.
Anmerkung: Sollte vi(1) ihr bevorzugter Texteditor sein, kouml;nnen Sie diese Änderungen ganz einfach wie folgt durchführen:
# vi /etc/fstabBevor Sie die Datei bearbeiten, sollten Sie ein Backup anlegen. Haben Sie die Datei mit vi(1) geöffnet, können Sie durch die Eingabe von :w /etc/fstab.bak eine Sicherungskopie der Datei anlegen. Danach ersetzen Sie alle alten Referenzen auf da0 durch gm0, indem Sie :%s/da/mirror\/gm/g eingeben.
Die geänderte fstab sollte nun ähnlich wie im folgenden Beispiel aussehen. Es spielt dabei keine Rolle, ob Sie SCSI- oder ATA-Platten verwenden. Das RAID-Gerät heißt in jedem Fall gm.
# Device Mountpoint FStype Options Dump Pass# /dev/mirror/gm0s1b none swap sw 0 0 /dev/mirror/gm0s1a / ufs rw 1 1 /dev/mirror/gm0s1d /usr ufs rw 0 0 /dev/mirror/gm0s1f /home ufs rw 2 2 #/dev/mirror/gm0s2d /store ufs rw 2 2 /dev/mirror/gm0s1e /var ufs rw 2 2 /dev/acd0 /cdrom cd9660 ro,noauto 0 0
Führen Sie einen Systemneustart durch:
# shutdown -r now
Wenn das System gestartet wird, sollten Sie nun nur noch gm0-Geräte anstatt der bisherigen da0-Geräte sehen. Nachdem das System vollständig initialisiert wurde, können Sie die neue Konfiguration testen, indem Sie den Befehl mount ausführen:
# mount Filesystem 1K-blocks Used Avail Capacity Mounted on /dev/mirror/gm0s1a 1012974 224604 707334 24% / devfs 1 1 0 100% /dev /dev/mirror/gm0s1f 45970182 28596 42263972 0% /home /dev/mirror/gm0s1d 6090094 1348356 4254532 24% /usr /dev/mirror/gm0s1e 3045006 2241420 559986 80% /var devfs 1 1 0 100% /var/named/dev
Hier ist alles in Ordnung. Alle Werte sehen aus wie erwartet. Um die Synchronisierung zu beginnen, integrieren Sie nun die Platte da1 in den Spiegel, indem Sie den folgenden Befehl eingeben:
# gmirror insert gm0 /dev/da1
Während die Platten gespiegelt werden, können Sie den Fortschritt durch die Eingabe des folgenden Befehls überprüfen:
# gmirror status
Nachdem die Plattenspiegelung erfolgreich abgeschlossen wurde (und alle Daten synchronisiert wurden), sollte Sie eine Ausgabe ähnlich der folgenden erhalten, wenn Sie den Befehl erneut ausführen:
Name Status Components mirror/gm0 COMPLETE da0 da1
Sollten Probleme aufgetreten oder sollte die Synchronisierung noch nicht abgeschlossen sein, wäre der Status DEGRADED anstatt COMPLETE.
Falls das System startet und eine Eingabeaufforderung ähnlich der folgenden erscheint:
ffs_mountroot: can't find rootvp Root mount failed: 6 mountroot>
Starten Sie den Rechner neu mit der Power- oder Resettaste. Wählen Sie im Startmenü Option sechs (6). Dadurch erscheint eine Eingabeaufforderung für loader(8). Laden Sie nun das Kernelmodul händisch:
OK? load geom_mirror OK? boot
Falls dies funktioniert, wurde das Modul (aus welchen Gründen auch immer) nicht richtig geladen. Prüfen Sie, ob Ihr Eintrag in der Datei /boot/loader.conf korrekt ist. Sollte das Problem weiterhin bestehen, nehmen Sie die Zeile
options GEOM_MIRROR
in die Konfigurationsdatei des Kernels auf und führen Sie einen Rebuild und eine erneute Installation durch. Dies sollte das Problem beseitigen.
Das Schöne an der Plattenspiegelung ist, dass eine kaputte Platte ersetzt werden kann, ohne dass Sie dabei Daten verlieren.
Basierend auf der vorhin besprochenen RAID1-Konfiguration, nehmen wir nun an, dass die Platte da1 ausgefallen ist und daher ersetzt werden muss. Um dies zu tun, müssen Sie feststellen, welche Platte ausgefallen ist und das System herunterfahren. Nun können Sie die kaputte Platte gegen eine neue Platte austauschen und das System wieder starten. Nachdem der Systemstart abgeschlossen ist, verwenden Sie die folgenden Befehle, um die Plattenspiegelung wieder zu reaktivieren:
# gmirror forget gm0
# gmirror insert gm0 /dev/da1
Der Befehl gmirror status
erlaubt es Ihnen, den Fortschritt bei der Wiederherstellung der
Plattenspiegelung zu beobachten. Das ist alles, was Sie tun müssen.
Zurück | Zum Anfang | Weiter |
RAID0 - Striping | Nach oben | GEOM Gate Netzwerkgeräte |
Wenn Sie Fragen zu FreeBSD haben, schicken Sie eine E-Mail an
<[email protected]>.
Wenn Sie Fragen zu dieser Dokumentation haben, schicken Sie eine E-Mail an <[email protected]>.