Mit RAID, ZFS, Replica oder Erasure Coding zur richtigen Kapazität - Starline Computer: Storage und Server Lösungen von erfahrenen Experten

Mehr Netto vom Brutto

Mit RAID, ZFS, Replica oder Erasure Coding zur richtigen Kapazität

Speicher-Kapazitäten von Datenträger-Pools: RAID, ZFS, Erasure Coding oder Replica

Wir zeigen Ihnen hier, wie Sie die Nettokapazität Ihres Systems auf die Schnelle überschlagen können und wie die Technik funktioniert.

Wir haben hier für Sie die gebräuchlichen Schutzmechnanismen zusammengestellt, die bei unseren Storage-Systemen, Servern beziehungsweise Clustern zum Einsatz kommen. Vorab müssen wir für die verwendeten Formeln, die Sie unter jedem Beitrag finden, noch die entsprechenden Variablen deklarieren. Die Formelbuchstaben bleiben jeweils immer dieselben.

Verwendete Variablen

Laufwerksanzahl      n
Laufwerkskapazität     K
Nettokapazität eines Laufwerkverbunds     N

 

Bei Replica und Erasure Coding kommen weitere Variablen hinzu. 
Die Laufwerksanzahl bezieht sich bei diesen Systemen jeweils auf ein einzelnes Servergehäuse.

Anzahl der Server     Sn
Rohdaten     R
Paritäten     P

RAID-Modi

Ein RAID-Controller ist prinzipiell ein Rechner, der darauf spezialisiert ist, Daten so sparsam wie möglich mit einer vorher definierten Redundanz abzuspeichern. Das erledigt er entweder indem er Paritäten (XOR-Verknüpfung) berechnet oder schlicht Daten auf mehrere Laufwerke kopiert und damit spiegelt. So oder so kann ein RAID-Controller daraus wieder den Original-Datenbestand herstellen.

Wir, als Veteranen im RAID-Markt, liefern sowohl kleine und große Systeme mit eingebautem Controller, externen RAID-Controllern (so genannte RAID-Heads) in separaten Gehäusen als auch PCIe-Steckkarten für den Einbau in einen Server.

Je nach Schutzbedürfnis beziehungsweise Wichtigkeit kann der Admin über die WebGUI, der Benutzeroberfläche des Controllers, den gewünschten RAID-Level auswählen und die nötigen RAID-Sets anlegen.

RAID0

Es fängt gleich mal mit einem Widerspruch an, denn RAID0 ist im Grunde genommen kein Datenschützer – im Gegenteil: Die Ausfallwahrscheinlichkeit des Verbundes erhöht sich durch dieses auch Striping genannte Verfahren sogar. Schließlich gehen die Daten verloren, wenn auch nur einer der Datenträger ausfällt. Dieser Modus bringt lediglich Performance-Gewinne, da der Controller die Laufwerke zu einem logischen Volume zusammenfasst und sie so parallel ansteuert.

Kapazitäten: Die Laufwerksgrößen addieren sich.

Formel: N = n x K

RAID1

In der einfachsten und auch kostspieligsten Variante kopiert der RAID-Controller gleichzeitig die Daten auf zwei oder mehr gleich große Laufwerke. Die beteiligten Datenträger werden also lediglich gespiegelt und der Datenbestand liegt in geklonter Form auf allen Laufwerken vor.

Kapazitäten: Es bleibt von den Datenträgern die Kapazität eines Laufwerks übrig.

Formel: N = K = (n x K) / n

RAID10

RAID10 ist eine Kombination aus den beiden vorgenannten Modi. Der Controller spiegelt zunächst je zwei Festplatten aufeinander, so dass eine Eins-zu-Eins-Kopie entsteht. Die so geklonten Laufwerke werden wiederum zugunsten der Performance zu einem virtuellen Laufwerk im RAID-Level 0 zusammengefasst. Aufgrund der Spiegelung wird immer eine gerade Anzahl an Datenträgern benötigt.

Kapazitäten: Es bleibt von den Datenträgern die Hälfte der Kapazität übrig.

Formel: N = (n x K) / 2

RAID1E

Eine Sonderform stellt RAID1E dar, da sie auch mit einer ungeraden Anzahl von Laufwerken realisiert werden kann. Die Datenblöcke werden dazu gleichmäßig auf die Laufwerke verteilt. Beispiel: Block 1 wird auf HDD1 und HDD2 geschrieben, Block 2 auf HDD2 und HDD3, Block 3 auf HDD1 und HDD3 und so weiter.

