Ist es eine gute Idee, Festplattengruppen horizontal in verschiedene ZFS-vdevs zu partitionieren?

Ist es eine gute Idee, Festplattengruppen horizontal in verschiedene ZFS-vdevs zu partitionieren?
 ---------------------------  +-------+ --------
                              |       |
                              | part  | vdev 1
                              |       | no redundancy
 ------------------ +-------+ +-------+ --------
                    |       | |       | vdev 2
                    | part  | | part  | mirroring
                    |       | |       | (2 mirrors)
 -------- +-------+ +-------+ +-------+ --------
          |       | |       | |       | vdev 3
          | part  | | part  | | part  | mirroring
          |       | |       | |       | (3 mirrors)
+-------+ +-------+ +-------+ +-------+ --------
|       | |       | |       | |       | vdev 4
| part  | | part  | | part  | | part  | raidz2
|       | |       | |       | |       | 
+-------+ +-------+ +-------+ +-------+ -------
   Disk      Disk      Disk      Disk
   1TB       2TB       3TB       4TB

Angenommen, ich habe mehrere Festplatten unterschiedlicher Größe und möchte sie partitionieren, um den gesamten verfügbaren Speicherplatz zu nutzen und die Partitionen gleichzeitig in vdevs mit unterschiedlichen Redundanzgraden zusammenzufassen.

Ich denke an eine leiterartige Struktur wie die oben abgebildete.

Jede Festplatte 1 bis 4 ist in 1, 2, 3 oder 4 Partitionen mit einer Größe von 1 TB aufgeteilt. Jede Festplatte wird von 1, 2, 3 oder 4 vdevs gemeinsam genutzt.

  • vdev 1 ist für nicht-kritische Daten vorgesehen (keine Redundanz)
  • vdev 2 enthält Daten, die einmal dupliziert werden
  • vdev 3 enthält kritische Daten, die durch 3 Spiegel doppelt dupliziert werden
  • vdev 4 speichert kritische Daten, die zweimal dupliziert werden, wobei doppelte Parität verwendet wird. Dies sollte die gleiche Zuverlässigkeit wie vdev 3 haben, ist aber platzsparender.

Da ich keine genaue Vorstellung davon habe, wie ZFS die Daten intern anordnet, frage ich mich, ob das Aufteilen einer Festplatte auf mehrere vdevs im Hinblick auf die Leistung und Robustheit üblich oder unsinnig ist.

Antwort1

Sobald Sie auf mehr als einen dieser Pools gleichzeitig zugreifen, wird die Leistung unerträglich.

Abgesehen von der Verschwendung von Speicherplatz werden Sie von der 3-Wege-Spiegelung wahrscheinlich keinen großen Nutzen haben.

RAIDZn hat ungefähr die IOPS-Leistung einer einzelnen Festplatte.

In Bezug auf die Robustheit müssen Sie vorsichtig sein, denn der Verlust eines Laufwerks außer dem kleinsten beeinträchtigt mehrere Pools. Ein beeinträchtigter Zustand geht mit Leistungseinbußen einher.

Bedenken Sie auch Ihren Overhead. Sie haben 10 TB Festplatten, aber 5 TB nutzbaren Speicherplatz, von denen 1 TB keine Redundanz hat.

Sie wären wahrscheinlich besser dran mit einer Anordnung, bei der Sie zwei Pools haben, einen 2+3 und einen 4+1, und Sanoid/Syncoid verwenden, um regelmäßig (stündlich) Snapshots zu erstellen und die Daten vom primären Pool des 2+3-Pools in den 4+1-Backup-Pool zu übertragen. Damit haben Sie immer noch 5 TB nutzbaren Speicherplatz, der vollständig gesichert ist, und das bei einem viel weniger komplizierten Setup.

verwandte Informationen