Alternativen zu RAID: Erasure Codes und Multi-Copy-Mirroring
RAID ist aufgrund wachsender Datenmengen immer weniger als Speichersystem geeignet. Alternativen sind Multi-Copy-Mirroring (MCM) und Erasure Codes (EC).
Festplatten, Solid State Disks (SSDs) und hybride Laufwerke haben eine lästige Gemeinsamkeit: Sie alle können ausfallen. Eine einfache Rechnung zeigt schon, dass mit der wachsenden Anzahl eingesetzter Datenträgern auch die Häufigkeit der Ausfälle steigt. Gleichzeitig wächst der Datenberg weiter, die Kapazitäten der Datenträger halten aber nicht mit. Dennoch kommen immer mehr Massenspeicher zum Einsatz. Diese ausreichend abzusichern, kann mit RAID-Systemen eine echte Herausforderung für Administratoren sein. Dieser Beitrag erläutert, warum RAID langsam aber sicher ausgedient hat. Es existieren aber praktikable Alternativen: Multi-Copy-Mirroring und Erasure Codes.
Das Problem mit RAID
RAID war in den letzten 25 Jahren die primäre Methode, um Daten auf Festplatten zu schützen. Die Technologie verhindert Datenverlust im Falle eines Festplatten-Ausfalls. Dazu werden Daten innerhalb eines RAID-Verbundes auf verschiedene Datenträger verteilt, die unterschiedlichen Redundanz-Stufen bieten. Man kann auf die Daten weiterhin zugreifen, auch wenn eine oder mehrere Festplatten ausfallen. Zwischen Performance, Ausfallsicherheit und Kosten gibt es allerdings immer einen Kompromiss. RAID 5 ist zum Beispiel kostengünstiger als RAID 6 und bringt weniger Overhead mit sich. (Der Overhead bei RAID 5 beträgt zirka 20 bis 25 Prozent. RAID 6 hat etwa 25 bis 30 Prozent Overhead). RAID 5 bietet zudem eine bessere Performance. Allerdings darf nur eine Festplatte zur selben Zeit ausfallen. Außerdem kann es nur mit einer nicht behebbaren BER (Bit Error Rate oder Bit-Fehlerrate) umgehen. Bei RAID 6 dürfen zwei Datenträger gleichzeitig versagen und es übersteht zwei nicht wiederherstellbare Bit-Fehlerraten. Sobald die zulässige Zahl gleichzeitiger Festplatten-Ausfällen oder nicht wiederherstellbaren Bit-Fehlerraten überstiegen wird, haben Sie mit Datenverlust zu kämpfen.
RAID baut einen ausgefallenen Datenträger wieder paritätisch auf. Dabei verwendet die Technologie jedes Bit der im RAID-Verbund befindlichen Festplatten. Der Wiederaufbau einer Festplatte ist hinsichtlich I/O allerdings ein aufwendiger Prozess. Er benötigt sowohl Zeit als auch Speicherressourcen. Je größer der Massenspeicher ist, desto länger dauert der Wiederaufbau. Der Vorgang kann bei einem Datenträger mit vier Terabyte viel Zeit in Anspruch nehmen. Mit Minuten oder Stunden sollten Sie nicht rechnen. Die Geschwindigkeit des Systems spielt bei der Rebuild-Zeit eine entsprechende Rolle. Während dieser Zeit besteht das Risiko, dass eine weitere Festplatte den Geist aufgibt oder nicht wiederherstellbare Bit-Fehlerraten auftreten. Weiterhin ist die Performance des Storage-Systems langsamer.
In der Regel deklarieren Storage-Administratoren die Wiederherstellungs-Prozesse von RAID als Hintergrund-Aufgabe. Damit wird der Performance-Verlust gemindert. Allerdings verlängert sich der Rebuild-Prozess und somit auch das Risiko-Fenster. Festplatten haben die ärgerliche Eigenschaft, gebündelt auszufallen. Das Risiko eines weiteren Ausfalls innerhalb eines RAID-Verbundes ist ungefähr zwei bis zehn Mal so hoch im Vergleich zum normalen Betrieb. Hier kommt es auf die Kapazitäten und Anzahl der Festplatten an. Weiterhin wird das Risiko beeinflusst, ob die Wiederherstellungs-Prozesse als primäre oder sekundäre Aufgabe definiert sind. Das Risiko einer dritten streikenden Festplatte erhöht sich um weitere zwei bis zehn Mal.
Jeder weitere simultane Ausfall zehrt zusätzlich an der Leistung des Storage-Controllers. Weitere Ausfälle ziehen wiederum die erhöhte Möglichkeit weiterer streikender Festplatten nach sich. IT-Abteilungen berichten dabei vermehrt von einem Anstieg an nicht wiederherstellbaren Festplattenausfällen. In diesem Fall müssen Daten von Snapshot- oder Backup-Systemen wiederherstellt werden.
Der häufigste Workaround ist Replikation, was die Kosten des Prozesses signifikant in die Höhe treibt. Die Ausfallsicherheit von Daten ist nur geringfügig besser. Zum Beispiel würde RAID 6 mit 25 Prozent Overhead weitere 125 Prozent an Overhead für Replikation bedeuten. Somit würden Sie für 100 Terabyte Daten Speicher im Wert von 250 Terabyte benötigen. Bei kleinen Systemen mag das funktionieren. Allerdings sind Ausgaben und Betriebskosten für hunderte von Terabyte, Petabyte oder Exabyte nicht tragbar.
Multi-Copy-Mirroring und Erasure Codes
Multi-Copy-Mirroring (MCM) und Erasure Codes (ECs) sind zwei Alternativen zu RAID-Systemen. Viele Hersteller preisen diese Technologien in ihren neuesten Produkten oder Versionen an.
MCM ersetzt RAID, indem es mehrere übereinstimmende Kopien auf verschiedenen Datenträgern in unterschiedlichen Schichten, Prozessoren und Netzknoten bereithält. Oftmals ist es mit einer Art „autonomer Selbstheilung“ gebündelt, die kontinuierlich den Zustand der Daten prüft. Findet es dabei beschädigte oder unerreichbare Daten, wird eine Kopie verwendet. Eine weitere Kopie wird sofort angelegt. Die Anzahl der vorgehaltenen und gespiegelten Kopien bestimmt der Anwender in der Regel über die Konfiguration. MCM ist in OpenStack Swift Object Storage und auch im Hadoop Distributed File System eingebaut. RAID ist damit nicht mehr notwendig. Die Technologie überlebt zudem mehrere gleichzeitig ausfallende Festplatten und nicht wiederherstellbare Bit-Fehlerraten. Natürlich benötigt jede Kopie der Daten zusätzliche 100 Prozent des benutzbaren Storage. Wollen Sie also vier gleichzeitige Ausfälle oder nicht wiederherstellbare Bit-Fehlerraten abdecken, brauchen Sie 500 Prozent benutzbaren Speicher. MCM kann also schnell teuer werden.
Erasure Codes oder Forward Error Correction (Vorwärtsfehlerkorrektur) ist ebenfalls ein Ersatz für RAID und mausert sich derzeit zur Nummer Eins in Sachen Beständigkeit. Das gilt vor allen Dingen für Szenarien mit einer großen Anzahl an Daten. Die Codes verwenden Algorithmen, die Daten in n Teilmengen oder Informationsblöcke zerteilen. Diese Blöcke werden dann auf mehrere Datenträger, Schubladen oder Storage-Knoten verteilt. Die Teilmengen lassen sich auch auf separate Speicherorte verteilen.
Um die Daten lesen zu können, müssen Sie eine Teilmenge s (Breite / Width) der kompletten Blöcke n auswerten. Die Breite für das Erstellen der Daten ist direkt mit dem benötigten Ausfall-Niveau und der kompletten Anzahl der simultan ausfallenden Datenträger oder nicht wiederherstellbaren Bit-Fehlerraten verbunden. Ein typisches Erasure Coding hat einen Umfang von 16 und eine Breite von Zwölf. Damit sind zum Beispiel vier gleichzeitig ausfallende Festplatte, nicht wiederherstellbare Bit-Fehlerraten oder nicht funktionierende Storage-Knoten abgedeckt. Das kostet lediglich 33 Prozent Overhead. Für ein Petabyte Daten brauchen Sie 1,33 PByte benutzbaren Speicher. Diese Methode ist wesentlich kostengünstiger als Multi-Copy-Mirroring.
Ähnlich wie bei MCM haben auch ECs einen autonomen Selbstheilungsmechanismus mit automatischen Prüfroutinen. Sobald ein Block nicht lesbar oder zugreifbar ist, wird an einer anderen Stelle ein neuer kreiert. Das wirkt sich natürlich auf die Robustheit der Daten aus. Diese überleben mit hoher Wahrscheinlichkeit verschiedene Storage-Systeme.
Wegen Problemen mit der Latenzzeit sollten ECs nicht in Umgebungen eingesetzt werden, in denen hohe Performance ausschlaggebend ist. Kleine Datensätze sind auch problematisch, weil sich diese nicht effizient genug in Blöcke unterteilen lassen. Dafür eignen sich Erasure Codes ausgezeichnet für große Datensätze, große Datenmengen und Daten auf die weniger häufig zugegriffen wird.
Erasure Codes findet man heutzutage am häufigsten in Object-Storage-Systemen zum Beispiel von Amplidata, Caringo, Cleversafe, DataDirect Networks, EMC, NEC und Scality.
Über den Autor: Marc Staimer ist Gründer und Senior-Analyst bei Dragon Slayer Consulting. Er hat 15 Jahre Erfahrung und seine Spezialgebiete sind strategische Planung, Produkt- und Markt-Entwicklung. Sie erreichen Marc unter [email protected].