6 DateisystemeJournaling

Journaling

Auf einen Blick

Dateisysteme cachen Strukturänderungen im RAM und schreiben verzögert. Fällt dazwischen der Strom aus, drohen Inkonsistenzen. Ein Journal (Protokoll nach dem Write-Ahead-Prinzip) verhindert das.

Das Problem

Aus Performance-Gründen cachen viele Dateisysteme Informationen im Hauptspeicher und schreiben sie erst verzögert auf das Medium. Folge: Inkonsistenzen möglich, z.B. wenn vor dem Wegschreiben von Strukturänderungen der Strom ausfällt.

Beispiel: Der Referenz-Zähler (Link Count) einer Inode wird kleiner als die Anzahl der tatsächlichen Verzeichnis-Einträge → die drei Strukturen (Verzeichnis, Deskriptor, Free List) sind nicht mehr konsistent.

Die Lösung

Moderne Dateisysteme führen ein Protokoll (Journal) nach dem Write-Ahead-Prinzip:

  1. Erst wird die geplante Änderung ins Journal geschrieben.
  2. Dann wird sie auf den eigentlichen Strukturen ausgeführt.
  3. Nach Erfolg wird der Journal-Eintrag als erledigt markiert.

Fällt das System aus, kann beim Neustart das Journal „abgespielt" (oder verworfen) werden — Struktur-Inkonsistenzen sind kaum mehr möglich. Das ersetzt den langsamen vollständigen Konsistenz-Check (fsck/chkdsk).

Beispiele

Journaling-Dateisysteme sind u.a. ext3/ext4, NTFS (LogFile), XFS, JFS. Das ältere ext2 hat noch kein Journal.

Verwandte Notes

Technische Sicht auf Dateisysteme · Beispiel-Dateisysteme · Inode · Sicherheit im Dateisystem

← Kapitelübersicht


⬅️ Datenblock-Verwaltung · Beispiel-Dateisysteme ➡️

Built with LogoFlowershow