ZFS-Pool mit unterschiedlichen Laufwerksgrößen

9

Ich plane, einen FreeNAS ZFS-Pool mit zwei 2-TB-Laufwerken und zwei 1-TB-Laufwerken einzurichten. Ich hätte gerne irgendwie Datenredundanz. Ich habe diesen Beitrag gelesen, der darauf hindeutet, dass meine beiden Optionen darin bestehen, 1 TB pro 2 TB Laufwerk mit RAIDZ zu verlieren oder diesen Befehl zu verwenden (der den für die Datenredundanz erforderlichen Speicherplatz verdoppelt):

zfs set copies=2 poolname

Gibt es eine bessere Möglichkeit, damit umzugehen und etwas zu erreichen, das eher Drobo's Beyond RAID oder Netgear's XRAID ähnelt? Könnte ich alternativ jedes 2-TB-Laufwerk in 1-TB-Partitionen partitionieren und beide Partitionen in den Pool stellen?

Timothy R. Butler
quelle

Antworten:

13

Es gibt einen besseren Weg, einen einzelnen 3-TB-Pool zu erstellen, der aus zwei Spiegeln besteht.

zpool create test mirror disk1 disk2 mirror disk3 disk4

Dabei sind disk1 und disk2 die 1-TB-Festplatten und disk3 und disk4 die 2-TB-Festplatten.

Bearbeiten:

Wenn Sie die Größe maximieren möchten und sich nicht so sehr um Leistung oder Best Practices kümmern möchten, können Sie alle Laufwerke mit Partitionen (oder Slices) gleicher Größe partitionieren und einen 4-TB-Hybridpool mit einem 4-Vdev-RAIDZ und einem 2-Vdev-Spiegel erstellen.

zpool create -f test raidz d0p1 d1p1 d2p1 d3p1 mirror d0p2 d1p2

Beachten Sie die Option "-f", die erforderlich ist, um den Befehl zu zwingen, die Nichtübereinstimmung der Replikationsebene zu akzeptieren.

jlliagre
quelle
1
Danke für die Auskunft. Das wäre also wie eine normale Spiegelung, bei der Redundanz 100% mehr "kostet", wie es scheint? Gibt es eine Möglichkeit, stattdessen RAID5-ähnliche 50% "Kosten" für die Parität zu erzielen? Wie ist die Leistung dieser Konfiguration im Vergleich zur Leistung eines ZRAID / RAID5-Setups mit 4 gleich großen Laufwerken?
Timothy R. Butler
@ TimothyR.Butler Sie können keinen Spiegel der 1 TB erstellen und RAIDZ auf die beiden 2 TB und den 2 TB Spiegel anwenden, es funktioniert einfach nicht so. Um RAIDZ verwenden zu können, benötigen Sie Laufwerke gleicher Größe (oder Sie geben den zusätzlichen Speicherplatz auf den größeren Laufwerken auf, oder Sie müssen anfangen, nicht empfohlene Konfigurationen vorzunehmen). Die beiden in diesen Antworten empfohlenen Spiegelkonfigurationen sind die am besten empfohlenen Konfigurationen.
Chris S
Danke jilliagre und @chriss für die Kommentare. Ich denke, ich kann einfach zwei weitere Laufwerke kaufen und es einen Tag nennen. Der zweite Befehl, den Jilliagre gerade hinzugefügt hat, ist jedoch faszinierend ... Würde ich zu Recht davon ausgehen, dass die Leistung genauso gut oder besser ist als alles, was oben erwähnt wurde, wenn ich ein 4x2 TB RAIDZ ausführen würde?
Timothy R. Butler
@ TimothyR.Butler Ein 4x2TB RAIDZ hätte im Vergleich zu zwei 2x2TB Spiegeln (RAID10 im Grunde) einen leichten Leistungseinbruch. Diese beiden hätten die beste Leistung von allem, was wir hier besprochen haben.
Chris S
4

Dies hängt davon ab, wie viel Datenspeicher Sie benötigen. Mit RAID 1 können Sie zwei Pools mit jeweils 1 TB und 2 TB erstellen. Wenn nicht, prüfen Sie, ob Sie Festplatten gleicher Größe erwerben und RAID 1 + 0 oder RAIDZ ausprobieren können.

ewwhite
quelle
Vielen Dank. Wären zwei Pools besser als ein Pool mit zwei RAIDZs?
Timothy R. Butler
@ TimothyR.Butler Jeder Festplattenspiegel ist ein vdev in ZFS. Sie können vdevs nicht aus einem zfs-Pool entfernen. Sobald der Pool zwei Spiegel enthält, muss er immer mindestens diese beiden haben (Sie können weitere hinzufügen, nur nicht entfernen). Wenn Sie jemals zu etwas mit weniger vdevs wechseln wollten, müssten Sie den Pool zerstören und von vorne beginnen. Wenn Sie also mit zwei Zpools beginnen, haben Sie die Flexibilität, diese später zu trennen, wenn Sie möchten. Sie verlieren jedoch die Flexibilität, den Speicherplatz automatisch freizugeben (Sie müssten Dateien in den einen oder anderen Pool legen, während sie gefüllt werden).
Chris S
@ewwhite, ich weiß, was Sie mit "RAID 1 + 0" meinen, aber es gibt keine Möglichkeit, dies explizit in ZFS zu tun ... einige können durch den Unterschied verwirrt sein.
Chris S
2

Aus dem ZFS-Administratorhandbuch:

"Die Geräte können einzelne Slices auf einer vorformatierten Festplatte oder ganze Festplatten sein, die ZFS als einzelne große Slice formatiert."

Ja, Sie können zwei 1-TB-Partitionen auf diesen 2-TB-Laufwerken erstellen, diese für RAID-Z vdev und den verbleibenden Speicherplatz für nicht redundanten Speicher verwenden.

Laut dem ZFS Best Practices Guide kann es jedoch zu Leistungseinbußen kommen:

Verwenden Sie für Produktionssysteme aus folgenden Gründen ganze Festplatten anstelle von Slices für Speicherpools:

  • Ermöglicht ZFS, den Schreibcache des Datenträgers für Datenträger mit Schreibcaches zu aktivieren. Wenn Sie ein RAID-Array mit einem nichtflüchtigen Schreibcache verwenden, ist dies weniger problematisch und schneidet ab, da vdevs weiterhin den Vorteil des Schreibcaches des Arrays nutzen sollten.

  • Für JBOD-angeschlossenen Speicher mit aktiviertem Festplatten-Cache können einige synchrone Schreibvorgänge als mehrere Festplattenschreibvorgänge ausgegeben werden, gefolgt von einem einzelnen Cache-Flush, sodass der Festplattencontroller die E / A-Planung optimieren kann. Bei Systemen, die SATA NCQ oder SCSI TCQ nicht ordnungsgemäß unterstützen, kann der Host mit einem aktivierten Schreibcache eine einzelne E / A-Operation asynchron von der physischen E / A ausführen.

  • Der Wiederherstellungsprozess beim Ersetzen einer ausgefallenen Festplatte ist komplexer, wenn Festplatten sowohl ZFS- als auch UFS-Dateisysteme auf Slices enthalten.

Terlisimo
quelle
Wundervoller Job zum Ausschneiden und Einfügen, aber alles, was in den beiden anderen Antworten bereits behandelt wurde.
Chris S