Journaling
Journaling
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:
- Erst wird die geplante Änderung ins Journal geschrieben.
- Dann wird sie auf den eigentlichen Strukturen ausgeführt.
- 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).
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