Strom sparender Computereinsatz hilft nicht zuletzt auch Kosten zu senken. ADMIN 02/2011 geht der Frage nach, was Administratoren tun können, damit ihre ... (mehr)

LVM

Wie erwähnt kann XFS selbst die optimalen Parameter wählen, wenn es sich um ein Software-RAID ohne LVM handelt. Bei einem Hardware-RAID oder der Verwendung von LVM muss der Administrator die besten Werte selbst herausfinden und beim Anlegen des Dateisystems angeben.

Wir haben zum Test ein manuell ausgerichtetes XFS und ein XFS mit Standard-Parametern angelegt, um zu untersuchen, welche Auswirkungen das in der Praxis hat. Viele Admins verwenden LVM über einem RAID, um in den Genuss von mehr Flexibilität und einfacherer Verwaltung zu kommen. Deshalb haben wir die Ext3-Konfigurationen zusammen mit LVM getestet, um zu sehen, wie viel Performance die LVM-Schicht kostet.

Abbildung 5 zeigt die Ergebnisse für Ext3 und XFS auf demselben RAID mit und ohne LVM. Bei der mit "raw" benannten Konfiguration wurde das Dateisystem direkt auf dem RAID angelegt. Bei der Konfiguration mit dem Namen "lvm" wurde ein physisches LVM-Volume auf dem RAID angelegt und darin noch einmal ein logisches LVM-Volume, auf dem sich schließlich das Dateisystem befindet.

Abbildung 5: Bonnie-Ergebnisse für Lesen und Schreiben, mit und ohne LVM.

Man sieht, dass sich der Lese-Performance-Gewinn bei der Ausrichtung von Ext3 in Luft aufgelöst hat und die Lese-Performance über alle Dateisysteme hinweg identisch ist. Das Stripe auf dem XFS-Dateisystem auszurichten, hat die Schreib-Performance sogar noch verschlechtert. LVM scheint die Block-Lese-Geschwindigkeit zu begrenzen, sodass alle Versuche durch das Ausrichten der Blocks keinen Vorteil bringen.

Interessanterweise hat LVM bei XFS zu einer Steigerung der Schreibleistung geführt. XFS versucht das Schreiben solange wie möglich zu verzögern (delayed write). Vielleicht ist das der Grund, warum XFS beim Schreiben mit LVM schneller ist. Wenn LVM einen eigene Cache pflegt, können Daten möglicherweise effizienter geschrieben werden, wenn sie in großen Blöcken vom Dateisystem kommen. Auf der anderen Seite bricht die Lesegeschwindigkeit mit LVM dramatisch ein.

In Abbildung 6 sind die Ergebnisse des Bonnie-Rewrite-Benchmarks zu sehen. Das Diagramm zeigt, dass die Leistungssteigerung durch das Ausrichten des Ext3-Systems zum Teil erhalten blieben. Das Ext3-Aligned ist auch mit LVM immerhin noch fast 1 MByte/s schneller als das Standard-Ext3. Der Unterschied zwischen den beiden ist mit LVM jedoch kleiner als ohne.

Abbildung 6: Bonnie-Ergebnisse für Rewrite mit und ohne LVM. Das Dateisystem direkt auf dem RAID ist der LVM-Version wieder überlegen.

Auch wenn ein Unterschied von 1 MByte/s wenig erscheinen mag, macht er zwischen den Extremen Ext3 auf LVM und Ext3-Aligned direkt auf dem RAID dennoch 15 Prozent aus! Diese Leistungssteigerung kommt auf der gleichen Hardware ohne zusätzliche Kosten zustande.

Weil es schwierig ist, zwei dreidimensionale Diagramme nur per Augenschein zu vergleichen, haben wir im Weiteren den Unterschied zwischen den ausgerichteten und den Standard-Dateisystemen visualisiert. In Abbildung 7 ist die mit Iozone gemessene zufällige Lese-Performance von Ext3-Aligned und Ext3 zu sehen. Es ergibt sich kein komplett eindeutiges Bild, aber in einzelnen Fällen ist Ext3-Aligned schneller. Abbildung 8 visualisiert den Unterschied in der zufälligen Schreib-Performance von Ext3 auf LVM in der Standard- und der ausgerichteten Variante. Die Senken und Erhebungen befinden sich an den gleichen Stellen, sind aber nicht ganz so  ausgeprägt wie bei der Lese-Performance. Insgesamt zeigt das Ext3-Aligned weniger Leistungseinbrüche als beim Lesen.

Abbildung 8: Unterschiede beim Iozone-Benchmark für zufälliges Schreiben mit Ext3.
Abbildung 7: Zufälliges Lesen von Ext3 mit und ohne Ausrichtung auf LVM.

