Ist ein großes RAID-Z-Array genauso schlecht wie ein großes RAID-5-Array?

11

Ich habe lange davon gehört, wie schlecht eine Idee für ein großes (> 5 TB?) RAID-5-Array ist, einfach weil ein hohes Risiko besteht, dass ein anderes Laufwerk ausfällt.

Hat RAID-Z1 es geschafft, dies für ein Array beliebiger Größe zu beheben (wenn Sie unbedingt eine Zahl benötigen, ziehen Sie 4x2 TB oder 5x2 TB in Betracht)? Vielleicht eine sicherere Möglichkeit, die Daten erneut zu replizieren, die nicht auf allen Laufwerken so intensiv sind?

TheLQ
quelle

Antworten:

8

Selbst wenn man bedenkt, was eine der anderen hier dargelegten Antworten ist, nämlich dass ZFS nur mit tatsächlich verwendeten Blöcken und nicht mit leerem Raum funktioniert, ist es immer noch gefährlich, ein großes RAIDZ1-vdev zu erstellen. Die meisten Pools werden zu mindestens 30-50% ausgelastet, viele erreichen das empfohlene Maximum von 80% (einige gehen darüber hinaus, ich empfehle dringend, dass Sie dies aus Leistungsgründen überhaupt nicht tun), sodass nur ZFS-Angebote vorliegen mit gebrauchten Blöcken ist kein großer Gewinn. Bei einigen anderen Antworten klingt es so, als ob eine schlechte Lektüre das Problem verursacht. Das ist nicht so. Ein bisschen Fäulnis in einem Block ist nicht das, was Sie hier verarschen wird. Normalerweise ist es eine andere Festplatte, die einfach nur schlecht läuft, während der Resilver von der ersten Festplatte, die schlecht wird, immer noch läuft und Sie tötet. Und auf 3-TB-Festplatten Bei einem großen Raidz1 kann es Tage oder sogar Wochen dauern Um auf eine neue Festplatte zu übertragen, ist Ihre Chance, dass dies geschieht, nicht unerheblich.

Meine persönliche Empfehlung an Kunden ist, RAIDZ1 (RAID5-Äquivalent) niemals mit Festplatten mit> 750 GB zu verwenden, um viele potenzielle Unannehmlichkeiten zu vermeiden. Ich war damit einverstanden, dass sie diese Regel aus anderen Gründen brechen (das System hat irgendwo anders ein Backup, die Daten sind nicht so wichtig usw.), aber normalerweise gebe ich mein Bestes, um RAIDZ2 als Mindestoption mit Large zu verwenden Festplatten.

Aus einer Reihe von Gründen empfehle ich normalerweise, nicht mehr als 8-12 Festplatten in einem raidz2-Streifen oder 11-15 Festplatten in einem raidz3-Streifen zu verwenden. Sie sollten sich mit 3-TB-Festplatten am unteren Ende dieser Bereiche befinden und am oberen Ende dieser Bereiche mit 1-TB-Festplatten möglicherweise in Ordnung sein. Dass dies Ihnen hilft, sich von der Idee fernzuhalten, dass mehr Festplatten ausfallen, während ein Resilver ausgeführt wird, ist nur einer dieser Gründe, aber ein großer.

Wenn Sie nach vernünftigen Faustregeln suchen (Bearbeiten 10.04.15 - Ich habe diese Regeln nur für sich drehende Datenträger geschrieben -, weil sie auch logisch sind [warum sollten Sie weniger als 3 Datenträger in einem Raidz1 ausführen]? macht auch für SSD-Pools Sinn, aber All-SSD-Pools waren für mich kein Problem, als ich diese aufschrieb):

  • Verwenden Sie raidz1 überhaupt nicht auf Festplatten mit> 750 GB.
  • Verwenden Sie nicht weniger als 3 oder mehr als 7 Festplatten auf einem raidz1.
  • Wenn Sie an die Verwendung von raidz1-vdevs mit drei Festplatten denken, sollten Sie stattdessen vdevs mit 3-Wege-Spiegeln in Betracht ziehen.
  • Verwenden Sie nicht weniger als 6 oder mehr als 12 Festplatten auf einem raidz2.
  • Verwenden Sie nicht weniger als 7 oder mehr als 15 Festplatten auf einem raidz3.
  • Denken Sie immer daran, dass im Gegensatz zu herkömmlichen RAID-Arrays, bei denen die Anzahl der Festplatten die IOPS erhöht, in ZFS die Anzahl der VDEVS erhöht wird. Wenn Sie also vdevs mit kürzeren Streifen verwenden, wird das Pool-IOPS-Potenzial verbessert.
