
Mir ist aufgefallen, dass in Anleitungen zu ZFS, Redundanz und Leistung die Spiegelung oft als gute Option hervorgehoben wird, die Verwaltungsinformationen zu ZFS jedoch im Vergleich zu einem auf RAID basierenden Setup relativ wenige Informationen zur Verwaltung eines gespiegelten Setups enthalten.
Ich plane, meinen ZFS-Pool von gespiegelten Festplatten unter Windows zu migrieren. Mein bevorzugtes Setup war immer rein gespiegelt und nachdem ich mir ZFS angesehen habe, möchte ich dies beibehalten und reine Spiegelung für Redundanz anstelle von RAIDZ verwenden. Idealerweise bleibt jedes Laufwerk isoliert logisch lesbar, d. h. bei 6 Festplatten werden Daten effektiv als (1+2+3 mirror) + (4+5+6 mirror)
statt gespeichert ((1+2 stripe) x 3 mirror)
. Ich weiß, dass dies nicht sehr effizient wäre und mehrere kleinere Pools/Datensätze erfordern würde, aber da ich schon einmal Daten verloren habe, hat es Vorteile, die ich gegenüber der Effizienz schätze. Es ist wahrscheinlich auch viel schneller beim Lesen und Resilvering und physisch weitaus flexibler.
Wenn ich diese Art von Setup ausführen möchte, welche Auswirkungen hat die Spiegelung innerhalb eines vdev im Vergleich zur Spiegelung von vdevs, und wenn der Speicher in Zukunft durch Hinzufügen von drei neuen Festplatten erweitert wird, ist es dann besser, sie als separaten Pool oder separates vdev (oder drei separate vdevs) hinzuzufügen?
Antwort1
In ZFS können SieRedundanz jeglicher Art muss immer auf der VDEV-Ebene vorhanden sein, auf der Pool-Ebene ist sie nicht möglich..
Ein vdev kann aus einer einzelnen Festplatte (1 Festplatte), gespiegelten Festplatten (2+ Festplatten), einem Z1-Stripe (2+ Festplatten), einem Z2-Stripe (3+ Festplatten) oder einem Z3-Stripe (4+ Festplatten) bestehen. Sie können dann Ihre Pools erstellen, wobei jeder Pool von 1+ vdevs unterstützt wird, und Sie können so viele Pools haben, wie Sie möchten. Jeder Pool verwendet alle unterstützenden vdevs ohne Redundanz (die auf der vdev-Ebene verwaltet wird) und der Verlust eines einzelnen vdevs (keine Festplatte) bedeutet, dass Ihr gesamter Pool verloren geht.
Wenn Sie Ihre Pools aufteilen, haben Sie daher im Grunde mehrere RAID1-Arrays nebeneinander, die völlig getrennt sind. Der Verlust eines Pools wirkt sich nicht auf die anderen aus, aber die Leistung sinkt, weil alle RAID1 statt RAID10 sind.
Mit der Erweiterung geht auch dieser Kompromiss einher: Wenn Sie Ihren einzelnen Pool vergrößern, wird er schneller (zumindest für neu geschriebene Daten, es erfolgt keine automatische Neuverteilung), aber auch die Wahrscheinlichkeit eines Ausfalls steigt.
Abgesehen davon stellt sich die Frage, ob Sie 2-Wege- oder 3-Wege-Spiegel für Ihre vdevs haben möchten – 3-Wege ist viel sicherer (bis zu dem Punkt, dass 4-Wege fast nutzlos sind), aber teurer (es werden mehr Festplatten benötigt oder es steht weniger Speicherplatz zur Verfügung). 3-Wege ist beim Lesen auch etwas schneller, aber die Schreibgeschwindigkeit ändert sich nicht.
Es handelt sich also um einen Kompromiss zwischen Kosten, Leistung, Sicherheit und Benutzerfreundlichkeit.