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:
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:
Initialisieren Sie GEOM. Dadurch wird das Kernelmodul
/boot/kernel/geom_mirror.ko
geladen:
#
gmirror load
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.
Sollte vi(1) ihr bevorzugter Texteditor sein, kouml;nnen Sie diese Änderungen ganz einfach wie folgt durchführen:
#
vi /etc/fstab
Bevor 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
.
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/devHier 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:
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:
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:
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
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.
Wenn Sie Fragen zu FreeBSD haben, schicken Sie eine E-Mail an
<de-bsd-questions@de.FreeBSD.org>.
Wenn Sie Fragen zu dieser Dokumentation haben, schicken Sie eine E-Mail an
<de-bsd-translators@de.FreeBSD.org>.