Btrfs – Dateisystem der Zukunft?

Aus LinuxUser 05/2016

Btrfs – Dateisystem der Zukunft?

© Ed Phillips, 123RF

Btr aufs Brot

Dateisysteme sind normalerweise wie ein Regal mit vielen Kistchen und Kästchen, die dem Anwender helfen, den Überblick über die Daten zu bewahren. Btrfs bietet hier deutlich mehr – und schickt sich an, künftig Ext4 abzulösen.

Dateisysteme stellen als Ordnungs- und Zugriffssystem für Datenträger auf Betriebssystemebene eine wichtige Abstraktionsschicht zwischen Rechner und Mensch dar. Sie erleichtern es, Daten in Verzeichnissen zu ordnen und sie über eine eindeutige Adresse ausfindig zu machen. Als Schicht unterhalb des Betriebssystems sorgt das Dateisystem zudem dafür, dass abstrakte Angaben in physische Adressen wie Spuren und Sektoren umgesetzt werden. Einige Dateisysteme gehen über diese Grundfunktionen hinaus. Unter Linux zählt dazu Btrfs, um das es in diesem Artikel geht.

Btrfs [1] – oft als ButterFS ausgesprochen, manchmal als BetterFS – wird gerne als “next generation filesystem” bezeichnet und zählt zu den modernen Copy-on-Write-Dateisystemen (CoW [2]). Für die Entwicklung zeichnet seit 2007 federführend Chris Mason von der Oracle Corporation verantwortlich. Damit schloss sich gewissermaßen ein Kreis, denn Btrfs ging im Endeffekt aus dem bei Sun 2006 mit Solaris 10 für die Linux-Plattform eingeführten transaktionalen Dateisystems ZFS [3] hervor. Oracle hatte sich ZFS 2010 mit der Übernahme von Sun Microsystems einverleibt. Btrfs steht als freie Software unter der GPL, der Kernel unterstützt das Dateisystem bereits seit der Anfang 2009 veröffentlichten Version 2.6.29.

Produktiver Einsatz

Im April 2013 erklärten die Entwickler Btrfs als produktiv einsetzbar. Chris Mason – er kam von Suse, wo er an ReiserFS mitentwickelte, zu Oracle – arbeitet seit einigen Jahren bei Facebook, wo im Backend Btrfs breitflächig Anwendung findet. Seit Kurzem beschränkt sich das neue Betriebssystem nicht mehr nur auf Linux: Über das Projekt WinBtrfs [4] stehen (derzeit noch experimentelle) Treiber auch für Windows zur Verfügung.

Unter Linux setzen derzeit Oracle – seit der Veröffentlichung von Unbreakable Linux 2 vor vier Jahren – sowie Suse bei SLES 12 (Suse Linux Enterprise Server) und OpenSuse 13.2 sowie dessen Nachfolger “Leap” auf Btrfs als Standard für die Root-Partition (Abbildung 1). Bei den meisten anderen Distributionen bietet die Installationsroutine Btrfs zumindest als Option für das Formatieren der Datenträger an. Fedora möchte Btrfs seit einiger Zeit als Standard definieren, schafft den Wechsel allerdings nach derzeitigem Stand der Dinge frühestens mit Fedora 25.

Abbildung 1: OpenSuse nutzt Btrfs als Voreinstellung bei der Installation und erstellt auf Wunsch direkt nach dem Aufsetzen des Systems die ersten Snapshots.

Abbildung 1: OpenSuse nutzt Btrfs als Voreinstellung bei der Installation und erstellt auf Wunsch direkt nach dem Aufsetzen des Systems die ersten Snapshots.

Bäume, Knoten und Blätter

Technisch betrachtet, eignet sich Btrfs für die Zukunft nicht nur am Desktop, sondern auch und vor allem in Rechenzentren. Das Dateisystem unterstützt Volumes von bis zu 16 Exbibyte Größe, was gut 18,4 Millionen TByte oder knapp 18,5 Trillionen Bytes entspricht. Das Dateisystem kann aus nur einer Datei dieser Größe bestehen, andererseits aber auch gut 18 Trillionen Dateien fassen. Dateinamen dürfen aus bis zu 255 Bytes bestehen. Im Vergleich darf das Dateisystem bei Ext4 lediglich 1 EiB umfassen. Während Ext4 die Verzeichnisse tabellarisch als H-Baum organisiert, bedient sich Btrfs eines B+-Baums [5]. B+-Bäume speichern nur die Metadaten in den Knoten, die eigentlichen Daten stehen in den Blättern.

