Wenn Sie Linux ausführen, und insbesondere, wenn Sie eine Datenbank unter Linux ausführen, war es in den letzten Jahren schwierig, ein anderes Dateisystem als das einfache alte ext3 zu empfehlen. Einige der Alternativen, die an einer Stelle interessant aussahen – jfs, ReiserFS – werden an dieser Stelle vollständig aufgegeben. Dasjenige, das seit einiger Zeit fast lebensfähig ist, ist XFS, ursprünglich ein SGI-Projekt. Und diese Woche steht es wieder im Rampenlicht.
XFS hatte in der Vergangenheit unter einer Reihe von Problemen gelitten. Da es für stabile Hardware entwickelt wurde, war es zunächst nicht so robust auf billiger Standard-PC-Hardware; Einiges davon wurde erst vor zwei Jahren aufgeräumt. Es hatte dieses seltsame Problem mit genullten Dateien, das einige Leute abschreckte. In geschäftsorientierten Linux-Distributionen wie RedHat wurde es als Bürger zweiter Klasse behandelt, sodass Sie Ihren eigenen Kernel kompilieren mussten. Selbst auf dem weniger restriktiven CentOS mussten Sie einige seltsam aussehende Setup-Schritte ausführen, um XFS-Unterstützung hinzuzufügen, und das Ergebnis war ganz offensichtlich nicht unterstützt. Und als eines der ersten Dateisysteme, das Schreibbarrieren einschaltete und aggressiv nutzte, waren Bereitstellungen anfällig für Laufwerke und Controller, die ihre Caches nicht leerten, wenn sie dazu aufgefordert wurden, ein Problem, das Sie bei moderner Hardware nicht mehr so häufig finden, wenn Sie konfigurieren richtig (außer bei SSDs, aber das ist eine andere Geschichte).
Wieso sich die Mühe machen? Nun, Leistung ist ein wichtiger Grund. Als ich kürzlich mit der kostenlosen Single Node Edition-Software von Greenplum gearbeitet habe, habe ich wieder mit XFS gearbeitet. Greenplum sagte mir rundheraus, dass sie nichts anderes als XFS für Hochleistungsinstallationen empfehlen, und angesichts der zugrunde liegenden Ähnlichkeiten mit PostgreSQL der Community hielt ich es für wert, zu untersuchen, warum das etwas mehr war.
Das Timing dafür erwies sich als perfekt. Eine der anderen Einschränkungen von ext3 ist, dass es auf gängiger Hardware nur 16 TB Speicher unterstützt. Da man heute so viel Speicherplatz in einem mittelgroßen Disk-Rack unterbringen kann, reicht das für High-End-Systeme heutzutage eindeutig nicht mehr aus, geschweige denn in ein paar Jahren. RedHat hat dies erkannt und seine Unterstützung für XFS in seiner Linux-Distribution ernsthaft wiederbelebt. RHEL 5.4, das vor einigen Monaten veröffentlicht wurde, hat es für einige Kunden wieder als optionales Modul hinzugefügt. Sie konnten immer noch nicht auf XFS installieren, und selbst die CentOS-Version unterstützte keine 32-Bit-Installationen, aber es machte eindeutig wieder Schritte in Richtung Mainstream.
Gestern wurde die erste öffentliche Betaversion von RHEL6 veröffentlicht, und XFS ist wieder voll im Hauptfeature-Set. Es sitzt neben ext4 auf der Liste der unterstützten Dateisysteme und weist auf seine Eignung insbesondere für große Installationen hin. Daher kann ich den Leuten jetzt sagen, dass sie XFS-Unterstützung in RHEL/CentOS 5.4 in etwas grober Form zur Verfügung haben, mit der Erwartung, dass es sich um ein erstklassiges unterstütztes Dateisystem handelt, wenn Systeme in Zukunft auf RHEL6 und seine Derivate aktualisiert werden, und ich habe einige Hoffnung darauf wird zuverlässig sein.
Mit der Enterprise-Linux-Unterstützung und dementsprechend der wahrgenommenen Stabilitätsseite des XFS-Codes endlich wieder unter Kontrolle, wie sieht es mit der Leistung aus? Nun, es stellt sich heraus, dass Greenplum Recht hatte, dass XFS die Mühe wert ist, es zum Laufen zu bringen. Ich nahm meinen Testserver und formatierte eines seiner mäßig schnellen Laufwerke mit drei verschiedenen Dateisystem-/Mount-Kombinationen neu:ext3 bestellt, ext3-Journal und xfs. Nach drei bonnie++ 1.96-Durchläufen mit jedem Dateisystem brachen die Ergebnisse, die ich sah, wie folgt zusammen:
- ext3 bestellt:39–58 MB/s Schreiben, 44–72 MB/s Lesen
- ext3-Journal:25–30 MB/s schreiben, 49–67 MB/s lesen
- xfs:68–72 MB/s beim Schreiben, 72–77 MB/s beim Lesen
Während sich die besten ext3-Leseergebnisse einem ähnlichen Niveau näherten wie xfs, schnitt es im Durchschnitt viel besser ab. Und die Schreibergebnisse waren in allen Fällen mindestens 25 % besser. Mir gefiel auch der straffere, vorhersehbarere Durchsatz; Inkonsistente Leistung ist etwas, mit dem ich auf ext3 oft zu kämpfen habe.
Normalerweise bin ich kein Early Adopter neuer Linux-Releases, aber die RHEL6-Beta mit vollständiger XFS-Unterstützung hat die völlig enttäuschende neue Ubuntu-Release ganz oben auf meiner Liste der als nächstes zu installierenden Betriebssysteme ersetzt. Es kommt nicht oft vor, dass die Dateisystemtechnologie eine zweite Chance bekommt, zu beeindrucken, aber XFS scheint vorerst einen unerwarteten Übergang zurück zu vollständiger Relevanz vollzogen zu haben. Ich bin mir nicht sicher, wie lange das der Fall sein wird, da sowohl ext4 bereits verfügbar ist als auch btrfs der Produktionsqualität näher kommt, indem es kürzlich ein stabiles Festplattenformat erreicht hat. Es wird interessant sein zu sehen, wie sich diese neu belebten Dateisystemoptionen auf Linux auswirken.