Das FreeBSD-Handbuch
Zurück | Kapitel 20. GEOM: Modulares Framework zur Plattentransformation | Weiter

# 20.4. RAID1 - Spiegelung

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.

## 20.4.1. Die primäre Platte spiegeln

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/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`.

    # 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`.

## 20.4.2. Fehlerbehebung

### 20.4.2.1. Das System weigert sich zu starten

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.

## 20.4.3. Wiederherstellung des Systems nach einem Plattenausfall

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 <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>.