Open Source im professionellen Einsatz

Das optimale Dateisystem: Performance, Features, Optionen

Qual der Wahl

Der Umstieg auf ein neues Dateisystem kostet Zeit und Nerven, lohnt sich aber, um die Stabilität und Performance des Rechners zu erhöhen. Dieser Artikel hilft bei der Wahl des optimalen Filesystems.

Die Auswahl des Dateisystems ist bei der Installation aktueller Linux-Distributionen zwar mit wenigen Mausklicks erledigt, die meisten Benutzer bleiben jedoch beim voreingestellten Filesystem und wechseln höchstens auf Grund schlechter Erfahrungen oder mit dem Umstieg auf eine andere Distribution. Es lohnt sich jedoch, bei der Entscheidung einen Blick über Ext 3 und ReiserFS hinaus zu riskieren.

Die Redaktion hat dafür einen erheblichen Testaufwand betrieben. Der eingesetzte leistungsstarke Server lief allein drei Wochen ununterbrochen (siehe Kasten "So haben wir getestet"). Laut Benchmarks mit den Filesystemen Ext 2, Ext 3, JFS, ReiserFS, Reiser 4, XFS und VXFS von Veritas haben JFS und XFS unter Kernel 2.6 an Performance gewonnen. Auch Reiser 4 will sich mit Rekordgeschwindigkeiten und neuem Design[1] sein Stück vom Dateisystem-Kuchen abschneiden. Obwohl sich jedes Filesystem zu jedem Zweck verwenden lässt, gibt es enorme Unterschiede bei Schreibgeschwindigkeit, Datensicherheit und Feature-Angebot. Bei der Lese-Performance sind die Unterschiede geringer.

So haben wir
getestet

Für die Tests benutzten wir einen 3-HE-Server RM312 von Thomas-Krenn.com, der mit einem auf 2,8 GHz getakteten Pentium-4-Prozessor und 512 MByte Hauptspeicher ausgestattet ist. Für die Tests standen zwölf SATA-Festplatten mit einem Raid-Verbund von knapp 2 TByte zur Verfügung. Davon belegte die Testpartition 200 GByte.

Als Betriebssystem für die Benchmarks mit dem 2.4er Kernel diente Suse Linux Enterprise Server 8 mit Kernel 2.4.21-138-smp. Für die Tests unter Kernel 2.6 benutzten wir Suse Linux 9.1 mit Kernel 2.6.7-mm4 und den entsprechenden Patches für Reiser 4.

Über drei Wochen arbeitete der Testrechner ununterbrochen an den Dateisystem-Benchmarks. Die Testarbeit übernahmen die »fs_ bench«-Perl-Skripte von [6] mit den Benchmarks Bonnie++ [7] und Iozone [8]. Sie testeten die Durchsatzrate des Dateisystems bei verschiedenen Schreib- und Lesemethoden. Iozone prüfte 1,2 und 4 GByte große Dateien mit unterschiedlicher Blockgröße. Bei Bonnie bildeten jeweils 10, 25, 50 und 100000 Dateien das Testvolumen, wobei Bonnie auch die Prozessorbelastung maß.

Zur Überprüfung der Ergebnisse benutzten wir den »slow.c«-Benchmark [9]. Alle Tests verliefen grundsätzlich wie bei [10], allerdings testeten wir bei den Journaling-Dateisystemen auch verschiedene Mount-Optionen.

Abbildung 7: Unser Pentium-4-Testsystem von Thomas-Krenn.com.

Abbildung 7: Unser Pentium-4-Testsystem von Thomas-Krenn.com.

Lesen ist langweilig

Die kleinsten Unterschiede weisen die einzelnen Dateisysteme beim Lesen auf. Hier haben in der Regel auch die verschiedenen Mount-Parameter kaum Einfluss. Die Abweichungen zwischen dem schnellsten und dem langsamsten Dateisystem liegen innerhalb der 20-Prozent-Grenze. Dieser Artikel geht deshalb überwiegend auf die Schreib-Performance ein.

Nur ein Lese-Ergebnis unter dem Suse Linux Enterprise Server 8 tanzt aus der Reihe (siehe Abbildung 2b). Auch hier zeigt sich das Feld zwar geschlossen, aber das Veritas-Dateisystem VXFS ist eine Ausnahme. Es kommt beim Lesen nur auf rund 60 MByte/s. Die Resultate der Konkurrenten mit Werten um 100 MByte/s lassen allerdings Zweifel am Messwert aufkommen, auf die der Artikel noch eingeht.

Mainstream

Der überwiegende Teil der Linux-Rechner benutzt Ext 3 oder ReiserFS als Hauptdateisystem, da dies der Standardvorschlag der wichtigsten Distributionen ist. Der Test nimmt daher die zwei Dateisysteme genauer unter die Lupe. Vorweg: Weder sind ReiserFS und Ext 3 besonders schnell, noch weisen sie per Default ein besonders großes Feature-Spektrum auf. Da die einzelnen Distributoren aber ihr bevorzugtes Filesystem mit Patches versehen, gibt es große Unterschiede zwischen den Systemen. Die Testergebnisse sind deshalb unter diesen Vorbehalten zu betrachten.