Indem Btrfs die Baumhöhe des streng tabellarischen H-Baums vermeidet und sich dieser eher in der Breite ausdehnt, beschleunigt das System die Zugriffszeiten auf die einzelnen Dateielemente. Durch die Verwendung eines B-Baums erklärt sich zudem die Herkunft des Namens Btrfs, das auch als B-Tree FS zu lesen ist. Zu den weiteren Besonderheiten in der Struktur des Dateisystems zählen Pseudo-Unterverzeichnisse. Diese sogenannten Subvolumes verhalten sich wie separate Laufwerke, speichern aber nur Änderungen gegenüber dem Hauptvolume und belegen somit nicht viel Platz. Weiterhin gehen bei Btrfs die Inodes niemals aus, während dies bei den Ext-Dateisystemen trotz freiem Platzes in der Partition geschehen kann.

Alleinstellungsmerkmale

Im Unterschied zum derzeit unter Linux inoffiziell als Standard geltenden Dateisystem Ext4 bietet Btrfs einige Funktionen, die allgemein nicht zur Funktionalität eines Dateisystems gehören, sich jedoch gerade in professionellen Umgebungen wie Rechenzentren großer Beliebtheit erfreuen. Dazu zählen etwa die integrierte Funktionalität des Logical Volume Manager sowie die eingebaute Unterstützung für Plattenverbünde der RAID-Level 0, 1, 5, 6 und 10. Diese Integration bietet gegenüber herkömmlichem Hard- oder Software-RAIDs den Vorteil, das Btrfs zwischen belegten und freien Datenblöcken unterscheiden kann und somit eine Wiederherstellung im Schadensfall viel Zeit spart. Zudem beherrscht Btrfs das Umstellen von RAID-Leveln im laufenden Betrieb.

Des Weiteren verfügt Btrfs über eine optionale transparente Datenkompression, Deduplikation [6], Prüfsummen für Daten und Metadaten, Dateisystemüberprüfung und Defragmentierung zur Laufzeit sowie Optimierungen für Solid State Drives (SSDs). Für Umsteiger von Ext3/4 bietet Btrfs mit btrfs-convert eine Möglichkeit, bestehende Partitionen reversibel nach Btrfs zu konvertieren. Die Rückkehr zu Ext4 bleibt möglich, solange der bei der Konvertierung erstellte Snapshot der Metadaten des Ext4-Systems existiert. Das von Anfang an für Btrfs geplante Merkmal der Dateisystemverschlüsselung fehlt bislang hingegen.

Snapshots

Zu den besonders für Desktop-Anwender wichtigen Kriterien zugunsten von Btrfs zählt die Funktion, aus dem laufenden System heraus Schnappschüsse (Snapshots) des aktuellen Datenstands zu erstellen. Es handelt sich hierbei um zum Zeitpunkt der Erstellung eingefrorene Abbilder eines Subvolumes, die keinen zusätzlichen Speicherplatz benötigen (Abbildung 2). Besonders im Zusammenhang mit dem bei Opensuse entwickelten Tool Snapper [7] stellen Snapshots eine mit relativ wenig Aufwand verbundene Möglichkeit dar, ein System bei Problemen auf den vorherigen Stand zurückzurollen (Abbildung 3).

Abbildung 2: Btrfs-Subvolumen nach der Installation.

Abbildung 2: Btrfs-Subvolumen nach der Installation.

Abbildung 3: Mithilfe des Tools Snapper erstellen Sie unter OpenSuse über eine grafische Oberfläche Snapshots einer Partition.

Abbildung 3: Mithilfe des Tools Snapper erstellen Sie unter OpenSuse über eine grafische Oberfläche Snapshots einer Partition.

Ist Snapper konfiguriert, vor jeder Systemaktualisierung einen Schnappschuss zu erstellen, verlieren diese Upgrades für viele Anwender den Schrecken. Bei (Open)Suse geht die Handhabung der Snapshots grafisch über ein YaST-Modul für Snapper vonstatten, für andere Betriebssysteme existieren externe GUIs [8]. In Sachen Snapshots zeigt sich Btrfs deutlich flexibler als der Logical Volume Manager LVM: Der Anwender muss weder vorher Speicherplatz für die Snapshots freihalten, damit das Dateisystem nicht etwa überläuft, noch bremsen selbst eine große Anzahl vorgehaltener Snapshots das System aus.

Interna

Unter der Haube eifert Btrfs seinem Vorbild ZFS nach und setzt auf eine Technik namens Copy-on-Write, kurz CoW. Dahinter steckt die Idee, unnötige Kopien und Kopiervorgänge zu vermeiden. Einen per CoW duplizierten Block schreibt das Dateisystem erst dann tatsächlich auf die Festplatte, wenn sich einer der beteiligten Datenblöcke verändert. Btrfs passt dann lediglich die Metadaten des kopierten Blocks entsprechend an.