Nex7
quelle
Würden Sie bei Änderungen der Festplattengröße und -leistung immer noch die gleiche Faustregel empfehlen? (2014)
Lord Loh.
Irgendeine Quelle oder Motivation für die Faustregeln?
Kenny Evitt
Die Quelle ist die Erfahrung von mir und meinen Mitarbeitern in Tausenden von ZFS-Bereitstellungen bei Nexenta. Was ein Update betrifft - die Regeln stehen (10.04.15), es hat sich nichts geändert, was mich dazu bringt, die Aufzählungspunkte zu bearbeiten, obwohl ich sagen würde, dass ich diese Regeln ohne Berücksichtigung von SSDs geschrieben habe. Die Regeln sind für SSDs nicht unbedingt dieselben, abhängig von den Umständen. Mit ihnen haben Sie auch einige andere Überlegungen, wie zum Beispiel HBA-Engpässe.
Nex7
1
@ Nex7, was ist die Logik dafür in deinem Blog-Artikel? "8. RAIDZ - Anzahl der geraden / ungeraden Festplatten: Versuchen Sie (und nicht sehr schwer), die Anzahl der Datenfestplatten in einem RAIDZ-VDEV auf einer geraden Zahl zu halten"
Costin Gușă
Es ist wichtig, sich an die Anwendungsfälle zu erinnern. Hier bei Serverfault konzentrieren wir uns auf professionelle / geschäftliche Anwendungen, sodass Ihre Antwort richtig ist. Für diejenigen, die Consumer-Installationen durchführen (und möglicherweise sogar eingeschränkte Geschäftsanwendungen?), Überlegen Sie jedoch, wie schlimm es wäre, einen einzelnen Block aus einer einzelnen Datei (möglicherweise ein paar) aus Ihrem Array zu verlieren, wenn während eines Zeitraums ein Fehler auftritt wieder aufbauen. Keine große Sache? Dann könnte RAIDZ1 in Ordnung sein.
Dan Pritts
11

Ist RAID-Z so schlecht wie R5, nein. Ist es so gut wie R1 oder R10, normalerweise nein.

RAID-Z erkennt leere Stellen auf den Laufwerken, R5 nicht. RAID-Z muss also nur die Bereiche mit Daten lesen, um die fehlende Festplatte wiederherzustellen. Außerdem werden Daten nicht unbedingt auf alle Festplatten verteilt. Eine sehr kleine Datei befindet sich möglicherweise nur auf einer einzelnen Festplatte, die Parität auf einer anderen Festplatte. Aus diesem Grund muss RAID-5 genau so viele Daten lesen wie der auf dem Array verwendete Speicherplatz (wenn 1 MB auf einem 5-TB-Array verwendet wird, muss bei einer Neuerstellung nur 1 MB gelesen werden).

Wenn der größte Teil eines großen Arrays voll ist, müssen die meisten Daten von allen Festplatten gelesen werden. Im Vergleich zu R1 oder R10, bei denen die Daten nur von genau einer Festplatte abgerufen werden müssen (pro ausgefallener Festplatte; wenn mehrere Festplatten nur in Situationen ausfallen, in denen das Array auch noch wiederhergestellt werden kann).

Was Sie sich Sorgen machen, ist die Tatsache, dass bei jedem Sektorlesevorgang die Möglichkeit besteht, dass Sie einen Sektor finden, der nicht richtig geschrieben oder nicht mehr lesbar ist. Für ein typisches Laufwerk ist dies heutzutage etwa 1x10 ^ -16 (nicht alle Laufwerke sind gleich, schauen Sie also in den technischen Daten Ihrer Laufwerke nach, um deren Bewertung herauszufinden). Dies ist unglaublich selten, kommt aber ungefähr einmal pro 1PB heraus; Bei einem 10-TB-Array besteht eine Wahrscheinlichkeit von 1%, dass es sich bei Ihrem Array um Toast handelt, und Sie wissen es erst, wenn Sie versuchen, es wiederherzustellen.

ZFS hilft auch dabei, diese Chance zu verringern, da die meisten unlesbaren Sektoren erkennbar sind, bevor Sie versuchen, Ihr Array neu zu erstellen. Wenn Sie Ihr ZFS-Array regelmäßig scrubben, erkennt der Scrub-Vorgang diese Fehler und umgeht sie (oder benachrichtigt Sie, damit Sie die Festplatte ersetzen können, wenn Sie so rollen). Sie empfehlen, Festplatten für Unternehmen etwa ein- bis viermal im Monat zu schrubben. und Consumer-Laufwerke mindestens einmal pro Woche oder mehr.

Chris S.
quelle
3

Einige der Vorteile von RAID-Z gegenüber herkömmlichem RAID-5 bestehen darin, dass keine spezielle Hardware erforderlich und zuverlässiger ist, indem RAID-5-Schreiblöcher vermieden werden.

Sowohl RAID-Z als auch RAID-5 erleiden jedoch nicht mehr als einen Festplattenfehler.

Wenn Sie zwei Festplattenfehler mit ZFS überleben möchten, können Sie RAIDZ2 und drei Festplattenfehler RAIDZ3 verwenden .

jlliagre
quelle
1
+1 Außerdem ermöglicht die Perblock-Prüfsumme ZFS, falls es eine Beschädigung in einem Array findet, die betroffenen Dateien herauszusuchen. Die meisten R5-HBAs markieren einfach das gesamte Volume als beschädigt oder melden dem Betriebssystem, dass ein Sektor beschädigt ist. In beiden Fällen kann der HBA nicht erkennen, welche Festplatte in einem Beschädigungsszenario falsch ist.
Chris S
Weitere Diskussion über die Behandlung von ZFS-Resilverfehlern: ZFS Endless Resilvering
ein CVn