
Der Kernelentwickler Ted Ts'o hat für Google einige Verbesserungen am Dateisystem Ext 4 vorgenommen.
Am letzten Tag der Linuxcon in Prag hat der Ext-4-Entwickler Ted Ts’o Features seines Dateisystems für das Cloud Computing vorgestellt.
“Cloud Computing ist vor allem eine wirtschaftliche Angelegenheit”, fasste Ts’o das Trend-Thema zusammen, “Man nutzt die Engergieeffizienz großer Rechenzentren und sorgt dafür, dass die Server gut ausgelastet sind”. Laufen aber viele Jobs auf einem Server, steht dem Dateisystem weniger Arbeitsspeicher für die Bitmaps zur Verfügung, die die Zuordnung der Blöcke speichern. Landen diese Daten folglich im Swap, kommt es zu großen Verzögerungen bei Systemaufrufen wie “unlink()” und “fallocate()”.

Der Kernelentwickler Ted Ts’o hat für Google einige Verbesserungen am Dateisystem Ext 4 vorgenommen.
Ext 4 begegnet dieser Problematik mit dem Feature Bigalloc: Statt Blockgrößen von 4 KByte verwendet Ext 4 so genannte Cluster mit Größen bis zu 1 MByte. Dadurch fallen weniger Einträge in den Bitmaps an, die somit leichter in den Speicher passen. Da die Bitmaps zudem häufiger aufgerufen werden, bleiben sie im Arbeitsspeicher, was für geringe Latenz sorgt. Mit größeren Blocks hätte sich das im Prinzip auch erreichen lassen, erklärte Ts’o, das VM-Subsystem nimmt aber an, dass die Blockgröße höchstens so groß wie eine Speicherseite ist. Theodore Ts’o: “Bevor ich anfange, das VM-Subsystem umzuschreiben, führe ich also lieber Cluster ein”. Bigalloc wird nach seiner Einschätzung vermutlich in Kernel 3.2 Einzug halten.
Einer der ersten Wünsche seines Arbeitgebers Google sei es gewesen, Ext 4 optional ohne Journal zu betreiben. Während dieses Feature für die meisten Anwender die Konsistenz des Dateisystems garantiert, hat der Suchmaschinenkonzern keine Verwendung dafür: Das hauseigene Clusterdateisystem inklusive Replikation und Prüfsummen kümmert sich darum. Journaling kostet Performance, daher blieb Google bis zur Anstellung von Ts’o bei Ext 2. Nun aber kann das Unternehmen die Vorteile von Ext 4 ohne das überflüssige Journal nutzen.
Daneben hat der Dateisystementwickler ein Feature namens Punch geschaffen, das vor allem beim Einsatz von Virtualisierung nützlich ist. Es ähnelt Truncate, kann aber Speicherplatz innerhalb einer Datei freigeben – sozusagen ein Loch hineinstanzen (engl. punch). Unter Virtualisierungslösungen sind die Festplatten der Gastsysteme als Datei implementiert. Löscht der Gast Dateien auf seiner virtuellen Platte, sorgt Punch dafür, dass auch der Host den Speicherplatz wiederverwenden kann. Damit lässt sich der Plattenplatz auf dem Gastgeber effizient nutzen, sogar Überprovisionieren ist möglich.
Ted Ts’o empfahl den Besuchern seines Vortrags außerdem, sich nicht von Benchmarks blenden zu lassen. Es komme darauf an, ob ein Benchmark auch zum Einsatzszenario passe- – etwa, ob er den Schwerpunkt eher auf den Durchsatz oder die Latenz des Filesystems lege. Das beste Linux-Dateisystem für alle möglichen Zwecke gäbe es einfach nicht, sagte er. Trotz der Vorteile seines Ext 4 sei beispielsweise XFS wesentlich besser für den Raid-Betrieb geeignet.



