Unterscheidet sich die Berechnung von IOPS für ZFS RAIDZ von der Berechnung von IOPS für RAID5 und RAID6?

13

Bei der Berechnung von IOPS für herkömmliche RAID-Arrays kann die folgende Formel verwendet werden (Entlehnt aus dem Abrufen des IOPS v1.3 unter Symantec Connect):

Ieffective = (n * Isingle) / (READ% + (F * WRITE%))

Wo:

  • Ieffective ist die effektive Anzahl von IOPS
  • Isingle ist die durchschnittliche IOPS eines einzelnen Laufwerks .
  • n ist die Anzahl der Festplatten im Array
  • READ% ist der Anteil der Lesevorgänge, die bei der Datenträgerprofilerstellung vorgenommen wurden
  • WRITE% ist der Anteil der Schreibvorgänge, die bei der Datenträgerprofilerstellung vorgenommen wurden
  • F ist die RAID-Schreibstrafe :

    RAID Level      Write Penalty
    RAID-0          1
    RAID-1          2
    RAID-5          4
    RAID-6          6
    RAID-10         2
    RAID-DP         2
    

Die Formel ist im Wesentlichen eine Funktion von:

  • IOPS für jedes einzelne Laufwerk im Array
  • Die Anzahl der Festplatten. Mehr Festplatten bedeuten mehr IOPS
  • Die RAID-Strafe für jeden Schreibvorgang.
    • RAID5 und RAID6 erfordern mehr als 4 Festplattenoperationen für jeden Schreibvorgang. Die Steuerung muss den Block lesen und dann die Paritätsdaten lesen (zwei Operationen), die neuen Paritätsdaten berechnen und dann den Paritätsblock aktualisieren und den Datenblock aktualisieren (zwei weitere Operationen). RAID6 verfügt über zwei Paritätsblöcke und erfordert daher drei Lese- und drei Schreibvorgänge. RAID5- und RAID6-Arrays sind daher weniger IOPS-fähig als RAID1.
    • Für RAID1 und RAID10 sind nur zwei Schreibvorgänge erforderlich, einer für jede Festplatte im Spiegel.

Dies alles liefert eine Schätzung der theoretischen Leistung. Verschiedene Controller und RAID-Methoden haben Tricks, um dies zu beschleunigen.

ZFSs Äquivalent zu RAID5 und RAID6 ist RAIDZ und RAIDZ2. Kann ich bei der Berechnung von IOPS für RAIDZ-Arrays dieselbe Formel verwenden, die ich für RAID5 und RAID6 verwende, oder verfügt ZFS über spezielle Tricks, um die Anzahl der für Schreibvorgänge erforderlichen Vorgänge zu verringern.

Gibt es eine andere Formel für die Berechnung von IOPS für RAIDZ-Arrays?

Stefan Lasiewski
quelle
1
Gute Frage. Ich freue mich darauf, Antworten zu lesen ...
EEAA
1
Iops sind mythisch, aber dieses Dokument kann einige Einblicke geben. info.nexenta.com/rs/nexenta/images/…
Tony
IOPS mag theoretisch sein, kann jedoch eine Erklärung dafür liefern, warum ein RAID10-Array bei denselben Laufwerken in der Regel ein RAID5-Array übertrifft.
Stefan Lasiewski
Ein bemerkenswertes Zitat aus dem Nexenta-Dokument: "In einer RAIDZ-2-Konfiguration muss ein einzelner E / A-Vorgang, der in das VDEV eingeht, aufgeteilt und auf alle Datenplatten geschrieben werden. Anschließend muss die Parität berechnet und auf die Festplatte geschrieben werden E / A konnte abgeschlossen werden. Wenn alle Datenträger dieselbe Latenz haben, werden alle Vorgänge an den Datenträgern gleichzeitig abgeschlossen, wodurch die E / A an das VDEV mit der Geschwindigkeit eines Datenträgers abgeschlossen wird . Wenn ein langsamer Datenträger mit hoher Latenz vorliegt Beim RAIDZ-2-VDEV wird der E / A-Vorgang zum VDEV erst abgeschlossen, wenn der E / A-Vorgang auf dem langsamsten Laufwerk abgeschlossen ist. "
Stefan Lasiewski

Antworten:

13

Das ist einfacher zu beantworten ...