Kapazitäten: Hier reduziert sich die Kapazität um die Hälfte.

Formel: N = (n x K) / 2

RAID5 (RAID3, RAID4)

RAID3 und RAID4 werden heutzutage kaum mehr eingesetzt, da RAID5 diese Aufgabe sicherer und effektiver erledigt. Vom Prinzip her arbeiten sie aber ähnlich: Bei vier beteiligten Festplatten beispielsweise werden auf drei davon die Daten gleichmäßig verteilt. Auf der vierten Platte indes speichert der Controller errechnete Paritäten. Aus diesen Paritäte beziehungsweise Fragmenten kann der Controller wieder den originalen Datenbestand rekonstruieren, falls einer der Datenträger ausfällt. Bei RAID3 und RAID4 speichert der Controller die Paritäten auf ein und demselben Datenträger (byte- beziehungsweise blockweise). Dadurch wird dieses Laufwerk besonders stark beansprucht und unterliegt einer höheren Ausfallwahrscheinlichkeit. Deshalb wird in der Regel RAID5 vorgezogen, da hier die Paritäten verteilt und die Datenträger gleichmäßig beansprucht werden.

Kapazitäten: Die Kapazität reduziert sich um die Größe eines Datenträgers im Verbund.

Formel: N = (n – 1) x K

RAID6

RAID6 arbeitet ähnlich wie RAID5, nutzt aber zum Speichern der Paritäten zwei Datenträger im Verbund. Vorteil: Wenn bereits einer davon ausgefallen ist und das defekte Laufwerk getauscht wurde, wird auch der Zeitraum indem der Rebuild stattfindet mit abgesichert. (Als Rebuild wird die Rekonstruktion des verlorengegangenen Datenbestandes bezeichnet.) Schließlich kann je nach Größe und Datenbestand ein Rebuild mitunter mehrere Tage dauern.

Kapazitäten: Die Kapazität reduziert sich um die Größe zweier Datenträger im Verbund.

Formel: N = (n – 2) x K

RAID50 (RAID30, RAID40)

RAID50 ist wiederrum eine Kombination zweier Modi: Zwei RAID5-Sets werden dabei durch Striping via RAID0 zu einem virtuellen Datenträger zusammengefasst. Für RAID50 werden also mindestens sechs Datenträger benötigt, wobei in jedem Trio jeweils eine ausfallen darf, ohne den Datenbestand zu gefährden.

Kapazitäten: Die Kapazität reduziert sich um zwei Festplatten.

Formel: N = (n – 2) x K 
(Wobei n gerade sein muss)

RAID60

RAID60 bildet wie RAID50 eine Kombination der RAID-Level. Der einzige Unterschied: In jedem RAID6 können zwei Datenträger ausfallen.

Kapazitäten: Es muss die Kapazität von vier Datenträgern (jeweils zwei pro RAID6) vom Gesamtvolumen abgezogen werden.

Formel: N = (n – 4) x K
(Wobei n gerade sein muss)

 

Controller mit diesen RAID-Modi

Komplettsysteme, die RAID beherrschen

ZFS-Dateisystem

Unter ZFS ist die Kapazitätsberechnung etwas kniffliger. Dieses geniale – weil transaktionale – Dateisystem benötigt für seine zuverlässige Arbeit in Servern beziehungsweise im Rechenzentrum für die Metadaten einen gewissen Overhead (3,2 Prozent). Zudem empfehlen die Profis im Pool des Nutzspeichers immer 20 Prozent Platz zu lassen. Der Grund: ZFS braucht zum Ausspielen seiner Stärken – wie beispielsweise der integrierten RAID-Funktion, dem Anlegen von Snapshots (per Copy-On-Write), der automatischen Datenfehlerkorrektur und Deduplikation – stets etwas Reserve im Speicher.

Hinzu kommt, dass ZFS mehrere Optionen beherrscht, die dem Admin – ähnlich wie bei klassischen RAID-Leveln – die Wahl an redundanten Laufwerken lässt.

