Wie viele Laufwerke benötige ich für ZFS RAID-Z2?

Wie viel Speicherplatz würde ich benötigen, wenn ich RAID-Z2 verwenden möchte? Ich erstelle einen Heimserver, auf dem FreeNAS mit einem ZFS-Dateisystem ausgeführt wird, und plane derzeit, 3 3-TB-Festplatten zu installieren.

  • Funktioniert RAID-Z2 dabei?
  • Müsste ich auf RAID-Z1 herabstufen?
  • Wie viele Laufwerke werden für RAID-Z2 benötigt?
Author: Community, 2016-03-20

1 answers

RAID-Z2 übernimmt die Laufwerke, die dem vdev zugewiesen wurden, und verwendet zwei davon, um redundante Daten für Wiederherstellungszwecke zu speichern, falls etwas schief geht.

Daher ist die absolute Mindestanzahl von Laufwerken in einem RAID-Z2 vdev die zwei redundanten plus eins, was auf drei Laufwerke wirkt.

Indem Sie es jedoch so machen, Sie:

  • erhalten die effektive Speicherkapazität von nur einem der Laufwerke
  • kann zwei der drei beteiligten Laufwerke verlieren ohne Datenverlust (im allgemeinen Fall können Sie den Verlust von zwei beliebigen Laufwerken in einem RAID-Z2 vdev mit N Laufwerken überleben)
  • zwingen das System, Paritätsdaten für RAID-Z2 zu berechnen

Wenn Sie ein vdev-Consiting von drei Laufwerken wünschen, oder wenn Sie drei haben und Redundanz von zwei Laufwerken wünschen, sind Sie wahrscheinlich besser dran, indem Sie sie stattdessen als Spiegel einrichten. Auf diese Weise, Sie:

  • erhalten die effektive Speicherkapazität von nur einem der Laufwerke (unabhängig von der anzahl der Spiegelgeräte)
  • kann den Verlust von zwei der drei beteiligten Laufwerke ohne Datenverlust überleben (im Allgemeinen können Sie den Verlust von N-1-Laufwerken in einem N-Laufwerk in vdev überleben)
  • vermeiden Paritätsdatenberechnungen, da Spiegel bit-identische Kopien voneinander sind; Das Schreiben derselben Daten auf mehrere Festplatten ist viel billiger als das Berechnen separater Paritätsdaten und das Schreiben auf die Festplatte

Die minimale Anzahl von Laufwerken, bei denen RAID-Z2 macht Sinn ist vier, die Ihnen die effektive Speicherkapazität von zwei der Laufwerke und ermöglicht den Verlust alle zwei der Laufwerke. Dies ist vorteilhaft gegenüber der Verwendung derselben vier Laufwerke in einem 2x2-Spiegel-Setup, denn wenn Sie zwei Spiegel-Vdevs mit jeweils zwei Laufwerken haben und einige Kombinationen von zwei Laufwerken verlieren, ist dieser vdev tot und nimmt den Pool in seinem feurigen Untergang mit. In einem 2x2-Spiegel-vdev-Pool muss mindestens eines der Laufwerke in jedem Spiegelpaar für die pool zu bleiben verfügbar. Der Spiegel kann jedoch sehr gut eine bessere Leistung haben. Wie immer ist es ein Kompromiss zwischen verschiedenen Entscheidungen, und ein Teil der Stellenbeschreibung des Systemadministrators besteht darin, diese Kompromisse für jede spezifische Situation angemessen zu treffen.

Während RAID-Z2 technisch gesehen mit dem von Ihnen beschriebenen Setup funktioniert, bietet es keinerlei Vorteile und hat sogar einige Nachteile im Vergleich zu einer einfachen Drei-Wege-Spiegelkonfiguration.

Es anders wäre es, wenn ZFS uns erlaubt, dynamisch die Redundanzstufe zu ändern oder die Anzahl der Geräte in einem RAID-Zn erhöhen vdev, aber es tut es nicht. Die einzige Möglichkeit, einen Pool tatsächlich auszubauen, besteht darin, mehr vdevs hinzuzufügen oder die Größe der vorhandenen Geräte zu erhöhen, nicht indem Geräte zu einem vorhandenen vdev hinzugefügt werden. (Sie können Geräte in einem Spiegel-VDEV hinzufügen und entfernen, dies ändert jedoch nur die Redundanz und nicht die nutzbare Speicherkapazität.)

Sie können die drei Laufwerke auch als RAID-Z(1) vdev, mit dem Sie den Verlust von einem der Laufwerke überleben können, bevor Ihre Daten gefährdet sind, wenn etwas weiter schief geht, reduzieren Sie die CPU-Auslastung im Vergleich zu RAID-Z2 (da RAID-Z1-Paritätsberechnungen weniger rechenintensiv sind) und geben Sie die effektive Speicherkapazität von zwei der Laufwerke zusammen.