Hier wird alles beschrieben: ZFS-RAID-Empfehlungen: Speicherplatz, Leistung und MTTDL sowie ein genauerer Blick auf ZFS, Vdevs und Leistung

  • Mit RAIDZ mit einem Paritätslaufwerk erhalten Sie die IOPS-Leistung einer einzelnen Festplatte, aber die n-1-fache Gesamtbandbreite einer einzelnen Festplatte.

Wenn Sie also skalieren müssen, skalieren Sie mit der Anzahl der RAIDZ-vdevs ... ZB hätten 4 Gruppen von RAIDZ mit 4 Festplatten ein größeres IOPS-Potenzial als 2 Gruppen von RAIDZ mit 8 Festplatten.

Überraschend, richtig?

Bei meinen ZFS-Installationen verwende ich normalerweise gestreifte Spiegel (RAID 1 + 0). Das gleiche Konzept gilt. Mehr gespiegelte Paare == bessere Leistung.

In ZFS können Sie nur in Einheiten eines vollständigen vdev erweitern. Während die Erweiterung eines RAID 1 + 0-Satzes das Hinzufügen von mehr Paaren bedeutet, bedeutet das Gleiche für RAIDZ-Sätze das Hinzufügen von mehr RAIDZ-Gruppen gleicher Zusammensetzung.

ewwhite
quelle
Guter Artikel, aber es ist so alt, dass der Linkvergleich von ZFS RAID1 zu RAID5 ("Single Parity Model Results" und "Double Parity Model Results" fehlen). Ratten!
Stefan Lasiewski
RAIDZ mit einem Paritätslaufwerk bietet die IOPS-Leistung einer einzelnen Festplatte. Ist dies interessant, ein konstanter Wert, unabhängig von den Prozentsätzen für Lesen und Schreiben? Zum Beispiel variiert die Leistung von RAID5 stark in Abhängigkeit vom Prozentsatz der Lese- und Schreibvorgänge. Ein 3-Platten-15K-Array kann je nach Lese- / Schreibverhältnis zwischen 130IOPS und 500IOPS variieren. 50% Lese- und 50% Schreibvorgänge führen zu einer höheren IOPS-Leistung als eine einzelne Festplatte. Die Verwendung von mehr als 3 Spindeln verbessert die Leistung im Vergleich zu einer Spindel, richtig?
Stefan Lasiewski
Ich denke nur an die vdev-Skalierung und dass die Leistung beim Schreiben gleich 1 Platte ist, unabhängig von der Zusammensetzung dieses vdev; Spiegel, RAIDZ, RAIDZ2 usw. Die Festplatten in den vdevs dienen dazu, Ihre Kapazität zu steigern. Die Anzahl der vdevs wird verwendet, um die Striping-Leistung zu steigern. Lesevorgänge von den vdevs werden mit der Anzahl der Laufwerke skaliert.
Ewwhite
1
Ich habe viel Erfahrung damit und kann Ihnen bestätigen, dass RAIDZ in den meisten Situationen NICHT die gleiche Anzahl von Festplatten übertrifft, die in ein herkömmliches RAID5 / 6-äquivalentes Array geworfen werden. Bei den meisten herkömmlichen RAID5 / 6-Arrays wird die IOPS-Leistung gesteigert (die fast alle interessieren, auch wenn sie dies nicht glauben), wenn Sie dem RAID-Set Spindles hinzufügen, während dies bei ZFS nicht der Fall ist. Im Gegenzug verliert ZFS Ihre Daten nicht und leidet nicht unter dem Problem der RAID-Schreiblücke. Dazu kommen ganze Schnappschüsse, Klone, Komprimierung und so weiter. Und der ARC. Und .. Sie bekommen die Idee.
Nex7
2
Ich möchte nur klarstellen, dass ZFS von Natur aus keine Performance-Kriege gewinnen wird. Sie finden alternative Dateisysteme und Volume-Manager (oder Kombinationen), die ZFS auf derselben Hardware übertreffen können (z. B. ext4 und eine Adaptec-RAID-Karte). Die einzige Ausnahme, die mir bekannt ist, sind leicht zwischengespeicherte Lesevorgänge, bei denen der ARC ZFS häufig die meisten Alternativen bietet. Aber wenn es ums Schreiben geht? Nein. Der Aufwand, den ZFS für die Datenintegrität und den Umgang mit Schreibvorgängen aufwendet, wird fast nie zu Geschwindigkeitswettbewerben führen. Die Kompromisse sind Integrität und Funktionsumfang.
Nex7