Btrfs ist, wie ZFS, ein hybrides System aus Dateisystem und Volume Manager. Es bricht die starre 1:1-Zuordnung von Partition und Dateisystem auf.
Im Gegensatz zu ZFS, das strikte Regeln für VDEVs hat, setzt Btrfs auf maximale Flexibilität. Du kannst Laufwerke unterschiedlicher Größe in einen Pool werfen, RAID-Level im laufenden Betrieb ändern (Convert) und Kapazität dynamisch hinzufügen oder entfernen.
Das Ziel ist ein „Self-Healing“-System, das fest in den Linux-Kernel integriert ist (GPL-Lizenz), was ZFS aufgrund von Lizenzkonflikten verwehrt bleibt.
Kernmechaniken: Das „Warum“ hinter der Technik
Alles ist ein B-Baum
Der Name ist Programm. Fast jede Struktur in Btrfs ist ein B-Tree. Das sorgt für effiziente Lookups und Skalierbarkeit.
Der wichtigste Aspekt ist jedoch Copy-on-Write (CoW):
- Daten werden niemals überschrieben.
- Geänderte Blöcke werden an neue Positionen geschrieben.
- Erst wenn die Daten sicher liegen, wird der B-Tree-Pointer aktualisiert.
Architektonische Konsequenz:
Das Dateisystem ist bei Stromausfällen konsistent. Ein fsck dauert theoretisch nur Sekunden, da der Baum nur bis zur letzten validen Transaktion zurückverfolgt werden muss.
Subvolumes (Die „Verzeichnis-Partitionen“)
In ext4 oder XFS ist eine Partition eine starre Grenze. In Btrfs erstellst du Subvolumes.
Ein Subvolume verhält sich wie ein Verzeichnis, kann aber separat gemountet werden und hat eigene Snapshot-Richtlinien.
- Vorteil: Du installierst Linux.
/,/homeund/varsind Subvolumes. Sie teilen sich denselben freien Speicherplatz im Pool. Du musst nicht vorher raten, wie groß/varsein muss.
Snapshots & Rollback
Da Btrfs auf CoW basiert, kostet ein Snapshot keinen Platz (er friert nur den Zustand der B-Tree-Pointer ein).
Tools wie Snapper (Standard bei OpenSUSE) nutzen das:
- Vor jedem
yum updateoderapt upgradewird automatisch ein Snapshot erstellt. - Geht das Update schief, bootest du einfach in den Snapshot von „vor 5 Minuten“.
- Das Dateisystem wird auf den alten Stand zurückgerollt (Rollback).Das ist der Hauptgrund, warum Btrfs auf Workstations und Server-OS-Partitionen eingesetzt wird.
Storage Pooling & RAID (Licht und Schatten)
Hier unterscheidet sich Btrfs massiv von ZFS und traditionellem RAID.
Chunk-Based RAID
Btrfs spiegelt nicht ganze Festplatten, sondern Daten-Chunks (meist 1 GB groß).
- RAID 1 (Mirroring): Btrfs garantiert, dass von jedem Chunk zwei Kopien auf zwei unterschiedlichen Devices liegen.
- Implikation: Du kannst eine 10 TB Platte und eine 2 TB Platte in ein RAID 1 stecken. Du erhältst 2 TB gespiegelten Speicher. Der Rest der 10 TB Platte bleibt nutzbar (als Single oder für andere RAIDs). Diese Flexibilität bietet sonst kein Enterprise-FS.
„RAID 5/6 Warnung“ (Das Write-Hole)
Als Systemarchitekt muss ich hier eine klare Warnung aussprechen:
Nutze Btrfs RAID 5 oder RAID 6 niemals für produktive Daten (Stand heute).
Btrfs hat ein ungelöstes „Write Hole“-Problem bei Paritäts-RAID. Wenn der Strom während eines Schreibvorgangs ausfällt, passen Daten und Parität eventuell nicht mehr zusammen. Da Btrfs kein Journal für Parität nutzt (wie mdadm es könnte), führt dies bei einem Rebuild zu korrupten Daten.
- Lösung: Nutze für RAID 5/6 den darunterliegenden
mdadmoder Hardware-RAID und formatiere das resultierende Device einfach als „Single“ Btrfs. (So macht es z. B. Synology).
Features & Tuning
Transparente Kompression
Du kannst Verzeichnisse oder Subvolumes mit compress=zstd mounten.
- Kausalität: Moderne CPUs (ZSTD) komprimieren schneller, als die SSD schreiben kann. Du gewinnst also Speicherplatz und Schreib-Geschwindigkeit (Throughput), da weniger physische Daten auf den Flash-Speicher müssen.
Deduplizierung (Out-of-Band)
Anders als ZFS (In-Band / Realtime) setzt Btrfs meist auf Out-of-Band Deduplizierung (z. B. mit Tools wie duperemove oder bees).
- Das System scannt im Hintergrund nach doppelten Blöcken und führt sie zusammen.
- Vorteil: Es belastet den Schreibpfad nicht. Der RAM-Bedarf ist moderat.
Rebalance
Da Btrfs daten chunk-basiert verteilt, kann ein Pool „unwuchtig“ werden, wenn du Disks hinzufügst.
Der Befehl btrfs balance schreibt die Daten neu über alle verfügbaren Disks. Das ist essenziell nach einer Erweiterung, dauert aber bei großen Datenmengen sehr lange und erzeugt hohe I/O-Last.
Fazit & Einsatzempfehlung
Btrfs ist das „Schweizer Taschenmesser“. Es ist nicht ganz so robust wie der „Panzer“ ZFS, aber viel flexibler und tiefer ins Linux-Ökosystem integriert.
| Szenario | Empfehlung | Begründung |
| Linux Root-Partition | Ideal | Snapshots ermöglichen gefahrloses Patchen/Updaten. |
| Mixed-Drive NAS | Gut (RAID1) | Perfekt, wenn man alte Festplatten unterschiedlicher Größe recyceln will. |
| Enterprise Storage | Bedingt | Nur über mdadm oder Hardware-RAID. Native Btrfs-RAID-Logik vermeiden. |
| Container / Docker | Sehr gut | Der Btrfs-Storage-Driver für Docker ist extrem effizient für Layer-Management. |
Tipp: Wenn du ein Synology NAS nutzt, siehst du dort „Btrfs“. Synology nutzt aber klugerweise mdadm (Linux Software RAID) für die Redundanz (RAID 5/6) und legt Btrfs nur als logische Schicht darüber (für Bit-Rot-Erkennung und Snapshots). Das ist eine valide, stabile Architektur.
This post is also available in:

