Ich versuche mich für ein Dateisystem zu entscheiden und möchte wissen, ob es möglich ist, ein ausgefallenes Laufwerk in btrfs RAID ohne Ausfallzeit zu ersetzen.
Angenommen, ich erstelle mit dem Befehl ein neues btrfs-Dateisystem
mkfs.btrfs -d raid1 /dev/sdb /dev/sdc
Angenommen, ein Tag
/dev/sdc
schlägt fehl. Es gibt zwei Möglichkeiten: Es kann nach und nach fehlschlagen und SMART-Fehler anzeigen. In dieser Situation kann ich ein neues Gerät mit hinzufügenbtrfs device add /dev/sde /mnt; btrfs filesystem balance /mnt
und das alte mit entfernenbtrfs device delete /dev/sdc /mnt
.Aber wenn es plötzlich fehlschlägt und nicht mehr lesbar ist ... In einer Websuche heißt es in dieser Situation, dass ich zuerst das Dateisystem aushängen, im herabgesetzten Modus einbinden, ein neues Gerät hinzufügen und dann das fehlende Gerät entfernen muss.
umount /mnt mount -o degraded /dev/sdb /mnt btrfs device add /dev/sdf /mnt btrfs device delete missing /mnt
Ein Unmount ist offensichtlich ein störender Vorgang, sodass es zu Ausfallzeiten kommen kann. Jede Anwendung, die das Dateisystem verwendet, würde einen E / A-Fehler erhalten. Aber diese Art von "Tutorials" zu btrfs sehen veraltet aus, wenn man bedenkt, dass sich btrfs in einer intensiven Entwicklung befindet.
Die Frage ist: Ist es unter Berücksichtigung des aktuellen Zustands von btrfs möglich, dies online zu tun, dh ohne die Bereitstellung aufzuheben?
Wenn nicht, gibt es eine reine Softwarelösung, die diese Anforderung erfüllt?
quelle
btrfs replace mountpoint old_disk new_disk
wurde hinzugefügt.Antworten:
In Linux 3.8
btrfs replace mountpoint old_disk new_disk
wurde hinzugefügt. Wenn Sie einen aktuellen Kernel ausführen, wird dieser die gesuchte Funktionalität bereitstellen.quelle
btrfs replace start /dev/old /dev/new /mountpoint
( Start wurde hinzugefügt). Siehe auchman btrfs-replace
.kleine Korrektur, aktuelle Syntax ist:
welche dann hintergründe.
Sie können den Status mit überprüfen
Hier sehen Sie einen ständig aktualisierten Status des Ersetzungsvorgangs.
quelle