Schließlich ist in Abbildung 9 noch der Vergleich von XFS auf LVM mit und ohne Alignment beim zufälligen Lesen zu sehen. Verglichen mit Ext3 ist der Graph relativ flach. Zufällige Leseoperationen kleiner Dateien sind auf einem ausgerichteten XFS viel schneller, wie die Gipfel auf der linken Seite des Diagramms zeigen. Bei kleineren Schreiboperationen auf 4 MByte große Dateien ist das ausgerichtete Dateisystem etwas langsamer als eines mit Standard-Optionen. Bei größeren Schreiboperationen auf Dateien zwischen 16 und 256 MByte liegt das ausgerichtete XFS wieder vorne.

Abbildung 9: Zufälliges Lesen vom XFS-Dateisystem mit und ohne Ausrichtung auf LVM.

Fazit

Wie dieser Artikel zeigt, lassen sich zwischen 10 und 15 Prozent an Performance gewinnen, wenn man beim Anlegen eines Ext3-Dateisystems auf die Ausrichtung an RAID-Chunk- und -Stripe-Größe achtet. Auch wenn die Unterschiede bei XFS nicht so groß sind, kann die Ausrichtung beim Anlegen und Löschen großer Dateien einen Unterschied machen. Generell lassen sich folgende Faustregeln angeben:

  • Wer Ext3 oder Ext4 verwendet, sollte mit »-E stripe-width=x,stride=y« immer dem Filesystem die RAID-Konfiguration mitteilen.
  • Wenn man ein XFS-Dateisystem direkt auf einem RAID anlegt, sollte das System selbst die richtigen Parameter verwenden.
  • Wer XFS in einer LVM-Partition auf einem RAID verwendet, sollte mit »-d sunit=x,swidth=y« an »mkfs.xfs« die passenden Werte übergeben.
  • Bei anderen Dateien sollten Sie überprüfen, ob »mkfs« die richtigen Werte für das konfigurierte RAID ermitteln konnte.

Der mit diesen Tipps erzielte Leistungsgewinn wird je nach Konfiguration anders ausfallen, aber unabhängig von den  konkreten Zahlen, ist es eine gute Strategie, das Dateisystem nach den RAID-Parametern auszurichten, vor allem, wenn man Ext3 oder Ext4 verwendet. (ofr)

Tiefer graben

Seit Version 2.6.28 unterstützt der Linux-Kernel das Ext4-Dateisystem, mittlerweile hat es auch in den meisten Distributionen Einzug gehalten. Gegenüber seinem Vorgänger Ext3 bringt es vor allem bessere Performance und den Support größerer Partitionen.

Ein Nachteil davon, die RAID-Stripe-Größe beim Anlegen eines Dateisystems zu berücksichtigen, ist dass nachträgliche Änderungen am RAID zu Unstimmigkeiten führen.

Wenn Sie auf einmal vier statt drei Daten-Disks in Ihrem RAID-5 haben, ist die Stripe-Ausrichtung des Dateisystems nicht mehr korrekt.

Ext4 besitzt aber eine Option, die es erlaubt, die StripeGröße beim Mounten anzugeben.

Wenn Sie also dem RAID eine neue Platte hinzufügen oder ein LVM-Volume erweitern, teilen Sie das dem Ext4-System einfach mit, und es kann seine Operationen in Zukunft darauf abstimmen.

Infos

  1. OSDL Linux RAID: http://linux-raid.osdl.org/index.php/Linux_Raid
  2. David A. Patterson, Garth Gibson, and Randy H. Katz, A Case For Redundant Arrays of Inexpensive Disks (RAID): http://www-2.cs.cmu.edu/~garth/RAIDpaper/Patterson88.pdf

Der Autor

Ben Martin arbeitet seit mehr als zehn Jahren an Dateisystemen. Er bietet Consulting-Leistungen zu Libferris, Dateisystemen und Qt/C++-Entwicklung an. Er schreibt genauso gerne über Open Source, wie er Code beisteuert.

comments powered by Disqus
Mehr zum Thema

Die Grundlagen der RAID-Technologie

Wie funktioniert eigentlich ein RAID? Welches Level eignet sich für welchen Einsatzfall, und was kann man tun, um gerade bei großen RAID-Sets das Risiko eines Datenverlusts zu minimieren? Dieser Grundlagenartikel gibt die Antworten.

Artikel der Woche

Eigene Registry für Docker-Images

Wer selber Docker-Images herstellt, braucht auch eine eigene Registry. Diese gibt es ebenfalls als Docker-Image, aber nur mit eingeschränkter Funktionalität. Mit einem Auth-Server wird daraus ein brauchbares Repository für Images. (mehr)
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Google+

Ausgabe /2019