Das Dateisystem ext4
Eigenschaften und Benchmarks
btrfs, der neue Herausforderer
Kurz vor Fertigstellung des Artikels wurde btrfs, das neue Dateisystem von Chris Mason, nicht nur in den offiziellen Kernel aufgenommen, sondern erschien auch in einer neuen Version 0.17, die sich zusammen mit den zugehörigen Tools problemlos compilieren und installieren ließ. Wir nahmen dies zum Anlass, die Stabilität des Testsystems zu riskieren und auch für btrfs einige Benchmarkergebnisse zu ermitteln. Da btrfs noch mindestens ein halbes Jahr von der Fertigstellung entfernt ist, sollte man unsere Resultate mit Vorsicht genießen.
Auf die Eigenschaften von btrfs soll hier nicht weiter eingegangen werden. Eine solche Betrachtung könnte Gegenstand eines späteren Artikels sein. Hier soll es uns nur um die Grundfunktionen und deren Geschwindigkeit gehen.
Die Testbedingungen waren die gleichen wie beim ursprünglichen Test. Erfreulicherweise lief der Test ohne erkennbare Probleme durch. Auch für diesen Test, der mit 10 Läufen durchgeführt wurde, stehen die Rohdaten zur Auswertung zur Verfügung. Hier zunächst die gleiche Tabelle wie oben, erweitert um die Ergebnisse von btrfs:
ext2 | ext3 | ext4 | xfs | jfs | reiser3 | btrfs | |
---|---|---|---|---|---|---|---|
Dateisystem anlegen [s] | 6,58 | 9,03 | 8,36 | 0,28 | 0,49 | 0,81 | 0,40 |
Dateisystem mounten [s] | 0,56 | 0,89 | 0,58 | 0,17 | 0,19 | 1,47 | 0,11 |
Datei 8 GB lesen [MB/s] | 61,6 | 62,3 | 66,4 | 64,9 | 62,5 | 59,3 | 65,2 |
Datei 8 GB schreiben [MB/s] | 63,1 | 57,1 | 60,4 | 61,1 | 56,3 | 54,5 | 60,5 |
Seq. lesen [MB/s] | 60,2 | 59,3 | 64,8 | 62,1 | 62,7 | 61,5 | 66,4 |
Seq. schreiben [MB/s] | 60,0 | 55,6 | 58,3 | 55,0 | 54,6 | 52,4 | 59,7 |
Seeks [1/s] | 123 | 110 | 129 | 116 | 116 | 133 | 173 |
Datei erzeugen [1/s] | 844 | 69760 | 59872 | 3031 | 12213 | 18995 | 32808 |
Datei löschen [1/s] | 1964 | 19777 | 19574 | 527 | 405 | 5328 | 20843 |
Datei 8 GB löschen [sys s] | 0,235 | 0,534 | 0,457 | 0,284 | 0,0 | 1,267 | 0,786 |
Datei 8 GB löschen [min Ges s] | 0,498 | 0,612 | 0,500 | 0,308 | 0,007 | 1,296 | 0,950 |
Datei 8 GB löschen [max Ges s] | 9,588 | 7,596 | 7,029 | 6,382 | 0,059 | 7,914 | 1,173 |
Btrfs konnte durch die Bank sehr gute, teilweise sogar Spitzenwerte erzielen. Das Anlegen eines Dateisystems ging nur bei xfs schneller. Beim Mounten setzte sich btrfs an die Spitze vor xfs und jfs. Beim Lesen und schreiben mit dd
verpasste es knapp den ersten Platz, beim vergleichbaren Test mit bonnie++
war es jedoch unter den Journal-Dateisystemen das schnellste. Mit 173 Seeks pro Sekunde deklassierte es die Konkurrenz. Beim Erzeugen von Dateien war es nur halb so schnell wie ext3 und ext4, was aber immer noch für den dritten Platz genügte. Beim Löschen hingegen konnte es ext3 und ext4 leicht überbieten. Das Löschen einer großen Datei wurde in rund einer Sekunde erledigt, was zwar deutlich langsamer war als die anderen, aber keine Ausreißer nach oben zeigte.
Zum jetzigen Zeitpunkt sind die Ergebnisse von btrfs fast schon sensationell. Bis die endgültige Version von btrfs erscheint, kann jedoch noch viel passieren. Zum einen kann die Leistung optimiert werden, zum anderen könnte das Hinzufügen der noch fehlenden Features auch dazu führen, dass sich die Algorithmen verlangsamen. Ein endgültiges Urteil kann noch nicht gefällt werden.
Fazit
Mit ext4 ist es den Entwicklern gelungen, das Dateisystem ext3 ins nächste Jahrzehnt zu befördern. Bei leicht gesteigerter Geschwindigkeit der normalen Dateioperationen bringt ext4 das Ende der meisten relevanten Größenbeschränkungen, beschleunigte Dateisystemprüfung, eine effizientere Verwaltung und andere Verbesserungen. Dabei werden keine grundlegend neuen Konzepte eingeführt, sondern auf Bewährtes aufgebaut, das bereits aus anderen Dateisystemen bekannt war.
Unklar ist zur Zeit noch, wie sich ext4 mit den aufkommenden SSD-Festplatten verhält. Doch bleibt den Entwicklern noch viel Zeit für entsprechende Optimierungen. Auch ist ext4 noch nicht fertig, sondern wird im Gegensatz zu ext3 wohl noch einige weitere Features erhalten.
Vorsicht ist geboten, wenn eine Interoperabilität mit anderen Betriebssystemen notwendig ist, beispielsweise über virtuelle Maschinen. Da es eine Weile dauern dürfte, bis ext4-Implementationen für die anderen Systeme bereitstehen, sollte man in diesem Fall von ext4 Abstand nehmen.