Kann ein ausgefallenes Btrfs-Laufwerk in RAID-1 live ersetzt werden?

Kann ein ausgefallenes Btrfs-Laufwerk in RAID-1 live ersetzt werden?

Ich versuche, mich für ein Dateisystem zu entscheiden und möchte wissen, ob es möglich ist, ein ausgefallenes Laufwerk im BTRFS-RAID ohne Ausfallzeiten zu ersetzen.

  1. Angenommen, ich erstelle ein neues btrfs-Dateisystem mit dem Befehl

    mkfs.btrfs -d raid1 /dev/sdb /dev/sdc
    
  2. Nehmen wir nun an, dass eines Tages ein /dev/sdcFehler auftritt. Es gibt zwei Möglichkeiten: Der Fehler kann schrittweise auftreten und SMART-Fehler anzeigen. In dieser Situation kann ich mit ein neues Gerät hinzufügen btrfs device add /dev/sde /mnt; btrfs filesystem balance /mntund dann mit das alte entfernen btrfs device delete /dev/sdc /mnt.

  3. Aber wenn es plötzlich ausfällt und unlesbar wird ... Eine Websuche ergibt, dass ich in dieser Situation zuerst das Dateisystem aushängen, es im herabgestuften Modus mounten, 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 Unmounten ist offensichtlich eine störende Operation, daher würde es Ausfallzeiten geben - jede Anwendung, die das Dateisystem verwendet, würde einen E/A-Fehler erhalten. Aber diese Art von „Tutorials“ zu btrfs scheinen veraltet, wenn man bedenkt, dass btrfs in intensiver Entwicklung ist.

Die Frage ist: Ist es angesichts des aktuellen Status von btrfs möglich, dies online durchzuführen, d. h. ohne es auszuhängen?

Wenn nicht, gibt es eine reine Softwarelösung, die diesen Bedarf decken kann?

Antwort1

In Linux 3.8 btrfs replace mountpoint old_disk new_diskwurde hinzugefügt. Wenn Sie einen aktuellen Kernel verwenden, bietet dieser die gewünschte Funktionalität.

verwandte Informationen