Lassen Sie Btrfs alles tun.
Zum einen hat Btrfs einen eigenen integrierten Spiegelungscode, der intelligenter sein kann als madm.
Wenn eine Festplatte in einem gespiegelten Paar in einem madm raid10 schwer ausfällt, können Sie die fehlerhafte Festplatte ersetzen und mit Ihrem Leben fortfahren (allerdings nach einem äußerst komplexen Satz von Shell-Befehlen). Das Problem ist, wenn Ihre Festplatte etwas leiser ausfällt: Wenn einige Blöcke nur die falschen Bits zurückgeben, anstatt die entsprechenden Fehlercodes für einen fehlerhaften Block anzugeben, erhalten Sie beim Lesen der Daten zufällig fehlerhafte Daten. Btrfs ist schlauer als das: Es prüft jedes Datenbit. Um ehrlich zu sein, weiß ich nicht, ob es korrekter ist, "jeden BTree-Knoten" oder "jeden Block" zu sagen, aber der Punkt ist, dass beim Lesen einiger Daten aus einem gespiegelten Array die Prüfsumme überprüft wird, bevor sie an Ihren zurückgegeben wird Userland-Prozess. Wenn die Prüfsumme nicht übereinstimmt, wird zuerst der andere Spiegel im Array konsultiert. Wenn dies die richtige Prüfsumme ergibt,
Das Btrfs-Wiki erwähnt speziell Ihre Frage :
Wenn sich Btrfs beim Spiegeln auf Device Mapper oder MD verlassen würde , wäre es nicht in der Lage, Prüfsummenfehler durch Überprüfen der gespiegelten Kopie zu beheben . Die unteren Ebenen kennen die Prüfsumme oder Granularität der Dateisystemblöcke nicht und können daher die zurückgegebenen Daten nicht überprüfen.
Selbst ohne diesen wesentlichen Vorteil ist der Befehlszeilen-Workflow für den Umgang mit entfernten oder hinzugefügten Btrfs-Geräten sehr einfach. Ich bin mir nicht einmal sicher, ob ich die Shell-Befehle "degraded-mount-then-fix-your-filesystem" richtig ausführen kann, aber für Btrfs ist dies auf der Seite mit mehreren Geräten sehr deutlich dokumentiert als:
mount -o degraded /dev/sdb /mnt
btrfs device delete missing /mnt
Wenn Sie zu diesem Zeitpunkt genügend Speicherplatz auf Ihren verbleibenden Festplatten haben, können Sie immer einfach btrfs rebalance
damit fertig werden. Sie müssen den Spiegel nicht ersetzen, da dies unbedingt mit Madm zu tun haben würde! Und wenn Sie es ersetzen möchten, können Sie dies btrfs device add
zuerst tun .