Journaling Filesysteme unter Linux

Welche Dateisysteme bieten Journaling?


[ Seminar Linux und Apache ] ... [ Inhaltsübersicht ] ... [ Performance ]

Übersicht


Ext3fs

Ext3fs ist nicht wie der Name vermuten ließe ein echter Nachfolger von Ext2fs, dem Standard-Dateisystem unter Linux.
Ext3fs ist vielmehr eine Erweiterung von Ext2fs, da sich am Dateisystem so gut wie nichts entscheidendes zum "Vorgänger" verändert hat. Die Erweiterung beschränkt sich - etwas übertrieben gesagt - im wesentlichen auf das Hinzufügen einer Datei - dem Logfile.
Das Ziel bei der Entwicklung von Ext3fs war es mit minimalen Änderungen eine komplette Lösung zu finden, die das Journaling unterstützt. Hierfür wurde dann eine Kopie des Ext2fs-Quellcodes gemacht und eine textuelle Ersetzung durchgeführt mit der "ext2" durch "ext3" ersetzt wurde.
Hinzugefügt wurde dann eine vom Dateisystem selbst völlig unabhängige Schicht die das Journaling übernimmt. Das Dateisystem selber hat nichts mit dem Journaling zu tun. Die einzige Änderung die das System hinter sich hat ist, dass es jede Aktion die Schreibend auf die Festplatte zugreift in eine Transaktion packt. D.h. es wird der Journaling-Schicht mitgeteilt, welche Blöcke innerhalb einer Transaktion geändert werden sollen. Den Rest übernimmt dann die neue Journaling-Schicht.

Nach oben

ReiserFS

Beim Dateisystem des Hans Reiser werden im Journal alle Metadatenänderungen protokolliert, die mehr als einen Block betreffen. Bei einem Systemabsturz ist also lediglich sichergestellt, dass das System sehr schnell wieder in einen konsistenten zustand gesetzt wird. Datenverluste kann es weiterhin geben, da ja "nur" die Metadaten im Journal gesichert werden.

Die Datenstruktur wird hier in einem B*-Baum gespeichert. In den Blättern werden vier verschiedene Arten von Datensätzen gespeichert: Jeder Datensatz besitzt einen eindeutigen Schlüssel (Hashfunktion), der zum Sortieren und Wiederfinden benutzt wird. Durch die Verwaltung des Baumes (ausbalancieren beim Hinzufügen bzw. Löschen von Einträgen) nimmt das Speichern etwas mehr Rechenzeit in Anspruch als der einfache Mechanismus beim ext2.

Nach oben

XFS

XFS ist eine Portierung des Dateisystems von IRIX, das bereits seit langem auf den bekannten Grafik-Workstations und Servern von Silicon-Graphics läuft. Die Version 1.0 erschien am 1.Mai 2001. Da es in diesem Bereich besonders auf Sicherheit und Geschwindigkeit ankommt ist XFS besonders für große Dateien ausgelegt. Wenn man bedenkt, dass Dateien bis zu 9.000 PByte groß sein können (zur Info die Reihenfolge: Kilo-, Mega-, Giga-, Terra-, Peta-, Exa-Byte).
Die technischen Details füllen ganze Seiten. Zu erwähnen wäre z.B. dass mit dem plattformübergreifenden xfsdump/xfsrestore sogar Dumps von IRIX nach Linux transferiert werden können.

Nach oben

JFS

JFS ist das in der Großrechnerwelt bewährte Dateisystem von IBM, welches nun auch auf Linux portiert wurde. JFS ist bereits bei einer stabil laufenden Version 1.0.09 angekommen. Das Dateisystem basiert auf einem B-Baum und ist dementsprechend schnell.
Das Journal wurde dabei übrigens nicht wie bei anderen Systemen im Nachhinein eingefügt, sondern war integraler Bestandteil von Anfang an.
Mit Hilfe von variablen Blockgrößen sind Dateisysteme bis zu einer Größe von 32 PByte realisierbar.

Nach oben

GFS

Ein Dateisystem das Ressourcen über ganze "Server-Farmen" verteilt. Dieses Dateisystem soll nur der Vollständigkeit halber erwähnt werden. Es wird hier nicht weiter betrachtet.

Nach oben

Die Grenzen der Dateisysteme

Die Grenzen der Dateisysteme [ 3]
  Maximale Dateisystem-Größe Block-Größe Max. Datei-Größe
Ext3fs 4 TByte 1 KB bis 4 KB 2 GB
XFS 18.000 PByte 512 Byte bis 64 KB 9.000 PByte
JFS 512 Byte/Block => 4 PByte 512, 1024, 2048, 4096 Byte 512 Byte/Block => 512 TByte
4 KByte/Block => 32 PByte 4 KByte/Block => 4 PByte
ReiserFS 4GB of blocks, 16 Tb bis zu 64 KB (momentan fest 4KB) 4 GB, 2^10 PByte in Vers. 3.6.xx
zur Info die Reihenfolge: Kilo-, Mega-, Giga-, Terra-, Peta-, Exa-Byte


Nach oben

[ Seminar Linux und Apache ] ... [ Inhaltsübersicht ] ... [ Performance ]