Wir haben übrigens gleich drei Architekturen im Programm die auf ZFS bauen: Unsere Installationen mit dem Storage-Betriebssystem JovianDSS von Open-E haben ZFS als Kern-Feature integriert. Ebenso bei unseren Servern mit Proxmox VE sowie TrueNAS/FreeNAS – allerdings kommen hier noch weitere Faktoren hinzu, die in diesem Artikel den Rahmen sprengen würden.

RAID-Z1

Im Wesentlichen entspricht RAID-Z1 dem originären RAID5. Es darf im laufenden Betrieb also nur ein Laufwerk ausfallen.

Kapazitäten: Die Summe aller Laufwerke reduziert sich durch Overhead/Reserve und die Größe eines der Laufwerke.

Formel: N = (1 – 0,032) x 0,8 x (n–1) x K

RAID-Z2

Auch RAID-Z2 entspricht einem RAID-Modus: RAID6. Hier werden zwei Laufwerke als Reserve vorgehalten, so dass auch der Rebuild abgesichert ablaufen kann.

Kapazitäten: Die Summe aller Laufwerke reduziert sich durch Overhead/Reserve und die Größe zweier Laufwerke.

Formel: N = (1 – 0,032) x 0,8 x (n–2) x K

 

 

Open-E JovianDSS mit ZFS

TrueNAS/FreeNAS mit ZFS

Proxmox VE mit ZFS

Definierte Replicas

Unsere modernen Ceph-Systeme auf Basis von PetaSAN beziehungsweise über Ambedded Mars 400 arbeiten indes auch mit Vervielfältigung. Heißt: Sie streuen über alle Server im Cluster hinweg Replicas der Daten-Objekte. Hier gilt die Empfehlung neben dem Original-Objekt möglichst zwei Replicas in der Hinterhand zu halten. (Der Begriff ist nicht überall eindeutig definiert. Drei Replicas werden oft auch im Sinne von – ein Original und zwei Kopien – angegeben.)

Wie schon bei ZFS gibt es auch hier eine Schmerzgrenze, die es einzuhalten gilt und dabei in die Berechnung der Gesamtkapazität eingeht: Die Near-Fill-Ratio. Experten empfehlen bei diesen Systemen nicht mehr als 85% des Speichers zu befüllen. Sobald der Cluster also 85% seiner Kapazität erreicht, sollte er in naher Zukunft erweitert werden. Ferner spielt in diesem verteilten Dateisystemen auch die Anzahl der eingebundenen Server eine große Rolle.

Kapazitäten: Die Summe aller Laufwerke auf allen Servern (Sn) reduziert sich durch die Near-Fill-Ratio und wird durch die Anzahl der gewünschten Replicas geteilt.

Formel: N = (K x n x Sn x 0,85) / 3

 

Systeme, die Replicas einsetzen

Erasure Coding

Erasure Coding ist ein bewährtes Vorwärtsfehlerkorrektur-Verfahren (von englisch: forward error correction, FEC), das bei Objekt-Speichern wie unserer PetaSAN-Plattform zum Einsatz kommt. Dabei lassen sich die Objekte durch Hinzufügen von Paritäten über das gesamte Cluster hinweg wiederherstellen. Was an sich recht simpel klingt, ist tatsächlich mit einem vergleichsweise hohen Rechenaufwand verbunden.

Bei Erasure Coding gilt die Devise: Auf jedem Laufwerk darf nur ein einzelner Datenblock eines Objekts gespeichert sein und gleichzeitig ein Node nicht mehr Datenblöcke ansammeln, als ein Objekt verlieren darf.

Dieser Zusammenhang schlägt sich natürlich auch in der Kapazitätsberechnung nieder. Zunächst gilt auch bei Erasure Coding eine Near-Fill-Ratio von 85 Prozent. Ab dieser Grenze sollten weitere Kapazitäten hinzugefügt werden. Ein weiterer Faktor ist das Verhältnis aus Rohdatenbestand (R) sowie der Summe aus Rohdaten und Paritäten (R+P).

Kapazitäten: Anzahl der Server multipliziert mit der Summe aller Laufwerke reduziert sich durch Near-Fill-Ratio und dem erwähnten Rohdaten/Paritäts-Verhältnis.

Formel: N = K x n x Sn x 0,85 x (R / (R + P))

 

Systeme mit Erasure Coding

KB
Konrad Beyer
Technik

Unser Technikchef verfügt über ein umfassendes Wissen in allen Storage- und Server-Themen.