Vergleich einiger Dateisysteme

Während der Installation können Sie für Ihre Partitionen verschiedene Dateisysteme auswählen mit deren Algorithmen diese Partitionen dann formatiert werden.

Wenn Sie nicht gerade ein Spezialist sind, ist die Auswahl des richtigen Dateisystems nicht gerade selbstverständlich. Lassen Sie uns einen kurzen Blick auf verschiedene aktuelle Dateisysteme werfen, die alle in Mandrakelinux enthalten sind.

Verschiedene gebräuchliche Systeme

Ext2

Das Second Extended Filesystem (abgekürzt ext2 oder einfach ext2) war einige Jahre lang das Standard-Dateisystem unter GNU/Linux. Es ersetzte das Extended File System (daher der Namensteil „Second“). Das „neue“ Dateisystem korrigierte einige Probleme und Limitierungen des Vorgängers.

Ext2 hält sich an die üblichen Standards für Unix-Dateisysteme. Seit seiner Einführung hat es sich natürlich weiter entwickelt aber dabei seine Stabilität und gute Leistung beibehalten.

Ext3

Wie es schon der Name ahnen lässt ist das Third Extended File System der Nachfolger von Ext2. Es ist kompatibel zu seinem Vorgänger, enthält aber eine neue Eigenschaft: das Journal.

Eine der größten Schwächen der „traditionellen“ Dateisysteme wie Ext2 ist ihre Empfindlichkeit bei plötzlichen Systemausfällen (Stromunterbrechung, Software-Absturz, usw.). Im Allgemeinen folgt dann nach einem Neustart eine recht ausgedehnte Prüfung der Systemstruktur und Versuche der Fehlerkorrektur, die meistens weitere Schäden des Dateisystems verursachen. Dabei entsteht nicht selten ein teilweiser oder sogar vollständiger Datenverlust.

Ein ständiges Journal ist die Lösung dieses Problems. Vereinfacht dargestellt, wird eine Aktion (wie etwa das Speichern einer Datei) gespeichert bevor die Aktion tatsächlich ausgeführt wird. Man kann das mit der Tätigkeit eines Kapitäns vergleichen, der ein Logbuch zur Aufzeichnung der täglichen Ereignisse führt. Das Ergebnis: ein ständig kohärentes Dateisystem. Bei eventuellen Problemen geschieht eine Prüfung und Reparatur sehr schnell und sicher. Dadurch hängt die Dauer der Prüfung eines Dateisystems nicht mehr von der Größe sondern von der tatsächlichen Nutzungsart ab.

Ext3 bietet also die Journal-Technologie zusätzlich zur robusten Struktur von Ext2 und ist somit voll kompatibel zum Vorgänger-System. Daher ist ein Umstieg von Ext2 auf Ext3 oder zurück kein Problem und lässt sich leicht durchführen.

ReiserFS

ReiserFS wurde dagegen komplett neu entwickelt. Es ist wie Ext3 auch ein journalisierendes Dateisystem aber die interne Struktur ist vollkommen anders, da es zur Journalisierung ein aus dem Datenbank-Bereich stammendes Konzept benutzt.

JFS

JFS ist ein journalisierendes Dateisystem, das von IBM entwickelt und benutzt wird. Es war zu Anfang proprietäre Software bis sich IBM dazu entschloss, es der Freien Software Bewegung zur Verfügung zu stellen. Die interne Struktur ähnelt der des ReiserFS.

XFS

XFS ist das von SGI entwickelte und in IRIX benutzte journalisierende Dateisystem. Auch dieses Dateisystem war zu Anfang proprietäre Software und wurde ebenfalls später von SGI freigegeben. Die interne Struktur hat viele besondere Eigenschaften, wie etwa Unterstützung für Echtzeit-Übertragung und Cluster-Dateisysteme (allerdings nicht in der freien Version).

Unterschiede zwischen den Dateisystemen

Tabelle 9.1. Eigenschaften der Dateisysteme

 Ext2Ext3ReiserFSJFSXFS
StabilitätExzellentGutGutMediumGut
Wiederherstellung gelöschter DateienJa (komplex)Ja (komplex)NeinNeinNein
Reboot-Zeit nach CrashLang, sogar sehr langSchnellSehr schnellSehr schnellSehr schnell
Status der Daten nach einem CrashAllgemein gut, aber hohes Risiko von teilweise oder komplettem VerlustSehr gutMedium. [a]Sehr gutSehr gut
ACL-UnterstützungJaJaNeinNeinJa

