Frage zu ZFS raidz2 mit 7 Platten - Fehlkonfiguration?

reakktor

Well-Known Member
Hi zusammen

ich habe ein gerade ein neues System aufgesetzt, das als Backup-System dienen soll. Hat 7 große Festplatten, mit ZFS-root.

Zustand:
Code:
~> zpool status
  pool: tank
 state: ONLINE
  scan: none requested
config:

        NAME                                            STATE     READ WRITE CKSUM
        tank                                            ONLINE       0     0     0
          raidz2-0                                      ONLINE       0     0     0
            gptid/ebc84752-7995-11e1-9d85-8c89a563ba9a  ONLINE       0     0     0
            gptid/ed10cac9-7995-11e1-9d85-8c89a563ba9a  ONLINE       0     0     0
            gptid/ee41f103-7995-11e1-9d85-8c89a563ba9a  ONLINE       0     0     0
            gptid/ef75c5b3-7995-11e1-9d85-8c89a563ba9a  ONLINE       0     0     0
            gptid/f0a35fbe-7995-11e1-9d85-8c89a563ba9a  ONLINE       0     0     0
            gptid/f1dfa9af-7995-11e1-9d85-8c89a563ba9a  ONLINE       0     0     0
            gptid/f32b097f-7995-11e1-9d85-8c89a563ba9a  ONLINE       0     0     0

Funktioniert top so, aber nachdem ich nochmals die ZFS-Dokus gewühlt habe, bin ich mir wegen der ZFS-Config nicht mehr sicher.

Es sind alle 7 Disks in einem raidz2, die Dokus sprechen allerdings immer von 6 Disks (4+2).

Frage an die Gurus:
- Habe ich hier einen Fehler gemacht mit 7 Platten ?
- Sollte ich das umbauen auf 6 Platten + 1 Spare ?
- Wie sieht das mit der Ausfallsicherheit aus (= wie wird die zusätzliche Platte in so einem raidz2 behandelt ?)
 
Es sind alle 7 Disks in einem raidz2, die Dokus sprechen allerdings immer von 6 Disks (4+2).

6 Platten sind die erste Stufe, aber der RAIDZ-2 laut ZFS Best Practices Guide empfohlen wird. Bis 5 Platten wird RAIDZ empfohlen, ab 9 Platten RAIDZ-3.

- Habe ich hier einen Fehler gemacht mit 7 Platten ?

Nein. Spares sind i.d.R. nur nützlich, wenn sie zwischen mehreren Pools geteilt werden können, was bei dir nicht der Fall ist.

- Sollte ich das umbauen auf 6 Platten + 1 Spare ?

Nein. Hier verzichtest du entweder auf Speicherplatz oder Ausfallsicherheit im Vergleich zum RAIDZ-2 ohne Spare.

Willst du genauso viel Speicherplatz, musst du RAIDZ plus Spare nehmen, was nur den gleichzeitigen Ausfall genau 1 Platte verkraftet.

Bist du bereit, auf den Speicherplatz zu verzichten und nimmst RAIDZ-2 plus Spare, hast du eine schlechtere Ausfallsicherheit als RAIDZ-3 (was den gleichzeiten Ausfall von 3 Platten verkraftet).

- Wie sieht das mit der Ausfallsicherheit aus (= wie wird die zusätzliche Platte in so einem raidz2 behandelt ?)

Sobald eine Platte des RAIDZ-2 ausfällt, wird sie automatisch offline genommen, die Spare-Platte wird Teil des RAIDZ-2 und im Laufe der nächsten Stunde(n) synchronisiert.

Solange du nur einen einzigen Pool hast, bist du aber mit Spare in jedem Fall schlechter dran als mit einem höheren RAIDZ-Level. Im ZFS Configuration Guide gibt es ein Beispiel, bei dem man einen schönen Anwendungsfall sieht.
 
Vielen Dank für die Antwort und die weiterführenden Links.

Was ich nach der Lektüre allerdings immer noch nicht begreife: Eigentlich verwendet das raidz2 intern ja nur 6 Platten, 4 im Raid und 2 Parity Disks.
Wenn ich nun die 7te Platte mit einhänge, was passiert mit dieser, ist ja nicht als Spare konfiguriert
- Ist die Platte automatisch eine Spare ?
- wird die eine Platte dann eventuell gestriped / gemirrored (stripe wäre fatal) ? Mich irritiert das "raidz2-0"...

Sobald eine Platte des RAIDZ-2 ausfällt, wird sie automatisch offline genommen, die Spare-Platte wird Teil des RAIDZ-2 und im Laufe der nächsten Stunde(n) synchronisiert.
Das gilt aber nur für Platten, die explizit als Spare eingebunden sind, oder? In meinem Fall ist die 7te Platte blöderweise mit im Pool als aktive Platte...
 
Ich bin zwar nun kein ZFS-Kenner, aber soweit ich das verstanden habe arbeitet ZFS mit verteilter Parität. Das heisst bei einem Z2, dass zu jedem Datenblock 2 Paritäten jeweils auf die Folgeplatten geschrieben werden. Es gibt jedoch keine reinen Paritätsplatten wie bei RAID3. Alle im Verbund befindlichen Platten enthalten sowohl Daten als auch Paritäten, nur eben von der Zuordnung über die Platten verteilt.

Sprich wenn der ersten Datenblock in deinem Fall über HDD 1,2,3,4,5 geht stehen die Paritäten dazu auf den Platten 6,7. Der nächste Block hat seine Daten auf den Platten 1,2,3,4,7 und die Paritäten dazu auf HDD 5,6 usw.

Ein Mehr an Platten verstreut also die Paritätsinformationen nur mehr.

Soweit mein Verständnis von ZFS
 
Zurück
Oben