Ein Btrfs-Praxis-Check und -Workshop

© tobi, 123RF

Alles in Butter

Seit Ende Februar unterstützt Suse Btrfs offiziell im Service Pack 2 seines Enterprise Server 11. Zwei Wochen später folgte Oracle mit Btrfs-Support im eigenen Linux. Es scheint an der Zeit, sich mit den Möglichkeiten des jungen Filesystems einmal gründlich auseinanderzusetzen.
KVM etabliert sich als Standardlösung zur Virtualisierung unter Linux. Der ADMIN-Schwerpunkt hilft beim Bau virtueller Linux-Maschinen, stellt das ... (mehr)

Btrfs ist noch immer als "experimentell" im Linux-Kernel eingestuft und noch keine der Endkunden-Distributionen verwendet es als bevorzugtes Dateisystem. Dabei lockt das designierte Standard-Dateisystem für Linux mit Enterprise-Funktionen, die man in dieser Art unter Linux bis dato nicht aus einer Hand bekommen konnte. Lange Zeit blieb nur ein neiderfüllter Blick in Richtung ZFS, das allerdings mit seiner Sun Common Development and Distribution License (CDDL) so ganz und gar nicht kompatibel mit der GNU General Public License (GPL) des Linux-Kernels ist.

Vorschau

Dieser Artikel beginnt mit einer kurzen Beschreibung der wichtigsten Eigenschaften und Funktionen von Btrfs, gefolgt von einer Installationsanleitung am Beispiel einer virtuellen Instanz unter Ubuntu 12.04. Diesem Ubuntu-System stehen auch mehrere virtuelle Festplatten zur Verfügung, auf denen dann erste Schritte mit Btrfs und dem wichtigsten Administrationswerkzeug demonstriert werden.

Im Anschluss wird das Root-Dateisystem des Testsystems von Ext4 nach Btrfs konvertiert und in ein RAID 1 umgewandelt. Damit kann dann die praktische Anwendung von Filesystem-Snapshots im Zuge von Software-Updates mit anschließendem Rollback der Änderungen vorgeführt werden.

Enterprise-Features

Btrfs ist ein Copy-on-Write-Filesystem (CoW). Während ein Filesystem wie Ext3 Blockänderungen in einem Journal protokolliert, schreibt Btrfs Änderungen an einem Block immer an eine neue Stelle auf dem Datenträger und referenziert bei Erfolg in den Metadaten auf den neuen Datenblock. Erst danach werden die alten Daten zum Überschreiben freigegeben, sofern auf sie nicht mehr anderweitig verwiesen wird, zum Beispiel durch einen Snapshot.

Btrfs hat sich auf die Fahnen geschrieben, nicht nur fortgeschrittene Zusatzfunktionen zu bieten, sondern in erster Linie fehlertolerant, leicht administrierbar und im Falle des Falles auch schnell reparierbar zu sein. Es verwendet für die Verwaltung von Metadaten und Nutzdaten ausschließlich CoW-optimierte binäre Bäume (B-Trees), mit Ausnahme des Superblocks. Btrfs speichert auch Prüfsummen (CRC32C-Hashes) für Daten und Metadaten, um stille Datenkorruption zu erkennen. Darüber hinaus bietet es Funktionen, die auf hohe Skalierbarkeit in modernen Datenzentren ausgerichtet sind. Vor Btrfs waren dafür zusätzliche Werkzeuge zur Verwaltung von Speicherplatz (Logical Volume Management) oder der Erhöhung der Ausfallsicherheit (RAID) nötig.

Die wichtigsten Eigenschaften von Btrfs (Stand: Kernel Version 3.4) [1] sind:

  • Prüfsummen von Metadaten und Daten
  • Subvolumes (Dateisystem im Dateisystem)
  • Beschreibbare Snapshots
  • Snapshots von Snapshots
  • Filesystem-Klone (beschreibbarer Snapshot eines Read-Only-Filesystems)
  • Datei-Klone
  • Transparente Komprimierung
  • Integriertes Volume-Management (kann mehrere Festplatten verwalten)
  • Unterstützung der RAID-Level 0, 1 und 10
  • Umstellung des RAID-Levels im laufenden Betrieb
  • Hintergrundprozess zum proaktiven Aufspüren und Beheben von Fehlern ("scrubbing")
  • Filesystem-Vergrößerung und -Verkleinerung im laufenden Betrieb
  • Defragmentierung im laufenden Betrieb
  • Werkzeug zur Filesystem-Reparatur (nicht im laufenden Betrieb verwendbar)
  • Verlustlose Konvertierung eines Ext3- oder Ext4-Dateisystemes (und wieder retour)

Quasi selbstverständlich sind eine dynamische Anzahl von Inodes, effizientes Speichern von kleinen Dateien, die Verwendung von Extends, Access Control Lists (ACLs) und erweiterte Attribute. Ein Must-have sind auch die Unterstützung des TRIM-Kommandos und spezielle Optimierungen für SSD-Speicher. Die maximale Dateisystem- und Datei-Größe ist mit 264 Bytes oder 16 Exbi-Bytes (EiB) großzügig bemessen, und mit maximal 264 Files pro Filesystem sollte für die nächsten paar Jahre ausreichend vorgesorgt sein.

Ähnliche Artikel

comments powered by Disqus
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