[a] Durch das Einfügen der Option data=journal in die /etc/fstab kann man bessere Resultate bei der Wiederherstellung nach einem Systemcrash erreichen. Dadurch werden nicht nur die Metadaten sondern auch die Daten im Journal erfasst.

Die maximale Dateigröße hängt von einer Reihe von Parametern ab (etwa Block-Größe bei ext2/ext3) und erhöht sich gewöhnlich abhängig von der Kernversion und Architektur. Die Begrenzung durch das Dateisystem liegt zur Zeit nahe oder etwas über 2 TeraByte (TB, 1 TB=1024 GB) und kann bei JFS bis zu 4 PetaByte (PB, 1 Pb=1024 TB) betragen. Leider unterliegen diese Werte auch den Grenzen der maximalen Größe eines Block-Gerätes, die beim aktuellen Kern 2.4.X (nur für X86-Systeme) bei 2TB liegt[20], sogar im RAID-Modus. In der 2.6-er Kernreihe kann diese Grenze durch die Kompilierung der Unterstützung von Large Block Device (CONFIG_LBD=y) überschritten werden. Weitere Informationen erhalten Sie auf den Seiten Adding Support for Arbitrary File Sizes to the Single UNIX Specification, Large File Support in Linux und Large Block Devices.

Und die Leistung?

Ein Leistungsvergleich zwischen Dateisystemen ist immer recht schwierig. Die Tests haben ihre Schwachstellen und die Ergenisse sollten vorsichtig interpretiert werden. Zur Zeit ist ext2 ziemlich ausgereift, entwickelt sich aber nur langsam weiter. Auch ext3 und reiserfs haben heute ihre Kinderkrankheiten hinter sich. reiserfs bietet in ReiserFS4 einige neue Eigenschaften.[21]. XFS dagegen hat eine Menge Features und mit der Zeit funktionieren die erweiterten Features immer besser unter Linux. JFS geht etwas anders an die Sache heran, hier werden einzelne Features nach und nach in Linux integriert. Das verlangsamt zwar den gesamten Prozess, ergibt aber einen jeweils sauberen Code. Von diesen Entwicklungen her sind bereits Vergleiche veraltet, die nur ein paar Monate oder Wochen zurück liegen. Auch die modernen Geräte (denken Sie an heutige Festplatten-Kapazitäten) machen einen großen Unterschied aus. Zur Zeit kann man unter XFS mit großen Dateien die beste Performance beobachten.

Jedes System hat seine vor- und Nachteile. Es kommt eigentlich darauf an, wozu und wie Sie Ihren PC benutzen. Für einen einfachen Desktop mögen Sie mit Ext2 zufrieden sein während bei einem Server ein journalisierendes Dateisystem wie Ext3 vorzuziehen ist. ReiserFS eignet sich hingegen wegen seiner Entwicklungsgeschichte am besten für Datenbank-Server und JFS ist da die beste Wahl, wo es auf die Geschwindigkeit des Datendurchsatzes ankommt. XFS schließlich ist für diejenigen interessant, die die erweiterten Features benötigen, die dieses System bietet.

Für den „normalen“ Gebrauch zeigen alle 4 Dateisysteme annähernd gleiche Leistungen. ReiserFS ist zwar bei sehr kleinen Dateien schneller, verliert aber bei der Arbeit mit größeren Dateien mit vielen MegaBytes. In den meisten Fällen wird die Leistung der Journal-Fähigkeiten des ReiserFS die Nachteile aufwiegen. Beachten Sie bitte, dass das ReiserFS normalerweise ohne die Option notail benutzt wird. Diese Option ist eine Optimierung für den Umgang mit kleinen Dateien. Ohne diese Option werden auch große Dateien mit „normaler“ Geschwindigkeit verarbeitet.



[20] Wie kann man solche Werte mit Festplatten erreichen, die gerade einmal 320-400GB an Kapazität bieten? Nehmen Sie beispielsweise einen RAID-Kontroller, der 8 Festplatten zu je 250GB per RAID-Striping ansteuert, so bekommen Sie eine Gesamtleistung von 2TB. Die Kombination mehrerer RAID-Kontroller mit Linux Software-RAID oder LVM ermöglicht sogar das Überschreiten der 2TB-Grenze.

[21] Zum Zeitpunkt der Entstehung dieses Handbuchs ist reiserfs4 moch nicht in 2.6-er Kernen enthalten