Btrfs auf einem mdadm raid10 oder btrfs raid10 auf nackten Geräten?

9

Ich habe ein RAID10, das von verwaltet wird, mdadmund ich habe ein EXT4-Dateisystem darüber. Ich mag BTRFS und möchte das EXT4-Dateisystem in BTRFS konvertieren, aber ich habe über Leistung und Wartbarkeit nachgedacht. In einem Beispiel mit BTRFS kann ich den Status nicht einfach sehen, wenn ich eine andere Festplatte wie mit mdadm entferne / zum Array hinzufüge (oder vielleicht weiß ich einfach nicht wie - ich habe die BTRFS-Dokumente durchsucht und konnte dies nicht finden ).

Was ist aus Ihrer Erfahrung die bessere Wahl:

  1. Um einfach das EXT4-Dateisystem zu konvertieren und mdadm das RAID10 verwalten zu lassen?

  2. Um mdadm loszuwerden und BTRFS alles tun zu lassen?

DejanLekic
quelle

Antworten:

11

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 rebalancedamit 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 addzuerst tun .

Glyphe
quelle
3

BTRFS ist noch experimentell und Sie können mit "interessanten" Funktionen enden, falls etwas abstürzen sollte. Wenn Sie btrfs wirklich haben / ausführen möchten, wäre es vorerst viel sicherer, es auf einem Software-Raid auszuführen, als es direkt auszuführen. Wenn btrfs reift und in Produktion geht, trifft dies möglicherweise nicht mehr zu.

Waxhead
quelle
Vor ungefähr einem Jahr habe ich mit einem btrfs-Setup in einer VM experimentiert. Ich konnte den Kernel (!) Konsequent sperren, indem ich mit dem Befehl zum Ausbalancieren herumspielte. Die Zeit ist vergangen und hoffentlich wurde dies behoben.
Avery Payne