Auch wenn auf der Packung "Cloud Computing" steht, steckt dahinter eigentlich Virtualisierungstechnologie mit cleveren Management-Funktionen. ADMIN 05/2010 ... (mehr)

Qual der Wahl

Nach dem ganzen Wirrwarr an Features fragen sich wohl so mancher, welches Dateisystem er denn nun verwenden soll. Die einfache Antwort lautet: Es hängt vom Einsatzzweck ab. Die beste Lösung ist sogar oft, auf einem System verschiedene Dateisysteme für unterschiedliche Anwendungen einzusetzen.

Die Ext-Familie speichert I-Nodes in Tabellen, XFS verwendet B-Trees, und Btrfs macht generell von COW-B-Trees Gebrauch. Ext3, Ext4 und XFS führen ein Journal, um Datensicherheit zu gewährleisten. Die Ext-Dateisysteme führen beim Booten gelegentlich noch einen sehr kurzen Fs-Check durch. Im Gegensatz zu Ext3 verwenden Ext4, XFS und Btrfs die oben beschriebenen Barriers, um Datenverluste im Crash-Fall zu minimieren.

Ein allgemeiner Tipp, um für gute Performance zu sorgen, lautet, ein Dateisystem nicht zu voll werden zu lassen. Ab etwa 90 bis 95 Prozent wird der Aufwand recht groß, noch freien Platz zu finden, und das Dateisystem muss größere Dateien und vielleicht sogar Metadaten schon über die Platte verteilen. Außerdem funktioniert die Lock-Vermeidungs-Strategie von Dateisystemem wie XFS durch so genannte Allocation Groups nicht mehr so gut. Sie teilen ein Dateisystem gewissermaßen in mehrere kleine Dateisysteme auf, die unabhängig voneinander bearbeitet werden können, ohne dass Locks konkurrierende Zugriffe regeln müssen. Wenn die Extents einzelner Dateien aber nun über mehrere Allocation Groups verteilt sind, funktioniert das nicht mehr.

Viele Dateisysteme lassen den Anwender beim Anlegen entscheiden, wie groß ein I-Node sein soll. Wer zum Beispiel Extended Attributes verwenden möchte und bessere Performance für wichtiger hält als Speicherplatzverbrauch, sollte seine I-Nodes etwas größer machen, zum Beispiel 512 Bytes. Tatsächlich kann es sogar sein, dass die doppelte I-Node-Größe dazu führt, dass ein Dateisystem insgesamt weniger Platz für Metadaten verbraucht und schneller ist, weil die Extent-Liste und die Attribute in den I-Node passen und so keinen extra Block zur Speicherung erfordern. Im Fall von XFS passt eine Extent-Liste mit 19 Einträgen in einen Standard-I-Node. Wenn nun noch Extended Attributes dazu kommen, geht der Speicherplatz von der Extent-Liste ab.

Überblick

Angesichts der oben beschrieben COW-Technik ist die Begeisterung über Btrfs leicht nachzuvollziehen. Sie ermöglicht die Speicherung in Extents und extrem schnelle Snapshots und Clones [4]. Leider ist es immer noch sehr neu und deshalb noch nicht völlig frei von Bugs. Am anderen Ende des Spektrums ist der hohe Reifegrad der Ext-Dateisysteme ihr großer Vorteil. Die Tatsache, dass mittlerweile hundertausende von Anwendern ihre Home-Verzeichnisse auf Ext3 speichern, spricht jedenfalls dafür, dass man damit nicht so leicht Daten verliert.

Auch XFS ist bereits seit Version 2.4 Teil des Linux-Kernels und bietet mit Extents und Online-Defragmentierung performante Featurer für große Dateien. Ein bekannter Nachteil ist es, dass es nicht so gut damit umgehen kann, wenn häufig Dateien neu angelegt und gelöscht werden. Ein in Kernel 2.6.35 eingeführtes Features namens "Delayed Logging", das die Führung des Journals etwas aufschiebt, soll hier allerdings helfen.

Wer große Dateien speichern und im Lauf der Zeit defragmentieren will, ist mit XFS gut bedient. Ext3 ist das bewährte Arbeitspferd der Ext-Dateisysteme, demgegenüber Ext4 noch Extents mitbringt und in Kürze auch Online-Defragmentierung. Für Snapshots und Clones ist Btrfs das richtige Dateisystem – zumindest dann, wenn die Entwickler selbst es für geeignet und sicher halten. Defragmentierung unterstützt Btrfs durch das Tool »btrfsctl -d« . Wer gute Performance mit Zuverlässigkeit paaren will, sollte sein Journal auf einer hochwertigen SSD speichern und Barriers abschalten.

Infos

  1. Benchmarks für Barriers: http://ldn.linuxfoundation.org/article/filesystems-data-preservation-fsync-and-benchmarks-pt-3
  2. XFS: The big storage file system for Linux, Dave Chinner, Ottawa Linux Symposium 2006: http://oss.sgi.com/projects/xfs/papers/hellwig.pdf
  3. Diskussion zu Ext4-Defragmentierung: https://bugs.launchpad.net/ubuntu/+bug/321528
  4. Marcel Hilzinger, Oliver Frommel, Btrfs im Detail: http://www.admin-magazin.de/content/das-neue-linux-dateisystem-btrfs-im-detail

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 gerne Code beisteuert.

Ähnliche Artikel

comments powered by Disqus
Mehr zum Thema

Linux-Dateisysteme administrieren (1)

Linux ist ein Betriebssystem für Liebhaber von Vielfalt. Dateisysteme sind dabei keine Ausnahme: Die Palette erstreckt sich von blockbasierten über Netzwerkdateisysteme bis hin zu temporären Filesystemen im RAM oder Pseudodateisystemen. Wie ein Filesystem aufgebaut ist und wie Sie es administrieren, erfahren Sie in diesem Workshop.

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

Ausgabe /2023