Vor- und Nachteile

Ratgeber - Dateisysteme im Vergleich

Logging-/Journaling-Dateisysteme

Was heißt Logging- oder Journaling-Eigenschaft bei den Dateisystemen? Ursache für dessen Einführung ist, dass die Speichersysteme immer größer wurden und damit auch zwangsläufig ein Dateisystem-Check (fsck, chkdsk) mehr Metadaten verarbeiten muss, was Zeit kostet. Bei aktuellen Dimensionen ist eine Wartezeit von mehreren Stunden nicht mehr akzeptabel. Von daher nutzt man heute besser den folgenden Workflow dafür:

  1. Ziel: Block 3 und 25 von Datei schreiben

  2. Schreibe ins Journal: "Schreibe Block 3", "Schreibe Block 25", Kopiere: Block 3 und 25 ins Journal

  3. Schreibe: Block 3 und Block 25

  4. Schreibe ein "COMMIT" für die Ausführung ins Journal

  5. Ziel erreicht: Block 3 und 25 auf Medium geschrieben

Ist nach dem Booten des Systems der "COMMIT" Eintrag im Journal nicht vorhanden, so heißt dies, dass die Blöcke noch nicht auf dem Medium gelandet sind und somit diese Aktion nun nachgeholt werden muss. Damit wäre das Dateisystem wieder konsistent. Wohlgemerkt: Hhier geht es um die Konsistenz des Dateisystems, nicht der Absicherung der unverfälschten Datenblöcke.

Klassiker im Linux-Bereich mit Journaling ist das ext3-Dateisystem, das ext2 um eine Journaling-Funktion erweitert. Dessen aktueller Nachfolger ext4 soll nun besser skalieren. Microsoft hat sein New Technologie File System (NTFS) seit Einführung von Windows NT ebenfalls mehrfach überarbeitet. Log-Einträge des Journals landen in der Datei "$LogFile". Neben dem NTFS-Log-Journal gibt es auch das Update-Sequence-Number (USN)-Journal, das Änderungen an Dateien, Verzeichnissen und Streams aufzeichnet und somit Audit-Informationen liefern kann. Apples HFS+ als Nachfolger von HFS unterstützt ebenfalls die Journaling-Funktion.

Ein wenig ungewöhnlich ist bei NTFS die Tatsache, dass die Metadaten ebenfalls als "normale" Dateien im Dateisystem abgelegt sind, aber von Windows für den Anwender ausgeblendet werden. Die wichtigste Datei im Hauptverzeichnis ist die Master-File-Table (MFT$). Daneben kommen beispielsweise noch "$badclus" für fehlerhafte Cluster und "$Extend" für die Extents zur Anwendung.