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

# 20.7. UFS Journaling in GEOM

Mit FreeBSD 7.0 wurde eine lang erwartete Funktion, das Journaling, implementiert. Diese Funktion wird über das GEOM-Subsystem realisiert und kann über das Werkzeug gjournal(8) eingerichtet werden.

Was ist Journaling? Bei Journaling wird ein Protokoll über alle Dateisystemtransaktionen angelegt, inklusive aller Veränderungen, aus denen ein kompletter Schreibvorgang besteht, bevor diese Änderungen (Metadaten sowie tatsächliche Schreibvorgänge) physisch auf der Festplatte ausgeführt werden. Dieses Protokoll kann später erneut aufgerufen werden, um diese Vorgänge zu wiederholen (beispielsweise um Systeminkonsistenzen zu vermeiden).

Diese Technik bietet eine weitere Möglichkeit, sich vor Datenverlust und Dateisystem-Inkonsistenzen zu schützen. Im Gegensatz zu Soft Updates (die Metadaten-Aktualisierungen verfolgen und erzwingen) und Snapshots (die ein Image eines Dateisystems darstellen) wird bei Journaling ein tatsächliches Protokoll in einem speziell dafür bereitgestellten Bereich der Festplatte (oder manchmal sogar auf einer separaten Platte) gespeichert.

Im Gegensatz zu anderen Journaling-Dateisystemen arbeitet die `gjournal`-Methode blockbasiert und wurde nicht als Teil des Dateisystems implementiert, sondern als GEOM-Erweiterung.

Um die `gjournal`-Unterstützung zu aktivieren, muss der FreeBSD-Kernel die folgende Option enthalten (was seit FreeBSD 7.0 bereits in der Voreinstellung der Fall ist):

    options	UFS_GJOURNAL

Um ein Volume mit Journalunterstützung beim Systemstart automatisch zu mounten, muss das Kernelmodul `geom_journal.ko` ebenfalls automatisch geladen werden (durch einen entsprechenden Eintrag in der Datei `/boot/loader.conf`):

    geom_journal_load="YES"

Alternativ können Sie auch einen angepassten Kernel bauen, der diese Funktionalität enthält, indem Sie die folgende Zeile in Ihrer Kernelkonfigurationsdatei aufnehmen:

    options     GEOM_JOURNAL

Das Anlegen eines neuen Journals auf einem freien Dateisystem erfolgt durch die folgenden Schritte (im Folgenden wird angenommen, dass es sich bei `da4` um eine neue SCSI-Platte handelt):

    # gjournal load
    # gjournal label /dev/da4

Danach sollten die Gerätedateien `/dev/da4` sowie `/dev/da4.journal` vorhanden sein. Nun können Sie auf diesem Gerät ein Dateisystem anlegen:

    # newfs -O 2 -J /dev/da4.journal

Dieser Befehl erzeugt ein UFS2-Dateisystem auf dem Gerät, für das im letzten Schritt das Journaling aktiviert wurde.

Danach hängen Sie das neue Dateisystem mit `mount` in Ihren Verzeichnisbaum ein:

    # mount /dev/da4.journal /mnt

> Anmerkung: Falls auf Ihrem System mehrere Slices angelegt sind (beispielsweise `ad4s1` sowie `ad4s2`), wird `gjournal` für jedes Slice ein Journal anlegen (also `ad4s1.journal` sowie `ad4s2.journal`).

Um die Leistung zu optimieren, kann das Journal auf eine externe Platte ausgelagert werden. In einem solchen Fall geben Sie die Gerätedatei der Platte nach dem Gerät an, für das Sie Journaling aktivieren wollen. Theoretisch ist es auch möglich, Journaling auf bereits existierenden Dateisystemen durch das Werkzeug `tunefs` zu aktivieren. Machen Sie aber in jedem Fall ein Backup Ihrer Daten, bevor Sie versuchen, ein existierendes Dateisystem zu ändern. `gjournal` wird zwar den Vorgang abbrechen, wenn es das Journal nicht erzeugen kann, allerdings schützt Sie dies nicht vor Datenverlust durch einen fehlerhaften Einsatz von `tunefs`.

Es ist möglich, Journale auch für die Bootplatte eines FreeBSD-System zu verwenden. Lesen Sie bitte den Artikel Implementing UFS Journaling on a Desktop PC, wenn Sie an einer derartigen Konfiguration interessiert sind.

Zurück | Zum Anfang | Weiter
Das Labeln von Laufwerken | Nach oben | Dateisystemunterstützung

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