ZFS-RAID 10-Pool mit gemischter Festplattengröße

717
Artico

Ich habe 4 Festplatten: 2x2TB und 2x1TB. Alle gleichen RPM 7200 und Hersteller. OS ist Ubuntu 16.04. Ich möchte einen RAID 10-Pool erstellen, aber ich habe gehört, dass das Mischen der Festplattengröße kein guter Ansatz für ZFS ist - korrigieren Sie mich, wenn ich falsch liege ... Was also besser ist, als diese 3 Optionen ("m" bedeutet Spiegeln) ):

  1. Spiegel für ganze Platten: (2 TB m 2 TB) + (1 TB m 1 TB).
  2. Teilen Sie 2-TB-Platten in 1-TB-Partitionen auf: (1 TB m 1 TB) + (1 TB m 1 TB) + (1 TB m 1 TB).
  3. Zwei separate Pools: (2 TB m 2 TB) und (1 TB m 1 TB).

Ich persönlich mag die dritte Option nicht wirklich, aber vielleicht ist sie die stabilste? Ich bin neu bei ZFS, also schlagen Sie bitte vor.

Ich habe ein Bild erstellt, um die zweite Option zu veranschaulichen:

Bild von Option 2

3

1 Antwort auf die Frage

1
Dan

Bevor Sie Ihre Frage beantworten, ein Haftungsausschluss: Es ist offensichtlich am einfachsten, nur doppelte Hardware zu verwenden. Es ist erwähnenswert, dass Ihre Geräte zwar vom selben Hersteller stammen und dieselbe Drehzahl besitzen, der Durchsatz bei einer bestimmten IO-Größe jedoch unterschiedlich ist (da die 2-TB-Laufwerke wahrscheinlich eine höhere Bytdichte pro Ring haben) und die Anzahl Der IOPS ist derselbe zwischen ihnen, auch wenn die 2-TB-Laufwerke in einer zufälligen Lesesituation doppelt so häufig getroffen werden. Grundsätzlich haben Sie sowieso eine asymmetrische Leistung, bei der die 2-TB-Platten bei großen IOs etwa doppelt so gut und die 1-TB-Platten bei kurzen zufälligen IOs zweimal besser sind.

Ich werde antworten, vorausgesetzt, Sie möchten Ihre 1-TB-Laufwerke nicht verkaufen, um eine weitere 2-TB-Festplatte zu kaufen. Aus Ihrer Frage kann ich nicht wirklich sagen - was ist Ihr gewünschter Replikationsgrad? Egal was, es gibt zwei Richtlinien, die Sie beachten sollten:

  1. Es ist besser, zpoolwenn Sie ZFS konfigurieren, vollständige Festplatten in der zu konfigurieren, da die Fehlersemantik bei Ausfall eines Laufwerks viel einfacher ist, als wenn zwei Partitionen zusammen ausfallen könnten (wenn die Festplatte, auf der beide sich befinden, ausfällt).
  2. Das Hinzufügen neuer Festplatten zu einem Pool ist am einfachsten, wenn der Knoten der obersten Ebene im Pool gestreift ist vdev. Auf diese Weise können Sie immer Gruppen doppelter neuer Geräte gleichzeitig hinzufügen. Dabei spielt es keine Rolle, ob ihre Größe mit den vorhandenen Geräten im Pool übereinstimmt.

Wenn Sie einen 2-Platten-Spiegel möchten, erscheint mir Option 1 am besten. Wenn Sie jemals eine andere Festplatte kaufen, kaufen Sie eine Sekunde desselben Typs und fügen Sie beide als neuen Spiegel unter dem gestreiften Knoten in diesem Baum hinzu:

striped mirror 2TB 2TB mirror 1TB 1TB 

Wenn Sie eine 3-Platten-Spiegelung wünschen, können Sie eine Spiegelung auf diese Weise ausführen. Das Hinzufügen von Geräten zu einem späteren Zeitpunkt ist jedoch schwieriger (fügen Sie sie als einen anderen Spiegel hinzu, und fügen Sie sie als einen weiteren Streifen unter dem 1-TB-Bereich hinzu.):

mirror 2TB 2TB striped 1TB 1TB 

Wenn Sie RAID-Z verwenden möchten, würde ich empfehlen, keine Geräte unterschiedlicher Größe zu verwenden, oder Sie könnten weitere 2-TB- und 1-TB-Geräte kaufen und über mehrere RAID-Z-Gruppen streifen.

Eine alternative Methode zum Replizieren von Daten in ZFS ist die copies=NEinstellung, die Sie für Dateisysteme innerhalb des Pools festlegen können. Dies kann für Ihren Anwendungsfall verlockend sein. Beachten Sie jedoch, dass es nicht für alle Datenverlustprobleme hilfreich ist. Ein Fehler auf Geräteebene führt immer noch dazu, dass der gesamte Pool nicht verwendet wird. (Der Hauptanwendungsfall hierfür sind Beschädigungen auf einer Festplatte.)