FreeBSD unterstützt Journaling für
UFS-Dateisysteme. Diese Funktion wird über
das GEOM-Subsystem realisiert und kann
über das Werkzeug gjournal(8) eingerichtet werden. Im
Gegensatz zu anderen Journaling-Dateisystemen arbeitet
gjournal
blockbasiert und wurde nicht als
Teil des Dateisystems implementiert, sondern als
GEOM-Erweiterung.
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, damit Systeminkonsistenzen vermieden werden.
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 gespeichert. 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.
Der GENERIC
-Kernel bietet Unterstützung
für gjournal
. Damit das Kernelmodul
geom_journal.ko
beim Booten automatisch
geladen wird, fügen Sie folgende Zeile in
/boot/loader.conf
hinzu:
geom_journal_load="YES"
Wenn ein angepasster Kernel benutzt wird, stellen Sie sicher, dass folgende Zeile in der Kernelkonfigurationsdatei enthalten ist:
options GEOM_JOURNAL
Sobald das Modul geladen ist, kann ein Journal auf einem
neuen Dateisystem erstellt werden. In diesem Beispiel ist
da4
die neue
SCSI-Platte:
#
gjournal load
#
gjournal label /dev/
da4
Diese Befehle laden das Modul und erstellen die Gerätedatei
/dev/da4.journal
auf
/dev/da4
.
Nun kann auf dem neuen Gerät ein UFS-Dateisystem erstellt werden, welches dann in den Verzeichnisbaum eingehängt wird:
#
newfs -O 2 -J /dev/
da4
.journal#
mount /dev/
da4
.journal/mnt
Falls auf dem System mehrere Slices angelegt sind
(beispielsweise ad4s1
sowie
ad4s2
), wird
gjournal
für jedes Slice ein
Journal anlegen (also ad4s1.journal
sowie ad4s2.journal
).
Mit tunefs
ist es auch möglich,
Journaling auf bereits existierenden Dateisystemen zu
aktivieren. Machen Sie aber immer eine
Sicherung der 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 dies nicht vor Datenverlust durch einen
fehlerhaften Einsatz von tunefs
. Weitere
Informationen über diese beiden Werkzeuge finden Sie in
gjournal(8) und tunefs(8).
Es ist möglich, Journale auch für die Bootplatte eines FreeBSD-Systems zu verwenden. Der Artikel Implementing UFS Journaling on a Desktop PC enthält eine ausführliche Anleitung zu diesem Thema.
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>.