Damit ermöglicht CoW die Erstellung von Snapshots, denn die originalen Blöcke bleiben erhalten und bilden nun den Snapshot. Dabei speichert Btrfs mit dem ersten Snapshot auch die Metadaten. Bei weiteren Schnappschüssen schreibt Btrfs dann nur noch inkrementell die Änderungen an Datenblöcken gegenüber der vorhergehenden Sicherung.

Ein weiterer Vorteil der transaktionsbasierten Methode mittels CoW liegt darin, dass das Dateisystem Stets konsistent bleibt, da Änderungen an Daten nicht zu einem Überschreiben der bestehenden Daten führen, sondern zu einer Neuerstellung des Blocks. Das schont bei konventionellen Festplatten mit beweglichen Teilen auch die Mechanik, da die Schreibköpfe nicht nach den alten, zu überschreibenden Daten suchen müssen, sondern Änderungen einfach auf einem freien Teil der Festplatte ablegen. Daraus resultieren auch eine höhere Schreibgeschwindigkeit und ein gegenüber Journaling-basierten Dateisystemen wie ReiserFS und Ext3/4 reduzierter Aufwand.

Btr by the fishes

Die Meinungen darüber, ob ein Dateisystem die enorme Funktionalität von Btrfs überhaupt braucht, gehen ebenso weit auseinander wie die Ansichten über die derzeitige produktive Eignung von Btrfs.

Allerdings eignet sich Linux als Betriebssystem für viele Anwendungsszenarien mit unterschiedlichsten Anforderungen. Daher unterstützt der Kernel zurecht eine Vielzahl von verschiedenen Dateisystemen. Gerade eben erst fließt mit OrangeFS in die ersten Vorversionen von Kernel 4.6 ein weiteres neues Dateisystem für Big Data und High Performance Computing (HPC) ein, dessen Ursprünge in den 90er-Jahren des vergangenen Jahrhunderts liegen. Somit sollte auf jeden Fall auch Btrfs einen Platz im Kernel finden.

Ob Btrfs in Zukunft tatsächlich Ext4 beerbt, steht noch in den Sternen. Viele Entwickler sehen es für normale Desktop-Rechner als zu überladen an. Da mittlerweile die für solche Systeme sehr nützliche Funktion der Snapshots auch unter Ext4 zur Verfügung steht, erscheint Btrfs momentan eher als Alternative für besondere Anwendungsfälle.

Allerdings betrachtet auch Theodore T’so, Chefentwickler der Ext-Dateisystemfamilie, Btrfs langfristig als Nachfolger des ziemlich zu Ende entwickelten Ext4 an. Neben enthusiastischen Desktop-Anwendern sieht er als Zielgruppe vor allem Rechenzentren, Cloud Computing und Storage-Anbieter großen Stils, wie etwa Facebook, den derzeitigen Arbeitgeber des Btrfs-Häuptlings Mason.

Fazit

Gegenüber den üblichen Dateisystemen verlangt Btrfs dem Anwender einiges an zusätzlicher Einarbeitungszeit ab, zudem ist dabei Scheu vor der Arbeit im Terminals gänzlich fehl am Platz. Die Integration in grafische Dateimanager gilt es noch zu verbessern, da die dort angezeigten Daten oft irreführend oder schlicht falsch ausfallen. Die unbestreitbaren Vorteile von Btrfs erkaufen Desktop-Anwender daher momentan noch relativ teuer. Als rühmliche Ausnahme glänzt hier OpenSuse, das Btrfs als Standard nutzt und dementsprechend guten Support für das System bietet (cla).

Glossar

Inodes

Linux-Dateisysteme verwenden als grundlegende Datenstruktur sogenannte Inodes. Diese enthalten die Metadaten sowie Verweise darauf, wo die Nutzdaten stehen. Im Superblock stehen wiederum die Größe, Anzahl und Lage der Inodes. Die durchnummerierten Inodes liegen an einem Stück auf dem Datenträger, wobei das Wurzelverzeichnis des Dateisystems eine feste Inode-Nummer besitzt. Unterordner entsprechen hier gewöhnlichen Dateien, enthalten jedoch als “Nutzdaten” eine Liste der darin liegenden Dateien samt Zuordnung der zugehörenden Inode-Nummern.

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDF
LinuxUser 05/2016 KAUFEN
EINZELNE AUSGABE
ABONNEMENTS
TABLET & SMARTPHONE APPS
E-Mail Benachrichtigung
Benachrichtige mich zu:

Hinweis: Dieser Artikel ist älter als ein Jahr, enthaltene Informationen sind möglicherweise veraltet.

0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben