
unterstützt btrfs die teilweise Konvertierung des Dateisystems?
Ich befinde mich derzeit in diesem Zustand:
btrfs fi df .
Data, RAID5: total=9.83TiB, used=7.68TiB
System, RAID1: total=32.00MiB, used=704.00KiB
Metadata, RAID1: total=12.00GiB, used=8.61GiB
GlobalReserve, single: total=512.00MiB, used=0.00B
Und aufgrund der im RAID5-Modus gefundenen Fehler möchte ich auf RAID1 migrieren. Es gibt verschiedene Gründe, die Konvertierung nicht sofort durchzuführen. Ich möchte den Zielmodus auf RAID1 einstellen. Alle neuen Daten werden also in RAID1 abgelegt und wenn Zeit ist, kann ich eine vollständige Neuverteilung (oder Soft-Rebalance) auslösen.
Ist so etwas also möglich?
btrfs balance start -dconvert=raid1 -dusage=10 .
Antwort1
Naja, da sonst keiner Infos hatte, habe ich es einfach probiert und dokumentiere hier meine Schritte.
btrfs balance start -dconvert=raid1 -dusage=10 .
Dieser Befehl konvertierte einfach die Chunks, die dem Filter (Nutzung = 10 %) entsprachen. Es gab keine Komprimierung der Chunks (wie bei einer normalen Balance) und keine Einstellung des Ziel-RAID-Levels von RAID5 auf RAID1. Dies war also ziemlich nutzlos und erzeugte große Chunks mit größtenteils leeren Daten und verschwendete Zeit.
Der nächste Ansatz bestand darin, den Grenzfilter und den Soft-Parameter zu verwenden, um die Konvertierung Schritt für Schritt durchzuführen.
btrfs balance start -dconvert=raid1 -dlimit=500,soft .
So wurde das Dateisystem Schritt für Schritt umgestellt.
Anmerkungen:
- gleicht "leere Brocken" vor der Konvertierung aus. Das spart Zeit.
- während dieses Vorgangs wird btrfs neue Daten immer in Blöcke des alten RAID-Profils ablegen. Ich habe keine Möglichkeit gefunden, dies zu ändern. Neue Daten werden also immer in RAID5-Blöcke abgelegt oder es werden neue RAID5-Blöcke erstellt, um die Daten aufzunehmen. Sobald das gesamte Dateisystem konvertiert ist, ist dieses Verhalten natürlich verschwunden.
- das hat online komplett funktioniert :)