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.

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 4 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
KAUFEN
LinuxUser 05/2016 KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS
Deutschland

Hinterlasse einen Kommentar

  E-Mail Benachrichtigung  
Benachrichtige mich zu: