Erasure Coding oder RAID für Festplatten-Rebuilds

Erasure Coding hat sich im Zuge von Objekt-Storage als alternative Data-Protection-Methode entwickelt und ist eine Alternative zu RAID-Systemen.

Seit seiner Einführung in den späten 1980er Jahren ist das RAID-Verfahren die meistgenutzte Methode, Data Protection für Shared-Storage-Systeme und Enterprise-Server zu gewährleisten.

Da die Kapazitäten von Festplatten mittlerweile auf mehrere Terabytes angewachsen sind, stößt das RAID-Verfahren durch seine Overheads an seine Grenzen. In vielen Fällen, in denen der Wiederherstellungsprozess einfach zu lange dauert, ist der RAID-Schutz einfach nicht mehr als Schutzmechanismus geeignet.

Um hier Abhilfe zu schaffen, offerieren viele Hersteller nun Erasure Coding, das die RAID-Lücken füllen soll.

RAID

Während der Ära des Mainframes wurden Festplatten – insbesondere die von IBM – ohne integrierten Datenschutz auf Hardware- oder Betriebssystemebene ausgeliefert. Platten, die ausfielen, wurden manuell wiederhergestellt, indem die Daten File für File von jedem Track des Platters heruntergezogen wurden.

RAID wurde dafür konzipiert, die Probleme eines Festplattenausfalls zu lösen, vor allem bei Minicomputern und verteilten Systemen, bei denen eine Datenwiederherstellung bis dahin nur schwer oder gar nicht umzusetzen war.

Beim RAID-Schutz kommen eine Reihe von Techniken zum Einsatz, bei der die Daten repliziert oder Parity-Informationen genutzt werden, um Informationen von einem ausgefallenen System oder Drive wieder zu erlangen.

RAID 1 repliziert einfach alle Daten auf zwei Festplatten, wodurch 100 Prozent zusätzliche Kapazität verwendet wird. Hierbei wird kein weiterer Overhead erzeugt. Diese Methode ist teuer, weil es die doppelte Kapazität erfordert. Aus diesem Grund wurden weitere Schutz-Algorithmen entwickelt, die nicht die zweifache Kapazität voraussetzen. Dafür ziehen sie „Compute-Kosten“ nach sich. Diese Rechnerleistung (Compute) wird dafür aufgewendet, um sogenannte Paritätsinformationen für jeden gespeicherten Datenblock zu erstellen.

Eine dafür typische Konfiguration ist RAID 5, bei der zwei oder mehr Festplatten und eine Parity-Platte zum Einsatz kommen. In der Praxis werden die Daten und die Paritätsinformationen allerdings über alle HDDs verteilt, um die I/O-Performance gleichmäßig zu halten. RAID 6 nutzt zudem zwei Festplatten für die Parity.

Eine typische RAID-Konfiguration (oder -Gruppe) mit drei Daten- und einer Parity-Festplatte (3+1) hat 33 Prozent Overhead oder, anders ausgedrückt, verfügt sie über 75 Prozent nutzbarer Speicherkapazität, je nachdem wie die Kalkulation angesetzt wird.

Falls einer der Drives ausfällt, so lassen sich die Daten von den verbleibenden Informationen und der Parity wiederherstellen. Die Parity wird als binäre XOR-Operation berechnet, wofür alle Daten verwendet werden, sobald sie das erste Mal geschrieben werden. Bei einem Recovery nutzt man die Paritätsinformationen und noch verbliebenen Daten, um die XOR-Berechnung zu reversieren und die verloren gegangenen Informationen wiederherzustellen.

Leider hat das RAID-Verfahren auch einige Nachteile. Da die Speicherkapazitäten der Festplatten immer größer geworden sind, dauert es mittlerweile sehr lange, ein Rebuild erfolgreich abzuschließen, manchmal sogar Tage oder Wochen. Die Recovery-Zeit zu bestimmen ist nicht so einfach, da sie von der existierenden Workload des Systems abhängt.

Während eines solchen Wiederherstellungsprozesses sind die Daten nicht gegen einen weiteren Plattenausfall abgesichert. Tritt dieser Störfall ein, bevor der Rebuild abgeschlossen ist, so gehen Daten verloren.

Hersteller reagierten darauf, indem sie die Anzahl der Paritätsplatten erhöhten, wie beispielsweise bei RAID 6, bei dem zwei Paritätsfestplatten in jeder Gruppe existieren. Das erhöht aber auch den Overhead des Schutzmechanismus. Um wiederum diesen Overhead zu verringern, kann man die Disk-Anzahl einer RAID-Gruppe erhöhen. Theoretisch gibt es keine Begrenzung für die Anzahl an Festplatten für Daten und Parity. Einige Hersteller implementieren ihre Arrays mit einer 28+2-Konfiguration, was in etwa sieben Prozent Mehrkosten erzeugt.

Allerdings gibt es ein weiteres Problem, dass durch die hohen Speicherkapazitäten entsteht: das Problem eines nicht wiederherstellbaren Lese-Fehlers. Ein solcher passiert, wenn aus irgendeinem Grund eine Lese-Anfrage an eine Disk fehlschlägt. Moderne Festplatten sind extrem zuverlässig, so dass ein solcher Fehler äußerst selten auftritt, aber eben durchaus auftreten kann.

SATA-HDDs haben eine Fehlerrate von einem Bit auf zehn bis zwölf TByte (read). Bei großen RAID-Stripes und hoch-kapazitiven Platten (acht TByte) bedeutet dies, dass das Risiko eines Ausfalls sehr real ist. Einige Hersteller begegnen diesem Risiko mit „vorhersagbaren“ Failures: Dabei lässt man eine Platte einer RAID-Gruppe logisch ausfallen und kopiert die Daten – ohne Rebuild – auf eine andere Platte, bevor das Medium wirklich ausfällt.

