Kernel-Log – Was 2.6.29 bringt (4): Dateisysteme, Storage – Btrfs, SquashFS, Ext4 ohne Journal und neue Storage-Treiber

Die Kernel-Entwickler haben mit Btrfs und SquashFS nicht nur zwei neue Dateisysteme aufgenommen, sondern auch Ext4, OCFS2 und XFS verbessert. Größere Änderungen gab es auch in den IDE-, Libata- und SCSI-Subsystemen sowie im Block-Layer.

In Pocket speichern vorlesen Druckansicht
Lesezeit: 18 Min.
Von
  • Thorsten Leemhuis
Inhaltsverzeichnis

Wenn man den von Linus Torvalds bei der Freigabe der siebten Vorabversion von 2.6.29 getätigten Aussagen glauben schenken darf, wird es noch etwa ein bis zwei Wochen dauern, bis der Linux-Kernel 2.6.29 erscheint. Das Kernel-Log will daher die Berichterstattung über die für 2.6.29 vorgesehenen Neuerungen an dieser Stelle mit einer Beschreibung der Neuerungen rund um Dateisysteme und Storage-Techniken fortsetzen.

Wie bereits während des Merge-Window von 2.6.29 kurz berichtet, haben die Kernel-Entwickler das experimentelle Dateisystem Btrfs aufgenommen. Fertig ist es aber bei weitem noch nicht – vielmehr wollen die Kernel-Hacker es im Rahmen des Linux-Kernels weiter entwickeln und reifen lassen, ähnlich wie es bei Ext4 der Fall war, das im Herbst 2006 für Linux 2.6.19 aufgenommen wurde und kürzlich mit Linux 2.6.28 seine Hauptentwicklungsphase beendete.

Btrfs – kurz für B-tree FS, im Englischen gemeinhin aber als Butter FS ausgesprochen – ist ein "Copy On Write"-Dateisystem, das der bei Oracle angestellte Kernel-Entwickler Chris Mason aus der Taufe gehoben hat. Nach der ersten Ankündigung von Btrfs auf der Linux-Kernel Mailing List (LKML) im Juli 2007 fand der früher bei Suse lange für ReiserFS zuständige Entwickler schnell Unterstützung durch zahlreiche andere Entwickler – in den Commit-Kommentaren finden sich die Autor-Auszeichnungen von bei HP, Intel, Novell/Suse und Red Hat beschäftigten Entwicklern.

Bereits im Herbst 2007 haben sich einige wichtige Linux-Dateisystem-Entwickler bei einem Treffen auf Btrfs als "Next Generation Filesystem for Linux" geeinigt, wie Ext[234]-Dateisystementwickler Theodore Ts'o (kurz Ted Tso oder Tytso) vor einigen Monaten in einer Mail verriet. Die Ext4-Entwicklung treiben er und anderen dennoch voran, da dies durch die erprobte Ext3-Basis und die weiter fortgeschrittene Entwicklung als Übergangslösung gebraucht würde, bis Btrfs so weit gereift sei, dass ihm auch Unternehmenskunden vertrauen.

Das Btrfs-Wiki liefert einen Überblick über die wichtigsten Eigenschaften des von Grund auf neuen und speziell für Linux entwickelten Dateisystems:

  • Extent-basierte Datenspeicherung (maximale Dateigröße: 2^64 Byte)
  • Im Hinblick auf den Speicherverbrauch effiziente Speicherung von kleinen Dateien und Verzeichniseinträgen
  • Dynamische Zuteilung von Inodes
  • Schreibbare Snapshots
  • Subvolumes
  • Checksummen für Daten und Metadaten
  • Kompression
  • eingebaute Funktionen zum Zusammenfassen mehrerer Datenträger zu einem Volume mit verschiedenen RAID-Algorithmen
  • Dateisystem-Check und Defragmentierung zur Laufzeit
  • Schnelle Dateisystem-Checks
  • Effiziente inkrementelle Backups und Dateisystem-Mirroring
  • zuschaltbare Optimierungen für SSDs

Die Development Timeline erläutert einige Dinge, die noch auf der ToDo-List stehen, während das Changelog einen guten Überblick darüber liefert, was die Entwickler alles schon erreicht haben. Aufbau und Funktionsweise des Dateisystem erläutert ein anderes Wiki-Dokument, häufige Fragen beantwortet die FAQ. Während sich das Format der auf dem Datenträger gespeicherten Datenstrukturen im Verlauf der Entwicklungsphase von Ext4 gelegentlich änderte und so beim Umstieg auf neuere Kernel ein Umformatieren nötig machte, planen die Btrfs-Entwickler den Anwendern diese Umstände von nun an zu ersparen – vollkommen auszuschließen sind weitere Änderungen am Ondisk-Format von Btrfs allerdings nicht.

Btrfs wurde mit seiner kompletten Entwicklungshistorie aufgenommen, was sich auf insgesamt über 900 kleinere oder größere Commits im Quellcodeverwaltungssystem von Linux addiert hat. Nach der Aufnahme von Btrfs Anfang des Jahres Anfang Januar erweiterten die Kernel-Hacker das Dateisystem indes noch um neue Funktionen wie Unterstützung für SELinux. Weitere Änderungen für 2.6.30 finden sich bereits in Vorbereitung – einige von ihnen sollen die Performance weiter verbessern.

Während einige Linux-Distributionen jetzt erwägen, Ext4-als Standard-Dateisystem einzusetzen, wird selbiges bei Btrfs wohl noch eine Zeit lang dauern. Die Fedora-Entwickler haben Installer und Kernel in ihren Entwicklerzweig aber bereits um Btrfs-Unterstützung erweitert.