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% 3TB
sein? 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 ashift
automatisch 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, zdb
ob es ashift
korrekt erscheint.