Immer Denken Sie daran, dass, wenn etwas schief geht, ein vollständiger ZFS Resiliver ein mühsamer Prozess für die verbleibende Festplatten, und es ist nicht unbekannt, dass eine andere Festplatte Probleme entwickelt oder sogar unter Stress stirbt. Aus diesem Grund sollte double redundancy, insbesondere bei Rotationsantrieben der heute üblichen Größen, die Standardauswahl mit Triple Redundancy eine Option sein, wenn Sie wirklich paranoid sind. Eine einzelne Redundanz sollte nur für weniger wichtige Daten in Betracht gezogen werden, bei denen Ausfallzeiten toleriert werden können. Einzelne Redundanz kann mit einem SSD-gestützten Pool akzeptabel sein, jedoch.

Daher meine Empfehlung: Wenn Sie drei Laufwerke ZFS wollen,und Redundanz wollen, richten Sie sie als Drei-Wege-Spiegel vdev. Wenn Sie RAID-Z2 wollen, verwenden Sie mindestens vier Laufwerke, aber denken Sie daran, dass Sie die Anzahl der Laufwerke im vdev zum Zeitpunkt der vdev-Erstellung sperren. Derzeit besteht die einzige Möglichkeit, einen ZFS-Pool zu erweitern, darin, zusätzliche vdevs hinzuzufügen oder die Größe der Geräte zu erhöhen, aus denen ein vdev besteht, oder einen neuen Pool zu erstellen und die Daten zu übertragen. Sie können nicht erhöhen Sie die Speicherkapazität des Pools, indem Sie einem vorhandenen vdev Geräte hinzufügen.

Sie müssen auchstellen Sie sicher, dass Sie Backups halten. Dies ist bei ZFS doppelt wichtig, da die Wiederherstellung von ZFS nach einem tatsächlichen Fehler, der den Pool unter seine Redundanzschwelle bringt, sehr schwer ist. ZFS hat ein sehr komplexes Format auf der Festplatte, das mir kein allgemeines Verständnis für standardmäßige Datenwiederherstellungssoftware kennt, selbst wenn Sie die meisten Daten von den Festplatten lesen können, wenn ZFS kann es nicht herausfinden, dann können Sie sehr gut kein Glück haben, wenn Sie nicht bereit sind, Zehntausende von Dollar für das Problem auszugeben. Sicherungen sind billiger.

Als Alternative zum Drei-Wege-Spiegel könnten Sie auch einen Zwei-Wege-Spiegel mit einem Ersatz betreiben, aber die meiste Zeit und sicherlich in der von Ihnen beschriebenen Situation gibt es keinen Vorteil und keinen Nachteil dafür .

Nebenbei bemerkt, bezogen auf das Problem der Wiederherstellung, sollten Sie sehr stark erwägen Sie, ECC-RAM in jedem System zu verwenden, auf dem ein Selbstreparaturdateisystem mit Prüfsummen ausgeführt wird, einschließlich ZFS. Andere stimmen zu.

Zeigt, dass RAID-Z2 mit drei Geräten möglich ist (dies ist ZFS Unter Linux 0.6.4). Beachten Sie, dass nach dem harten Entfernen von zwei der drei Sicherungsdateien "Genügend Replikate vorhanden sind, damit der Pool weiterhin in einem verschlechterten Zustand funktioniert."und der vdev ist DEGRADED, nicht FAULTED.

# truncate -s 1G /root/d1 /root/d2 /root/d3
# zpool create tank raidz2 /root/d1 /root/d2 /root/d3
# zpool status tank
  pool: tank
 state: ONLINE
  scan: none requested
config:

        NAME          STATE     READ WRITE CKSUM
        tank          ONLINE       0     0     0
          raidz2-0    ONLINE       0     0     0
            /root/d1  ONLINE       0     0     0
            /root/d2  ONLINE       0     0     0
            /root/d3  ONLINE       0     0     0

errors: No known data errors
# zpool export tank
# rm /root/d1 /root/d2
# zpool import tank -d /root
# zpool scrub tank
# zpool status tank
  pool: tank
 state: DEGRADED
status: One or more devices could not be opened.  Sufficient replicas exist for
        the pool to continue functioning in a degraded state.
action: Attach the missing device and online it using 'zpool online'.
   see: http://zfsonlinux.org/msg/ZFS-8000-2Q
  scan: scrub repaired 0 in 0h0m with 0 errors on Tue Mar 29 11:00:23 2016
config:

        NAME                      STATE     READ WRITE CKSUM
        tank                      DEGRADED     0     0     0
          raidz2-0                DEGRADED     0     0     0
            18130982121682915530  UNAVAIL      0     0     0  was /root/d1
            18289483070703159278  UNAVAIL      0     0     0  was /root/d2
            /root/d3              ONLINE       0     0     0

errors: No known data errors
# 
 18
Author: user,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2017-04-13 12:14:40