Anwender sollten beachten, dass die Rate der nicht wiederherstellbaren Lesefehler weitaus geringer ist, als es von den Herstellern angegeben wird. Das ist aber keine Garantie für hohe Datensicherheit, da auch durchaus höhere Fehlerraten schon festgestellt wurden.

Erasure Coding

Der Einsatz von RAID bei großen Datenvolumen wie zum Beispiel bei Object Storage ist ziemlich unpraktisch, einfach durch die schiere Menge an Festplatten, der hohen Anzahl an RAID-Gruppen und den Umfang eines möglichen Recoverys. Jeder Wiederherstellungsprozess zöge vermutlich den Rebuild einer vollständigen Festplatte nach sich. Hersteller bieten hier Erasure Coding (EC) oder Error Correction als Lösung an, eine Technologie, die der ähnelt, die bei Datenübertragung über Radionetzwerke hinweg zum Einsatz kommt.

Erasure Coding funktioniert ähnlich wie RAID, indem zusätzliche Informationen aus den zu speichernden Daten erstellt wird. Diese Zusatzinfos werden dann für den Recovery-Prozess genutzt. Der Unterschied liegt darin, wie diese zusätzlichen Informationen berechnet werden.

In einem System mit Erasure Coding werden die Quelldaten in Blöcke unterteilt. Diese sind typischerweise mehrere Megabytes groß und größer als die Blöcke in RAID-basierten Systemen. Das liegt daran, dass der Performance-Overhead des EC-Prozesses mehr Rechnerleistung erfordert, was wiederum die Kosten nach oben treibt.

Jeder Block durchläuft einen Transformationsprozess, der wiederum eine Anzahl an Datenstücken des Original-Blocks erzeugt. Um die Originaldaten wiederherzustellen, benötigt man ein bestimmtes Minimum dieser Datenstücke. Ein Datenblock erzeugt beispielsweise 16 Datenstücke (oder auch Datenscherben), von denen man 12 unbedingt benötigt, um die Originalinformation wiederherzustellen.

Dieser Zerstückelungsprozess hat einige Vorteile. Vorausgesetzt die Datenstücke befinden sich auf unterschiedlichen Festplatten, gefährdet der Ausfall eines Drives nicht die Datensicherheit. Des Weiteren dauert ein Rebuild nicht lange, da nicht alle Datenkomponenten sondern nur die bestimmte Anzahl an Bruchstücken wiederhergestellt werden muss. Will man einen Datenblock auslesen, so muss man allerdings auf ebendieses Minimum an Datenstücken zugreifen, was zu mehr I/O-Anfragen und Compute-Zeit führt, um ein Recovery umzusetzen.

Erasure Coding hat einen zusätzlichen Vorteil, den RAID nicht hat: Will der Anwender in Backup seiner Daten anlegen, so muss er mit einem herkömmlichen RAID-System eine vollständige Kopie seiner Daten an einen anderen Standort replizieren.

Mit Erasure Coding muss das System lediglich die Datenbruchstücke sichern und gewährleisten, dass genügend „Scherben“ außerhalb des ausgefallenen Systems vorhanden sind. Ein Erasure-Coding-System mit drei Standorten muss wenigstens vier Datenstücke in jeder Lokation vorhalten (entsprechend unserem 16/12-Beispiel). Damit kann ein Standort ausfallen, ohne dass Informationen verloren gehen.

Im Vergleich: RAID vs Erasure Coding

Obwohl Erasure Coding eine gute Alternative zu RAID zu sein scheint, so haben doch beide Verfahren in bestimmten Umständen ihre Vorteile. Erasure Coding eignet sich nicht für kleine Blöcke wie in Block-basierten Storage-Arrays, da der Overhead der Coding-Berechnung die Performance erheblich beeinflussen würde. Stattdessen lässt sich Erasure Coding am besten für große Daten wie in Objekt-Storage und File-Systemen anwenden.

RAID ist nach wie vor für kleine Blöcke geeignet. EC lässt sich gut in großen Archiven einsetzen, da RAID nicht so gut skaliert, aufgrund des Overheads für das Management eines Ausfallszenarios. Erasure-Coding-Systeme sind typischerweise auf Kapazität und weniger auf Performance ausgelegt. Es gibt einige Hersteller, die eine Kombination aus RAID und Erasure Coding anbieten, abhängig vom gespeicherten Datentyp. Dadurch wird der Datenschutz für Anwender optimiert.

Folgen Sie SearchStorage.de auch auf Twitter, Google+ und Facebook!

Artikel wurde zuletzt im Juni 2015 aktualisiert

Pro+

Premium-Inhalte

Weitere Pro+ Premium-Inhalte und andere Mitglieder-Angebote, finden Sie hier.

Erfahren Sie mehr über Sichere Datenspeicherung

Diskussion starten

Schicken Sie mir eine Nachricht bei Kommentaren anderer Mitglieder.

Mit dem Absenden dieser Daten erklären Sie sich bereit, E-Mails von TechTarget und seinen Partnern zu erhalten. Wenn Ihr Wohnsitz außerhalb der Vereinigten Staaten ist, geben Sie uns hiermit Ihre Erlaubnis, Ihre persönlichen Daten zu übertragen und in den Vereinigten Staaten zu verarbeiten. Datenschutz

Bitte erstellen Sie einen Usernamen, um einen Kommentar abzugeben.

- GOOGLE-ANZEIGEN

SearchSecurity.de

SearchNetworking.de

SearchEnterpriseSoftware.de

SearchDataCenter.de

Close