Journaling-Dateisystem

Ein Journaling Dateisystem ist in der Lage, die Effizienz und Sicherheit der Daten- und Speicherplatzverwaltung zu erhöhen, indem die Daten vor dem eigentlichen Abspeichern im Dateisystem in einem Journal  zwischengespeichert und verwaltet werden. Für dieses Journal wird ein extra Speicherbereich reserviert. Das Journal gewährleistet auch die Datenkonsistenz,  da auch bei Störungen während des Schreibvorganges ein konsistenter Zustand bereitgehalten wird bzw. rekonstruierbar ist. Dies ist  bei Systemabstürzen und Systemausfällen von grossem Vorteil, da neben der Rekonstruierbarkeit der Daten auch beim Wiederhochfahren die Routinen zur  Überprüfung und Reparatur des Dateisystems entfallen.

Metadaten-Journaling und Full-Journaling 
Beim Metadaten-Journaling wird die Konsistenz des Dateisystems gewährleistet. Eine Weiterentwicklung ist das Full-Journaling, bei dem auch die Konsistenz  der Dateiinhalte gewährleistet wird.

Funktionsweise des Journaling 
Ein Journaling Dateisystem behebt die Schwäche von Dateisystemen, die bei Schreibvorgängen sowie bei Lösch-, Verschiebe- und Umbenennungsvorgängen auftreten.  Während dieser Vorgänge befindet sich ein Dateisystem in einem inkonsistenten Zustand, da diese Vorgänge auch auf mehreren Stellen der Festplatte gleichzeitig Veränderungen vornehmen.  Weiterhin ermöglicht es einen schnelleren Re-Boot-Prozess bei Systemausfällen.  Das Journaling-Konzept ermöglicht, dass Schreibvorgänge sowie Update-, Lösch-, Verschiebe- oder Umbennenungsvorgänge zuerst im extra dafür reservierten Speicherbereich des Journals ausgeführt werden.  Normalerweise müssen bei einem Schreibvorgang, bei dem ein User eine Datei X von einem Verzeichnis Y nach einem Verzeichnis Z schiebt,  zwei Schreibvorgänge durchgeführt werden: zunächst muss der Eintrag der Datei X aus dem Verzeichnis Y entfernt werden und im Verzeichnis Z hinzugefügt werden. Falls es sich um eine grössere Datei handelt, könnte es erforderlich sein,  dass das Verzeichnis Z vor dem Schreibvorgang vergrössert werden müsste. Während dieses Vorganges befindet sich das Dateisystem in einem inkonsistenten Zustand, welcher zu Problemen bei Systemabstürzen oder Festplattenausfällen führt.  Bei dem Journaling-Verfahren werden diese Vorgänge zunächst komplett im Journal ausgeführt, bevor sie im konsistenten Zustand  in einem Vorgang auf dem Dateisystem ausgeführt werden. Das Journal wird regelmässig abgeschlossen um die Vorgänge auf das Dateisystem zu schreiben. Dabei wird die Anzahl der Änderungen festgehalten und eine Prüfsumme ermittelt.  Beim Apple HFS+ Journaling für Mac OS X kann beim Installationsvorgang das Schreibzyklusintervall festgelegt werden. Dieses Intervall kann aber auch nach der Installation festgelegt werden. 

Beispiele für Journaling Dateisysteme 
Beispiele für Journaling Dateisysteme sind: ReiserFS, NTFS, ext3/ext4 (Linux), JFS1/JFS2, HFJS (Hierarchical File Journaling System), BeFS (Be File System, BeOS) FFS (Berkeley Fast File System, BSD),  SFS (SmartFilesystem) oder PFS (Professional File System (Amiga)).                   
Siehe auch:    Reiser-File-System   NTFS   Hierarchical-File-System   Second-Extended-Filesystem   Third-Extended-Filesystem   HFS   BSD   linux   Booten   Journaled-File-System

  NTFS

New Technology File System. Bei NTFS handelt es sich um das Dateisystem von Windows NT, Windows 2000, Windows Server 2003, Windows XP und Windows Vista. Aktuelle Version: 3.1. Zu den Eigenschaften von  NTFS gehören:
1. Geordnete (unfragmentierte) Speicherung von Daten. Dies hat den Vorteil, dass die Daten auch nach längerer Zeit auf der Festplatte in einem sortierten Zustand sind und damit die Zugriffszeiten entsprechend niedrig bleiben. 
2. Verwendung langer Dateinamen (bis zu 256 Zeichen, Pfadlänge bis zu ca. 32.000 Zeichen, Dateigrösse bis zu 16 EiB)
3. Bessere Datensicherheit
4. Einsatz binärer Suchbäume bei der Dateiverwaltung.
5. Alternate Data Streams  (Speicherung von Alternativen Datenströmen)
6. Verwendung von Access Control Lists (ACL) für die Rechteverwaltung.