Ext 3 und ReiserFS gehören zur Familie der Journaling-Dateisysteme. Da beim Journaling streng genommen alle Daten zweimal geschrieben werden, ist nicht mit Spitzengeschwindigkeiten zu rechnen. In der Grundeinstellung benutzen Ext 3 und ReiserFS aber den Modus »data=ordered«, bei dem das Dateisystem nur die Metadaten - die Informationen über die Bewegungen im Dateisystem - im Journal speichert, die eigentlichen Daten nicht. Zu den Mount-Optionen siehe auch Tabelle 1.

Tabelle 1:
Mount-Optionen von Ext 3 und ReiserFS

 

Option

Erklärung

data=journal

Diese Option, bei der alle Daten zunächst in den
Journal-Bereich kopiert werden, erst dann an den eigentlichen
Bestimmungsort, garantiert höchste Datensicherheit. Mit ihr
sinkt aber die Datendurchsatzrate sowohl bei Ext 3 als auch bei
ReiserFS beinahe auf die Hälfte, da jeder Schreibvorgang
doppelt so lange dauert.

data=ordered

Dies ist die Standardoption. Das Dateisystem schreibt
zunächst die Daten an den Bestimmungsort und trägt dann
die Informationen über den abgeschlossenen Vorgang im Journal
ein.

data=writeback

Mit dieser Mount-Option, die bei Ext 3 einen Performancegewinn
von etwa 10 Prozent, bei ReiserFS bis zu 30 Prozent gegenüber
der Default-Option bringt, darf das Dateisystem bereits in das
Journal schreiben, bevor alle Daten an ihrem Bestimmungsort
angelangt sind. Bei einem Crash kann es vorkommen, dass durch den
Dateisystemcheck alte Daten in Dateien auftauchen. Die Option ist
für ReiserFS nur unter Kernel 2.6 verfügbar.

data=notail

Nur bei ReiserFS. ReiserFS benutzt Leerraum in Blöcken, um
darin Teile von Daten zu speichern, die nicht in einen Block
passen. Der Schwanz (engl. Tail) der Datei wird also abgeschnitten
und in einem anderen Block gespeichert. ReiserFS speichert damit 10
bis 20 Prozent mehr Dateien auf derselben Partition als
beispielsweise Ext 3. Weil damit ein leichter Performanceverlust
bis zu 5 Prozent verbunden ist, lässt sich dieses Feature mit
der Option »data=notail« abschalten.

Steht nicht die Geschwindigkeit, sondern die Integrität der Daten an erster Stelle, ist die Option »data=journal« für das Einhängen der jeweiligen Partition zu empfehlen. Bei Ext 3 ist dabei mit einem Schreibperformance-Verlust bis zu 50 Prozent zu rechnen. Bei größeren Dateien beträgt der Unterschied um die 20 Prozent (siehe Abbildung 1). Diese Option ist aber auch nicht für das Wurzelverzeichnis gedacht, sondern für separate Datenpartitionen.

Abbildung 1: Schreibperformance-Vergleich mit dem Iozone-Benchmark unter Kernel 2.6.7-mm4. Im Journal-Modus sind Ext 3 und ReiserFS etwa gleich langsam. Writeback- und Ordered-Modus bringen bei Ext 3 bis zu 40 Prozent schnelleren Datentransfer. Bei ReiserFS macht der Unterschied bei den kleinsten Dateien bis zu 120 Prozent aus. Als Vergleich sind zusätzlich die Ergebnisse von Ext 2 und Reiser 4 angegeben.

Abbildung 1: Schreibperformance-Vergleich mit dem Iozone-Benchmark unter Kernel 2.6.7-mm4. Im Journal-Modus sind Ext 3 und ReiserFS etwa gleich langsam. Writeback- und Ordered-Modus bringen bei Ext 3 bis zu 40 Prozent schnelleren Datentransfer. Bei ReiserFS macht der Unterschied bei den kleinsten Dateien bis zu 120 Prozent aus. Als Vergleich sind zusätzlich die Ergebnisse von Ext 2 und Reiser 4 angegeben.

Die Option »data=writeback« erlaubt dem Filesystem ins Journal zu schreiben, bevor alle Daten an ihrem Zielort angelangt sind. Sie ermöglicht einen Performancegewinn bis zu 10 Prozent und eignet sich gut für das Root-Dateisystem, da hier in der Regel kein Datenverlust zu befürchten ist. Ein separates »/home«- oder Dokumentenverzeichnis ist dann allerdings zu empfehlen.

Diesen Artikel als PDF kaufen

Als digitales Abo

Als PDF im Abo bestellen

comments powered by Disqus

Ausgabe 07/2013

Preis € 6,40

Insecurity Bulletin

Insecurity Bulletin

Im Insecurity Bulletin widmet sich Mark Vogelsberger aktuellen Sicherheitslücken sowie Hintergründen und Security-Grundlagen. mehr...

Linux-Magazin auf Facebook