grundsätzlich finde ich ja Btrfs schon das Dateisystem der Wahl für freie Systeme der Zukunft. Insgesamt scheint mir Btrfs gemäß meiner Prioritäten zum aktuellen Zeitpunkt aber immer noch ungeeignet für einen Produktivbetrieb zu sein.
Status
Wenn ich mir dass hier anschaue ...
https://wiki.debian.org/Btrfs
... dann sieht mir das wie ein ziehmliches Schlachtfeld aus. Also man muss auf vieles achten, sonst hat man in vielen Situationen möglicherweise Datenverlust.
Wenn ich mir dann den aktuellen Status von Btrfs anschaue, hier ...
https://btrfs.readthedocs.io/en/latest/Status.html
... dann steht da auch noch häufig beim Thema Stabilität und einigen Funktionen "Mostly OK". Das ist jetzt auch irgendwie nicht ein Dateisystem, dass ich produktiv einsetzen möchte. Device Replace ist auf "Mostly OK" - Für ein Produktivsystem inakzeptabel. Kann natürlich auch sein, dass das einfach nur ehrlich ist und die Seltenheit des Auftretens von manchen Fehlern sehr gering ist und z. B. im Vergleich zu HW-RAID-Controllern dort auch existieren aber dort halt einfach unbekannt sind, weil nicht dokumentiert bzw. veröffentlicht.
Degraded RAID
Wenn ich ein Degraded RAID Array habe, also eine Platte ist z. B. ausgefallen, dann wünsche ich mir eine Anwendung derart, dass ich das System uneingeschränkt weiter betreiben kann. Mir ist natürlich klar, dass die Redundanz dann ggf. weg ist und wenn Datenfehler auftreten, dann sind die durch das RAID-Array selbst nicht mehr reparabel. Das ist für mich völlig in Ordnung so und mir wichtiger, als wenn ein Server ein oder mehrere Tage ausfällt.
In der Vergangeheit habe ich hier dazu gelesen, wenn man ein System mit einem Degraded-RAID betreibt, dann werden Blöcke im Format Single geschrieben. Wenn man daraufhin dann neu startet, dann erkennt Btrfs dass da verschiedene Formate verwendet werden (z. B. single + raid1) und setzt das Dateisystem unwiederruflich Read-only. Im Wiki-Beitrag hier
![Wiki-Artikel zum Thema](/pics/wikitag.png)
Meine Erwartung ist da: Wenn ein RAID degraded ist, dann kann ich damit völlig normal weiter arbeiten. Dann ersetze ich die Platte irgendwann mal - nach 1 - x Tagen. Anschließend synchronisiert sich das alles wieder und somit ist der redundante Normalzustand wieder hergestellt.
Festplatten ersetzen
Wenn es um das Ersetzen von Festplatten geht, ist bei mir da noch eine große Unklarheit über den tatsächlichen Ablauf. Verstanden habe ich, dass Btrfs grundsätzlich und zusätzlich zu den vorhanden Festplatten immer die neue Festplatte dazu nimmt, den Ersetzungsvorgang durchführt und dann die alte Platte entfernt.
Das ist sehr sinnvoll das so zu tun, weil, wenn auf einer Platte ein Datenfehler auftritt, dann können die Daten immer noch von der zu evakuierenden Platte genommen werden, um Datenfehler zu vermeiden.
Manchmal ist das aber nicht möglich. Wenn z. B. ein System nur 4 Festplattenschächte hat und alle 4 sind belegt, dann muss man zwangsläufig eine Festplatte abklemmen, um die neue Festplatte anschließen zu können. Kann man das mit Btrfs auch irgendwie machen?
RAID-10
Ich habe nicht genau verstanden, wie Btrfs RAID-10 genau verwendet. Hier habe ich eine ganz gute Erklärung dazu gefunden:
Englisch: https://lore.kernel.org/linux-btrfs/87v ... sis.net/T/
Als wichtiges Element ist dort noch zu lesen, dass die RAID-Funktionalität von Btrfs nicht auf Blockdevices (z. B. /dev/sda) operiert, sondern auf Chunks. Chunks sind 1 GB grosse Datenblöcke, die dann gemäß des RAID-Levels auf den Blockdevices verteilt werden. Am besten in dem obigen Thread nachlesen für Details.
Last-but-not-least ist für mich RAID5/6 nice-to-have, also verzichtbar.
Viele Grüße,
heisenberg