NTFS kann auf FAT32 zugreifen, jedoch nicht umgekehrt. NTFS 3.x unterstützt die benutzerspezifische Zuteilung  von Speicherplatz auf Festplatten, die Verschlüsselung von Daten in Realtime (EFS, Encrypting File System) und die zentrale Nutzung verteilter Daten. Viele Eigenschaften von NTFS stammen von IBMs HPFS (High Performance File System), dem  Dateisystem von OS/2. NTFS ist ein Dateisystem, dass alles als Bestandteil einer Datei ansieht. Dazu gehören auch die Informationen über das System selber. Das Master File Table (MFT) ist die Hauptdatei. Das MFT verwaltet die Informationen über  Blockzugehörigkeiten der Dateien, Zugriffsberechtigungen und Attribute. Attribute sind bei NTFS jede Eigenschaft einer Datei inklusive dem Inhalt der Datei. Das MFT belegt beim Formatieren des Datenträgers einen reservierten Platz. Nach Betriebnahme  kann das MFT, falls der ursprünglich reservierte Platz nicht ausreicht, weiteren Speicherplatz von der Festplatte für sich belegen. Dadurch kann das MFT auch fragmentiert werden. Als Normwert belegt das Master File Table 12,5 % der Partition.  Alternativ sind auch andere Werte einstellbar: 25 %, 37,5 % oder gar 50 %. NTFS ist ein Metadaten-Journaling-Dateisystem: die Meta-Daten werden beim Schreiben erst in einem Journal gespeichert. Dann erfolgt der Schreibvorgang  innerhalb der Partition und anschliessend wird das Journal aktualisiert. Falls der Schreibvorgang nicht korrekt ausgeführt werden kann, müssen nur die Änderungen im Journal zurückgeführt werden, damit das System seine Datenkonsistenz wiedererhält. 

Nachfolger von NTFS
WinFS sollte der Nachfolger von NTFS werden. Windows Vista wurde jedoch ohne WinFS ausgeliefert und das Projekt WinFS selber wurde später ganz eingestellt.                                     
Siehe auch:    FAT   WinFS   windows   Windows-Vista   Exbibyte   MS-DOS   Distributed-File-System   Reiser-File-System   Journaling-Dateisystem   

  Third-Extended-Filesystem

Bei dem Third Extended Filesystem (ext3) handelt es sich um ein Journaling Dateisystem für Linux-Distributionen.  Zusätzlich zu ext2 verfügt es über ein Journal und eine Verzeichnisstruktur welche mit H-Bäumen realisiert wurde.

Journaling-Stufen 
Es werden drei Journaling-Stufen bei der Linux-Implementierung angeboten:  Full Journaling, Writeback Journaling und Ordered Journaling. Beim Writeback Journaling werden ausschliesslich die Metadaten im Journal zwischengespeichert.  Die Dateiinhalte werden mit sync-Prozessen aktualisiert. Dies bedeutet zwar einen Geschwindigkeitsvorteil, jedoch zu Lasten verringerter Sicherheit vor Datenverlust.  Full Journaling bedeutet, dass sowohl Metadaten als auch Dateiinhalte im Journal verwaltet werden.  Bei der Option Ordered Journaling werden die Dateiinhalte direkt ins Dateisystem geschrieben und die Metadaten danach im Journal aktualisiert.  Der Nachfolger von ext3 ist das ext4 (Fourth Extended Filesystem).                                           
Siehe auch:    Second-Extended-Filesystem   Fourth-Extended-Filesystem   Reiser-File-System   XFS   Journaled-File-System   linux   

  Journaled-File-System

Das Journaled File System (JFS) wurde 1990 von IBM für das hauseigene Unix-Derivat AIX entwickelt.  JFS soll die Konsistenz des Dateisystems sicherstellen. Änderungen wurden nach Transaktionen im Journal protokolliert.  Ab Version 3 von AIX wurde die Hardwareschicht weitesgehend virtualisiert. Der Logical Volume Manager flexibilisierte die Zugriffsverwaltung auf der Festplatte, ein Speichermanager ermöglichte die Virtualisierung des Speicherraumes.  Das Journaled File System sollte in diese AIX-Umgebung eingebunden werden.                                                   
Siehe auch:    unix   IBM   Virtualisierung   Second-Extended-Filesystem   Third-Extended-Filesystem   Reiser-File-System   High-Performance-File-System   Journaled-File-System