btrfs RAID1 mit unterschiedlichen Festplattengrößen

btrfs RAID1 mit unterschiedlichen Festplattengrößen

Ich habe ein vorhandenes BTRFS-Dateisystem auf einer 2-TB-Festplatte und möchte eine weitere 5-TB-Festplatte als Redundanz hinzufügen.

Ich kann die neue Festplatte einfach mit btrfs formatieren und das Gerät hinzufügen mit

btrfs device add /dev/sdX /mymountpoint
btrfs filesystem balance start -dconvert=raid1 -mconvert=raid1 /mymountpoint

Ich habe am Ende 2 TB nutzbaren Speicherplatz und alles auf beiden Festplatten. Ich könnte jedoch mehr Redundanz erreichen, wenn ich die freien 3 TB auf meiner 5-TB-Festplatte verwenden könnte, sodass jeder Schreibvorgang zweimal auf die größere Festplatte geht (2-TB-Festplatte speichert alles einmal, 5 TB speichert alles zweimal). Ist das möglich?

Die Nachteile wie höhere Latenz, reduzierte Geschwindigkeit etc. sind mir bewusst.

Antwort1

Technisch gesehen können Sie, wenn Sie zwei Partitionen mit jeweils 2 TB auf der größeren Festplatte erstellen, diese zusammen mit der kleineren Festplatte verwenden (oderseine Teilung) als drei Geräte gleicher (oder nahezu gleicher) Größe.

Auch wenn du mit den Nachteilen einverstanden bist, tu es nicht. Das ist der Grund:

btrfs kombiniert zunächst alle Geräte zu einem Speicherpool und dupliziert dann die Blöcke, wenn Dateidaten erstellt werden. RAID-1 wird derzeit als „2 Kopien aller Daten auf verschiedenen Geräten“ definiert. Dies unterscheidet sich von MD-RAID und dmraid, da diese genau n Kopien für n Geräte erstellen. In einem btrfs RAID-1 auf drei 1-TB-Geräten erhalten wir 1,5 TB nutzbare Daten. Da jeder Block nur auf 2 Geräte kopiert wird, erfordert das Schreiben eines bestimmten Blocks nur das Schreiben auf genau 2 Geräte; das Lesen kann nur von einem erfolgen.

(Quelle)

Es kann (und wird) also passieren, dass einige Daten auf den beiden Partitionen der größeren Platte landen, aber nicht auf der kleineren. Ich denke, eine solche „Arme-Leute-Redundanz“ kann manchmal helfen, wenn die größere Platte teilweise/lokal ausfällt. Wenn sie als Ganzes ausfällt, gehen die Daten, die zufällig zweimal darauf gespeichert sind, verloren.

Was Sie wollen, lässt sich mit dem Ansatz „n Kopien für n Geräte“ erreichen (noch einmal: zwei Partitionen auf der größeren Festplatte sind in diesem Zusammenhang Geräte). Vielleicht interessiert SieRAID mit LVM vs. MDRAID – Vor- und Nachteile.

Ich an Ihrer Stelle würde das allerdings nicht tun. In diesem Setup werden bei jedem Schreibvorgang die beiden Partitionen auf demselben physischen Gerät verwendet. Selbst wenn Sie nacheinander auf beide Partitionen schreiben, handelt es sich dabei um gleichzeitige Schreibvorgänge, bei denen die Köpfe hin- und herbewegt werden müssen; es sei denn, Sie schaffen es, die Partitionen so einzurichten, dass entsprechende Schreibvorgänge von zwei verschiedenen Köpfen an derselben Position des gemeinsamen Arms ausgeführt werden. Kann die Firmware gleichzeitig mit zwei Köpfen schreiben? Kommen die Daten für beide Partitionen von vornherein immer halbgleichzeitig an? Wird zwischen den entsprechenden Schreibvorgängen auf die beiden Partitionen kein Lesevorgang geplant? Ich bezweifle all dies.

Daher kann man davon ausgehen, dass die Köpfe mehr zurücklegen als in einer Nicht-RAID-Konfiguration. Dies verkürzt wahrscheinlich die Lebensdauer des Arms. Wenn er mechanisch ausfällt, fällt die ganze Platte aus. Dann spielt es keine Rolle mehr, wie viele Kopien Sie darauf hatten; was übrig bleibt, ist nur die kleinere Platte.

Fazit: Es kann sein, dass Ihre Idee das Risiko eines Fehlers erhöht, der (wenn er eintritt) die zusätzliche Redundanz völlig irrelevant macht.

Antwort2

Es gibt keine einfache Möglichkeit, dies mit btrfs umzusetzen. Noch wichtiger ist jedoch, dass es sich um eine gefährliche Konfiguration handelt, die nicht verwendet werden sollte.

Der Zweck von RAID1 ist Redundanz. Das zweimalige Speichern von Daten auf einer einzigen Festplatte bietet keine Redundanz: Wenn diese Festplatte ausfällt, sind Ihre Daten verloren.

verwandte Informationen