Btrfs: Speicher-Pooling und Spiegelung unter Linux

Btrfs erlaubt, mehrere Festplatten zu einem einzigen Speicherpool zusammenzufassen und bietet optionale Spiegelungs-/RAID-Profile. Dieser Leitfaden zeigt Einrichtung, Umwandlung, Fehlerbehandlung, Performance-Tipps und eine Betriebs-Checkliste für produktiven Einsatz.
Einzelne Festplatten müssen Sie unter Linux nicht zwangsläufig getrennt behandeln. Mit Btrfs können Sie mehrere Laufwerke sehr einfach zu einem flexiblen Speicherpool zusammenfassen. Unter bestimmten Voraussetzungen lassen sich außerdem Spiegelungs- oder RAID-Profile aktivieren, damit ein Laufwerksausfall nicht sofort zum Datenverlust führt. Ist alles eingerichtet, nutzen Sie den Pool wie ein normales Dateisystem — Sie können Dateien einfach hineinlegen und Btrfs kümmert sich um Verteilung und (je nach Profil) Duplikation.
Wegen fehlender ausgereifter grafischer Tools erfolgt die Konfiguration aktuell meist über die Kommandozeile. Die hier gezeigten Schritte eignen sich für Desktop- und Server-Umgebungen.
Was ist Btrfs?
Btrfs (B-tree filesystem, oft „Butter FS“ oder „Better FS“ genannt) ist ein modernes Dateisystem, das viele Funktionen auf Dateisystemebene bündelt, die früher über separate Tools realisiert wurden. Beispiele sind Snapshots, Prüfsummen für Daten und Metadaten, integriertes RAID/Pooling und Subvolumes.
Kurzdefinition: Ein Dateisystem ist die Struktur, mit der ein Betriebssystem Dateien organisiert, speichert und wiederfindet.
Wichtige Merkmale, die diesen Artikel betreffen:
- Storage pooling: mehrere physische Geräte werden zu einem logischen Pool zusammengefügt.
- Spiegelung/RAID-Profile: Btrfs bietet Profile für Daten- und Metadaten (z. B. single, raid0, raid1, raid10).
Hinweis zur Stabilität: Viele Btrfs-Funktionen sind für den Alltagsgebrauch stabil, bestimmte Features (historisch z. B. RAID5/6) gelten aber als experimentell. Für einfache Ein-Laufwerk-Setups bleibt ext4 eine konservative Wahl.
Absicht des Artikels und Varianten
Primäre Absicht: praktische Anleitung für Storage-Pooling und Spiegelung mit Btrfs.
Verwandte Fragestellungen (Suchvarianten):
- Btrfs RAID konfigurieren
- Btrfs mehrere Festplatten zusammenführen
- Btrfs RAID1 vs RAID10 Erklärung
- Btrfs /etc/fstab Mount-Optionen
Wichtig: Überschrift oben ist einmalig (H1). Alle folgenden Überschriften sind H2/H3.
Ausgangssituation: Beispiel-Setup
Für die Beispiele in diesem Artikel verwenden wir vier zusätzliche Festplatten:
- /dev/sdb — 1 TB
- /dev/sdc — 1 TB
- /dev/sdd — 500 GB
- /dev/sde — 500 GB
Zusätzlich gibt es /dev/sda mit Bootloader und Betriebssystem; diese bleibt unangetastet. Gesamtrohkapazität der vier Datenträger: 3 TB.
Hinweis: Ersetzen Sie device-Namen in allen Befehlen durch die auf Ihrem System tatsächlich vorhandenen Geräte (z. B. /dev/nvme0n1p1 oder UUIDs).
Ein Dateisystem erstellen
- Ein einzelnes Btrfs-Dateisystem anlegen (auf /dev/sdb):
sudo mkfs.btrfs /dev/sdb
- Erstes Device mounten, damit der Pool einen Mountpoint hat:
sudo mount /dev/sdb /mnt
- Falls die anderen Geräte noch kein Btrfs enthalten, formatieren Sie sie (optional):
sudo mkfs.btrfs /dev/sdc
sudo mkfs.btrfs /dev/sdd
sudo mkfs.btrfs /dev/sde
- Geräte in den vorhandenen Pool einbinden:
sudo btrfs device add /dev/sdc /mnt
sudo btrfs device add /dev/sdd /mnt
sudo btrfs device add /dev/sde /mnt
- Nach dem Hinzufügen die Daten ausbalancieren (rebalancing):
sudo btrfs filesystem balance /mnt
Alternative: Alle Geräte beim Erstellen sofort einbinden:
sudo mkfs.btrfs -d single /dev/sdb /dev/sdc /dev/sdd /dev/sde
Erläuterung der wichtigsten Flags:
- -d
steuert das Datenprofil (single, raid0, raid1, raid10, …). - -m
steuert das Metadatenprofil. - single: Datenblöcke werden einzeln geschrieben — erlaubt ungleiche Gerätegrößen.
- raid0: Striping ohne Spiegelung (maximale Kapazität, keine Redundanz).
- raid1: Daten werden gespiegelt.
- raid10: Kombination aus Mirroring und Striping.
Beispielinterpretation aus dem Eingangsbeispiel: Mit zwei 1-TB- und zwei 500-GB-Geräten ergibt sich bei Verwendung von raid10 eine nutzbare Kapazität von 1,5 TB (je zwei Geräte werden gespiegelt und dann gestreift). Bei raid0 ergeben sich die vollen ~3 TB Rohkapazität, jedoch ohne Schutz vor Ausfall. Bei raid1 reduziert sich die nutzbare Kapazität stark, weil Daten doppelt gehalten werden — prüfen Sie in Ihrer Konstellation das gewünschte Verhältnis von Kapazität zu Redundanz.
Wichtig: Für bestimmte Profile gelten Mindestanforderungen an die Anzahl der Geräte (z. B. raid10 benötigt mindestens vier Devices).
Profile und ihre Eignung — schnelle Entscheidungshilfe
- Einzelne Festplatte / Single: Einfach, maximaler Platz, kein Schutz. Gut für Tests.
- raid0: Performance und Kapazität, kein Schutz. Gut für nicht-kritische Daten oder temporäre Pools.
- raid1: Spiegelung (Redundanz), nützlich für einfache Schutzbedarfe. Bei gemischten Größen ist die effektive Kapazität durch Verteilung begrenzt.
- raid10: Ausgewogen zwischen Performance und Redundanz; sinnvoll für gemischte, aber ausreichend viele Laufwerke.
Entscheidungsfluss (siehe auch Mermaid-Entscheidungsdiagramm weiter unten).
Ein bestehendes Dateisystem konvertieren
Sie können das Profil eines laufenden Btrfs-Dateisystems ändern.
- Mounten (falls nicht gemountet):
sudo mount /dev/sdb1 /mnt
- Konvertierung starten (Beispiel: zu RAID1 für Daten und Metadaten):
sudo btrfs balance start -dconvert=raid1 -mconvert=raid1 /mnt
Erläuterungen:
- -dconvert und -mconvert erlauben, Daten- bzw. Metadaten-Profile zu ändern.
- Die Operation kann lange laufen und ist I/O-intensiv.
- Nicht alle Konvertierungen sind möglich, wenn die Anzahl oder Größe der Geräte nicht ausreicht (z. B. kein Wechsel zu raid10 ohne genug Geräte).
Wenn ein Laufwerk ausfällt
Szenario: Ein Laufwerk fällt aus. So gehen Sie vor, um den Pool wiederherzustellen bzw. verfügbar zu halten.
- Mounten im Degraded-Modus (falls nötig):
sudo mount -o degraded /dev/sdb /mnt
- Prüfen Sie den Status:
sudo btrfs device status /mnt
sudo btrfs filesystem df /mnt
- Entfernen eines fehlenden Gerätes (falls es komplett ausgefallen ist):
sudo btrfs device delete missing /mnt
- Optional: Scrub durchführen, um Fehler aufzuspüren und (platzabhängig) zu reparieren:
sudo btrfs scrub start -B -R /mnt
- Ersatzgerät einbauen und ersetzen (Beispiel mit replace):
# Neuen Datenträger physisch anschließen, z. B. /dev/sdf
sudo btrfs device replace start /dev/sdX /dev/sdf /mnt
# oder: device remove für bereits entfernte Devices
sudo btrfs device remove /dev/sdX /mnt
Hinweis: Die genaue Reihenfolge kann je nach Zustand variieren. Testen Sie die Befehle in einer sicheren Umgebung, bevor Sie sie in Produktion ausführen.
Wichtig: Falls Sie kein Spiegelungsprofil (z. B. raid1/raid10) verwenden, gehen Daten verloren, die nur auf dem ausgefallenen Laufwerk lagen.
Ein Laufwerk aus dem Pool entfernen
Wenn Sie ein Gerät freiwillig entfernen möchten (z. B. zur Wartung), führt Btrfs die Datenverlagerung automatisch durch. Beispiel:
sudo btrfs device delete /dev/sdc /mnt
Der Vorgang verschiebt Daten von /dev/sdc auf die verbleibenden Geräte; er schlägt fehl, wenn nicht ausreichend Platz vorhanden ist.
Automatisches Mounten (/etc/fstab)
Sie können den Pool mit einer Zeile in /etc/fstab automatisch mounten. Beispiel mit Devices:
/dev/sdb /mnt btrfs device=/dev/sdb,device=/dev/sdc,device=/dev/sdd,device=/dev/sde 0 0
Best practice: Verwenden Sie UUIDs statt /dev/sdX, damit das Mounten robust gegenüber device-Name-Änderungen ist. Ermitteln Sie die UUID mit blkid:
sudo blkid -s UUID -o value /dev/sdb1
Beispiel mit UUID und Optionen:
UUID=abcdef12-3456-7890-abcd-ef1234567890 /mnt btrfs defaults,compress=lzo,autodefrag 0 0
Wenn Sie Systemd verwenden, können Sie auch optionale Timeout-Parameter hinzufügen, z. B. x-systemd.device-timeout=30s.
Empfohlene Mount-Optionen
Für große Arrays (HDD-basiert):
compress-force=zlib,autodefrag,nospace_cache
Kurz erklärt:
- compress-force=zlib: Erzwingt Zlib-Kompression, spart Platz auf Kosten von CPU.
- autodefrag: Hilft bei vielen kleinen, sich oft ändernden Dateien.
- nospace_cache / space_cache: Unterschiedliche Kernel-/btrfs-Versionen verwenden unterschiedliche Caching-Mechanismen; prüfen Sie Ihre Empfehlung für Ihre Distribution.
Für SSDs empfehlen sich eher:
noatime,compress=lzo,ssd,discard,space_cache,autodefrag,inode_cache
Erläuterung:
- noatime: reduziert Schreibzugriffe durch Nicht-Aktualisierung der letzten Zugriffszeit.
- compress=lzo: schnelle Kompression mit guter Durchsatzrate, SSDs profitieren hiervon.
- discard: aktiviert TRIM (vorher prüfen, ob Controller und Gerät TRIM unterstützen).
Beispiel fstab-Zeile für SSD-Array:
/dev/sdb /mnt btrfs device=/dev/sdb,device=/dev/sdc,device=/dev/sdd,device=/dev/sde,noatime,compress=lzo,ssd,discard,space_cache,autodefrag,inode_cache 0 0
Performance- und Wartungstipps
- Scrubs regelmäßig ausführen:
btrfs scrub start /mnt
— findet korrupte Blöcke. - Balance-Operationen:
btrfs balance
zur Reorganisation und Ausgleich nach Geräteänderungen. - Monitoring:
btrfs filesystem df
,btrfs device stats
,btrfs device scan
. - Backups: RAID ist kein Backup. Legen Sie regelmäßige Backups außerhalb des Pools an.
Mini-Playbook: Schritt-für-Schritt für ein neues 4-Drive-Pool
- Geräte identifizieren:
lsblk -f
. - Partitionieren falls nötig (GPT, parted).
- Btrfs erstellen:
sudo mkfs.btrfs -f /dev/sdb /dev/sdc /dev/sdd /dev/sde
(oder einzeln und device add). - Mounten:
sudo mount /dev/sdb /mnt
. - Status prüfen:
sudo btrfs filesystem show
. - Optionen setzen in /etc/fstab mit UUID.
- Regelmäßige Scrubs via cron/systemd-timer einrichten.
- Backup-Plan implementieren.
Rollenbasierte Checkliste (Admin / DevOps)
- Vor Einrichtung:
- Geräte-IDs dokumentieren (lsblk, blkid).
- Hardware-Firmware und SMART prüfen.
- Während Einrichtung:
- RAID-Profile auswählen (Kapazität vs. Redundanz).
- /etc/fstab mit UUIDs vorbereiten.
- Nach Einrichtung:
- Scrub und Balance planen.
- Monitoring-Alerts konfigurieren (SMART, btrfs-Fehler).
- Bei Ausfall:
- Degraded mount, remove missing, Ersatzgerät einbauen, replace.
Risikoübersicht und Gegenmaßnahmen
- Risiko: Datenverlust bei RAID0 oder single.
- Gegenmaßnahme: Regelmäßige Offsite-Backups.
- Risiko: Unterschätzte Rebalancing-Zeit bei großen Volumes.
- Gegenmaßnahme: Wartungsfenster planen, Prioritäts-Limits setzen.
- Risiko: Experimentelle Profile (z. B. RAID5/6) instabil.
- Gegenmaßnahme: Vermeiden in Produktion, nur mit Backups testen.
Kompatibilität und Migration
- Verwenden Sie Kernel- und btrfs-progs-Versionen, die Ihre gewünschten Features unterstützen.
- RAID5/6: Historisch problematisch; prüfen Sie die aktuelle Stabilität Ihrer Distribution bevor Sie es produktiv einsetzen.
- Migration von ext4: Daten auf Backup kopieren, neu mit Btrfs formatieren, zurückkopieren oder
btrfs-convert
in nicht-kritischen Tests verwenden.
Wann Btrfs nicht die richtige Wahl ist
- Sie benötigen ein ausfallsicheres, bewährtes Setup für hochverfügbare Produktionsdatenbanken und wollen kein experimentelles Feature nutzen — dann sind etablierte Hardware-RAID-Controller oder ZFS eine Option.
- Sehr große Pools mit heterogener Hardware: Testen Sie Balance- und Rebuild-Zeiten vor dem produktiven Einsatz.
Entscheidungsdiagramm (Mermaid)
flowchart TD
A[Wie viele Laufwerke?] -->|1| B[ext4 oder Btrfs single]
A -->|2| C{Wichtig: Redundanz nötig?}
C -->|ja| D[raid1]
C -->|nein| E[raid0]
A -->|>=4| F{Benötigen Sie Performance+Redundanz?}
F -->|ja| G[raid10]
F -->|nein| H[raid0 oder raid1 abhängig von Bedarf]
Häufige Fehler und Troubleshooting
- Mount schlägt fehl: Prüfen Sie
dmesg
auf btrfs-Meldungen undbtrfs device scan
. - Balance läuft ewig: Prüfen Sie I/O-Last, geben Sie dem System Zeit oder führen Sie gezielte
-dusage
/-musage
-Filter aus. - Zu wenig Platz beim Entfernen: Freigeben von Snapshots, temporäres Auslagern großer Dateien.
FAQ
Q: Ist Btrfs für NAS geeignet?
A: Ja, viele Heimanwender und kleine NAS-Setups nutzen Btrfs. Für kritische Enterprise-NAS-Lösungen prüfen Sie Stabilität und Support Ihrer Distribution.
Q: Kann ich Btrfs mit SSDs und HDDs mischen?
A: Ja, technisch möglich. Beachten Sie, dass unterschiedliche Performance- und Kapazitätseigenschaften das Verhalten von Striping und mirroring beeinflussen.
Q: Sind btrfs-progs und Kernel-Version wichtig?
A: Ja. Neuere btrfs-progs und Kernel enthalten Bugfixes und Verbesserungen. Verwenden Sie empfohlene Kombinationen Ihrer Distribution.
Beispiele und nützliche Befehle (Cheat-Sheet)
- Anzeigen:
btrfs filesystem show
/btrfs filesystem df /mnt
- Geräte hinzufügen:
btrfs device add /dev/sdX /mnt
- Gerät entfernen:
btrfs device delete /dev/sdX /mnt
- Konvertieren:
btrfs balance start -dconvert=raid1 -mconvert=raid1 /mnt
- Scrub:
btrfs scrub start /mnt
- Balance:
btrfs balance start /mnt
Abschluss und Empfehlungen
Btrfs ist eine flexible Lösung für Storage-Pooling und Spiegelung, die viele Verwaltungsaufgaben vereinfacht. Bevor Sie ein kritisches System auf Btrfs betreiben, testen Sie die gewünschten Profile in Ihrer Umgebung, planen Sie Backups und berücksichtigen Sie die Rebuild-/Balance-Zeiten. Für Heimanwender und viele Serveranwendungen bietet Btrfs einen komfortablen Kompromiss zwischen Funktionalität und Bedienbarkeit.
Wichtig: RAID ersetzt kein Backup. Legen Sie regelmäßige Sicherungen außerhalb des Pools an.
Image Credit: William Hook
Kurze Zusammenfassung
- Btrfs bündelt Pooling und RAID in einem modernen Dateisystem.
- Wählen Sie Ihr Profil nach Kapazitäts- und Redundanzbedarf.
- Testen, Backup-Plan, Monitoring und regelmäßige Scrubs sind Pflicht.
Ähnliche Materialien

Active Directory: Benutzer anlegen in Windows

Remote Raids in Pokémon GO: Fernraids, Kosten, Zeitplan

Xfinity selbst installieren – Anleitung & Tipps

Instagram unter Windows 11 reparieren

Standardbrowser in Windows 11 ändern
