Was ist ein Journaling-Dateisystem?

Jedes Betriebssystem verwendet sein eigenes Dateisystem zur Speicherung von Daten. Windows verwendet NTFS, macOS verwendet APFS und die meisten Linux-Distributionen verwenden Ext4. Obwohl diese Dateisysteme grundlegend unterschiedlich sind, gibt es ein gemeinsames Merkmal, das in all diesen Dateisystemen vorhanden ist: Journaling.
Lass uns mehr über Journaling-Dateisysteme erfahren und wie sie sich auf das alltägliche Rechnen auswirken.
Was ist Journaling?
Stell dir jede Datei auf einem Computer als ein einzigartiges Bibliothekskatalog von Zeitschriften, Periodika oder Dokumenten vor. Jede neue Ausgabe, die zu einem Katalog hinzugefügt wird, verändert dessen Informationen leicht. Anstatt in der Bibliothek nach einem Eintrag zu suchen, musst du nur den relevanten Katalog überprüfen.
Journaling in Computing-Dateisystemen funktioniert sehr ähnlich. Sein Zweck ist es, Änderungen nachzuverfolgen, die noch nicht im Dateisystem festgeschrieben wurden. Selbst nach Abstürzen oder unerwarteten Herunterfahren kannst du immer noch auf die neueste Versionsdatei zugreifen, mit einer geringeren Wahrscheinlichkeit, dass sie beschädigt wird.

Der Begriff „Journal“ stammt von der Analogie eines Tagebuchs. Alle Änderungen, die du in einem Tagebucheintrag festhältst, werden nach Datum und Uhrzeit gespeichert. In ähnlicher Weise ermöglicht Journaling, dass alle Aktualisierungen einer Datei in einem zusammenhängenden Teil der Festplatte gespeichert werden.
Diese Updates müssen sich physisch nicht in unmittelbarer Nähe zueinander befinden: Tatsächlich sind die Journaleinträge über die Festplatte verstreut. Aber anstatt sie zufällig zuzugreifen, sind sie in einer tagebuchähnlichen Reihenfolge verfügbar, die tausendmal schneller ist.

Journaling spart viel Zeit bei der Dateispeicherabfrage aufgrund zusammenhängender Speichereinsätze.
Definitionen
Je nach Betriebssystem gibt es verschiedene Arten von Journaleinträgen, die wir im Folgenden besprechen werden. Bevor wir das tun, müssen wir einige numerische Begriffe klarstellen.
Tebibytes (TiB): Wir alle wissen, wie viel ein Gigabyte ist. Ein Tebibyte (TiB) entspricht 1024 (= 210) Gigabyte. TiB ist eine der Standard-Einheiten, um große Werte in der Dateispeicherung auszudrücken. Auch 1 TiB = 1.09951 Terabyte (TB).
Pebibyte (PiB): Ein Pebibyte (PiB) entspricht 1024 TiB oder etwa einer Million Gigabyte – ein sehr großer Wert.
Cluster: Datencluster sind die kleinste Einheit des Speicherplatzes auf der Festplatte, die verwendet werden kann, um eine Datei zu speichern. Es kann von 512 Bytes für einen einzelnen Sektor bis zu 64 KB für 128 Sektoren reichen.
1. NTFS
New Technology File System (NTFS) ist Microsofts Standard-Journaling-System für Windows und Windows Server. Es verwendet Protokolldateien und Checkpoint-Informationen, um die stabilen Werte eines Dateisystems nach einem Neustart wiederherzustellen.
NTFS unterstützt große Datenmengen: Bei einer Clustergröße von 4 KB können 16 TiB Daten gespeichert werden. Bei einer maximalen Clustergröße von 64 KB bedeutet dies 256 TiB Daten mit 256 TiB als maximale Dateigröße.
Heutzutage behebt NTFS jegliche Beschädigung in Dateien online durch das, was als „selbstheilendes NTFS“ bekannt ist. Windows 10-Benutzer erinnern sich vielleicht an eine Ausfallzeit aufgrund von Chkdsk, die ältere Windows-Versionen plagte. In der neuesten Version des selbstheilenden NTFS wurde das Problem online gelöst, und es tritt keine Ausfallzeit auf.
Auch lesen: FAT32 vs. exFAT vs. NTFS: Was ist der Unterschied?
2. Ext
Das Extended File System (ext) ist seit jeher das Journaling-System von Linux. Es wurde vom Unix-Dateisystem (UFS) inspiriert und hat seit seinem Erscheinen in den frühen 90er Jahren drei andere Iterationen durchlaufen.
- ext2: Ursprünglich in Debian und Red Hat Linux verwendet, wird ext2 immer noch in Flashmedien wie SD-Karten und USB-Laufwerken verwendet. Es kann 2 bis 32 TiB Daten mit einer maximalen Clustergröße von 8 KB aufnehmen.
- ext3: Als drittes erweitertes Dateisystem wird ext3 mit Linux, BSD und ReactOS verwendet. Die Größenbeschränkungen sind ähnlich wie bei ext2.
- ext4: Die neueste Version des erweiterten Dateisystems, wird von Google Dateispeicher, BSD, PowerPC und den meisten aktuellen Linux-Distributionen verwendet. Die Größenbeschränkungen entsprechen 1024 PiB oder etwa einer Million TiB. Die größte Clustergröße beträgt 64 KB.
ext4 verwendet Prüfziffern im Journal, um die Zuverlässigkeit zu verbessern, da es sicher vermeiden kann, während des Journalings auf eine Festplatten-E/A zu warten und die Leistung der Festplatte leicht zu verbessern.
3. APFS
Das Apple File System (APFS) wird mit macOS High Sierra, iOS 10.3 und später sowie einigen anderen Systemen verwendet. Es unterstützt bis zu 8000 PiB (263 Byte), was ungefähr achtmal größer ist als ext4.

Die grundlegenden Fähigkeiten von APFS sind zahlreich: Dazu gehört das Erstellen von „Snapshots“, was wie eine Fotokopie des Systems zu einem bestimmten Zeitpunkt ist. Ähnlich wie NTFS verwendet es Prüfziffern zur Sicherstellung der Datenintegrität und schützt vor Systemabstürzen mit einem Ansatz, der als „Copy on writer“ bezeichnet wird. APFS verwendet die vollständige Festplattenverschlüsselung.
Fazit
Journaling in Dateisystemen ist eine grundlegende Versicherung gegen Systemabstürze und unerwartete Herunterfahren. Durch das schnelle Schreiben von Änderungen in ein Journal können wir sicherstellen, dass alle Änderungen an Dateien aufgezeichnet und während Stromausfällen oder Computerabstürzen nicht verloren gehen.
Es gibt viele journalisierte Dateisysteme, die hier nicht diskutiert werden. Oracle, VMware, BSD, Cisco, Solaris und viele andere haben ihre eigenen proprietären Journaleinheiten.