Erstellen Sie ein ZFS-RAIDZ2 mit 4K-Festplatten

Erstellen Sie ein ZFS-RAIDZ2 mit 4K-Festplatten

Ich möchte ein ZFS-RAIDZ2 mit 4 Festplatten erstellen. Ich weiß, dass dadurch mindestens 50 % des Speicherplatzes „verschwendet“ werden, aber ich strebe eine hohe Toleranz gegenüber Festplattenausfällen an. Die Verwendung von 5 Festplatten für RAIDZ2 wird nicht empfohlen und 6 Festplatten sind für mich zu teuer und unnötig. Ich werde 3 TB (oder vielleicht 4 TB) Festplatten haben, die alle 4k-Sektoren mit 512-Byte-Emulation haben.

Ich habe viel über ZFS und Raidz2 gelesen und bin langsam verwirrt.

Soll ich die Festplatten partitionieren? Ich habe gelesen, dass es eine gute Idee ist, Partitionen zu erstellen, um dem Betriebssystem mitzuteilen, dass die Festplatte nicht leer ist. Die Partitionierung kann auch dabei helfen, sich auf 4k-Sektoren auszurichten.

GPT oder MBR?Soweit ich verstanden habe, ist GPT für 3-TB-Festplatten (und größer) ein Muss.

Wie soll ich die Partition erstellen?Bekomme ich dadurch korrekt ausgerichtete Partitionen? sudo parted --align optimal /dev/sdX mklabel gpt mkpart primary 1 0% 3TB

Bonusfrage: Wie groß wird die von erstellte Partition mkpart primary 1 0% 3TBsein? Wird sie sein 3*10^12 - 4096 byte?

Meine Absicht ist es, nicht die volle Größe der Platte zu nutzen, sondern mich auf 3 TB zu beschränken, um eine ausgefallene Platte durch ein anderes Modell ersetzen zu können.

Benötige ich das ashift=12, wenn ich Partitionen ausgerichtet habe?Ist es nutzlos? Schadet es mir irgendwie?

Was ist mit der Streifengröße?Muss ich es ändern? Was ist, wenn ich 5 Festplatten statt 4 Festplatten verwende?

Gibt es sonst noch etwas, was ich beachten sollte?

Antwort1

Sie müssen manuell einen Wert für die Verschiebung festlegen, wenn Ihre Festplatte die falschen Werte meldet, was bei allen Festplatten innerhalb der Übergangsphase der Fall ist (intern 4K, logisch 512) – frühere Festplatten melden die korrekten 512, spätere Festplatten melden die korrekten 4K. Natürlich können Sie es immer angeben, es überschreibt nur, was die Festplatte selbst dem System melden/vorschlagen würde.

Wenn Sie sich nicht sicher sind, können Sie auch einen Pool erstellen, die nutzbare Größe aufschreiben, ihn dann vernichten, auf allen Festplatten einen Wert von 12 setzen, ihn erneut erstellen und die Größen vergleichen. Wenn sie gleich sind, sind Ihre Festplatten ehrlich, was ihren Inhalt angeht.

Das Partitionieren von Festplatten sollte nur erforderlich sein, wenn Ihre Festplatten nicht richtig erkannt werden oder wenn Sie kleinere als die möglichen Größen wünschen.

Antwort2

ZFS unter Linux partitioniert Festplatten automatisch. Früher war das nicht der Fall. Es sieht folgendermaßen aus:

Disk /dev/sdb: 931.5 GiB, 1000204886016 bytes, 1953525168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: 2E55AB8A-8B22-494E-A971-B6D639BA14B1

Device          Start        End    Sectors   Size Type
/dev/sdb1        2048 1953507327 1953505280 931.5G Solaris /usr & Apple ZFS
/dev/sdb9  1953507328 1953523711      16384     8M Solaris reserved 1

Außerdem wird wahrscheinlich ashiftautomatisch der richtige Wert verwendet. Meine SSD hat 13, die obige Festplatte hat wie erwartet 12.

Gehen Sie dazu wie folgt vor:

zpool create tank raidz2 sda sdb sdc sdd

Überprüfen Sie dann, zdbob es ashiftkorrekt erscheint.

verwandte Informationen