Codefieber.de

IT-Blog

RAIDsysteme

| 1 Kommentar

Heute möchte ich auf das Thema RAIDsysteme eingehen und was es damit aufsich hat. Es gibt verschiedene Systeme, die ich hier erläutern und veranschaulichen werde. Als erstes gebe ich einen kurzen allgemeinen Einblick in das RAIDsystem, danach gehe ich auf die einzelnen Raidsyteme (RAID 0, RAID 1, RAID 01, RAID 10, RAID 5 & RAID 6) ein und werde noch etwas was zu Parität, Präemptives RAID, S.M.A.R.T, sowie zu Hot Spare sagen.

Allgemeines

Als RAID bezeichnet man eine Technik die Datensicherheit gewährleisten soll, indem mit redundanter Aufzeichnung auf mehreren Festplatten gearbeitet wird. Diese Technik findet seit Anfang der 90er Jahre auf Servern in Netzwerken immer mehr Verbreitung, da Festplatten immer preisgünstiger werden und eine immer höhere Kapazität aufweisen.

RAID 0 / Striping

Bei RAID 0 werden die Nutzdaten in Streifen zerlegt (Striping).

Die Lese- und Schreibgeschwindigkeit ist erhöht, da die Nutzdaten parallel auf mehreren Festplatten verteilt sind. Die Erhöhung der Transferraten kommt besonders bei großen zusammenhängenden Daten zur Geltung, z.B. bei Bearbeitung von Videos.
Das Verfahren bietet keine Datenredundanz, bei Ausfall einer Festplatte gehen die Daten des RAID-Verbundes komplett verloren. Es werden mindestens zwei Festplatten benötigt. Die Festplattenanzahl ist auch gleich die verfügbare Nutzkapazität.
Um das System aufrecht zu erhalten darf keine Festplatte ausfallen.

RAID 1 / Mirroring

Bei RAID 1 werden die Nutzdaten gespiegelt (Mirroring).

Die Lesegeschwindigkeit ist erhöht, die Schreibgeshwindigkeit verändert sich nicht im Vergleich zu einer einzelnen Festplatte, da auf jede Festplatte die kompletten Nutzdaten geschrieben werden.
RAID 1 wird bei wichtigen Daten eingesetzt, die hauptsächlich gelesen werden z.B. Datenarchive. Das Verfahren bietet 100%ig Redundanz, bei Ausfall einer Festplatte sind die Daten des RAID-Verbundes noch komplett auf den übrigen Festplatten vorhanden. Es werden mindestens zwei Festplatten benötigt. Die verfügbare Nutzkapazität beträgt die hälfte der Festplattenkapazität.
Um das System aufrecht zu erhalten darf maximal die hälfte der Festplatten ausfallen.

RAID 01 versus RAID 10

RAID 01 kombiniert RAID 0 (Striping) und RAID 1 (Mirroring).

Zuerst werden die Nutzdaten ist Streifen zerlegt und anschließend gespiegelt. RAID 10 kompiniert auch RAID 1 (Mirriring) und RAID 0 (Striping).
Der Unterschied ist die Reinfolge, bei RAID 10 werden die Nutzdaten zuerst gespiegelt und anschließend in Streifen zerlegt. Beide RAID-Verfahren steigern die Transferraten und gewährleisten eine 100%ige Redundanz. Es werden mindestens vier Festplatten benötigt, wobei nur die Hälfte der Festplattenkapazität als Nutzkapazität verfügbar ist.
Um das System aufrecht zu erhalten darf maximal die Hälfte der Festplatten ausfallen.

Der Unterschied zwischen RAID 01 und RAID 10 wird erst beim Ausfall mehrerer Festplatten sichtbar. Ein RAID 01-Verbund aus sechs Festplatten besteht aus zwei RAID 0-Verbunden die gespiegelt sind. Fällt in jedem RAID-0 Verbund eine Festplatte aus, sind alle Daten verloren. Dabei ist es egal welche Festplatten in den jeweiligen RAID-Verbunden ausfallen.
Die verbleibenden Festplatten können nicht untereinander kommunizieren, obwohl die defekten Daten des einen RAID-0 Verbundes noch auf dem anderen RAID 0-Verbund vorhanden sind.
Ein RAID 10-Verbund aus sechs Festplatten besteht aus drei RAID 1-Verbunden die in Streifen zerlegt werden. Genauso wie beim RAID 01 gibt es von einer Festplatte ein identisches Ebenbild.
Fallen bei RAID 10 auch wieder zwei Festplatten aus, müssen es schon die zwei identischen Festplatten treffen, damit es zum Datenverlust kommt. Andernfalls verlieren die gespiegelten Festplatten nur ihre Redundanz.

RAID 5

Beim RAID 5 müssen mindestens drei Festplatten vorhanden sein. Die nutzbare Gesamtkapazität eines RAID 5 – Verbundes errechnet sich mit folgender Formel: (Anzahl der Festplatten − 1) × Kapazität der kleinsten Festplatte.

Beispiel:
Es sind 4 Festplatten á 500 GB vorhanden:
(4−1)×500GB=1500GB
Die übrigen 500 GB werden für Paritätsspeicherung verwendet.

Wie im RAID 0 werden im RAID 5 die Daten in Stripes aufgeteilt, und über die gesamte Festplatte verteilt. RAID 5 eignet sich am besten bei großen Datenmengen mit kleinen Dateien. Ein RAID 5 – System gewährleistet den Ausfall einer Festplatte. Da in diesem System auf jeder Festplatte einzelne Paritäten verteilt gespeichert werden, ist es möglich die Daten einer ausgefallen Festplatte, anhand einer Paritätsberechnung, rekonstruiert werden. Diese Wiederherstellung findet zur Laufzeit statt, welche einige Zeit dauert.
Die Wiederherstellung kann durch parallele Schreib-, bzw. Lesezugriffe zusätzlich verlangsamen. Das gleiche Prinzip greift, falls eine Festplatte ausgetauscht werden muss. Falls eine weitere Festplatte ausfallen sollte, können die gespeicherten Daten nicht mehr rekonstruiert werden. Im RAID 5 verzögert sich ein Schreibvorgang, da zunächst ein Lesezugriff erfolgen muss. Nach diesem Lesezugriff werden Paritätsinformationen berechnet, und werden anschließend, wie auch die zu schreibenden Daten geschrieben.

RAID 6

RAID 6 funktioniert ähnlich wie RAID 5, verkraftet jedoch den Ausfall von bis zu zwei Festplatten. Hier werden nicht ein, sondern zwei Fehlerkorrekturwerte berechnet und so über die Platten verteilt, damit Daten und Paritäten blockweise auf unterschiedlichen Platten liegen. Das bedeutet eine Anzahl von n+2 Festplatten brutto für einen Dateninhalt von n Festplatten netto, was allerdings schon bei wenigen Netto-Festplatten eine Kosten-Ersparnis gegenüber einfacher Spiegelung (RAID 1) darstellt.

Ein RAID-6-Verbund benötigt mindestens vier Festplatten.
Der Rechenaufwand bei den zugrundeliegenden XOR-Prozessen ist erheblich höher als bei RAID 5. Bei RAID 5 werden für ein Paritätsbit die Daten aus einer Daten-Zeile addiert (und bei erforderlicher Rekonstruierung der Daten aus einer Daten-Zeile per Addition rekonstruiert). Dagegen muss bei RAID 6 das Paritätsbit über mehrere Daten-Zeilen berechnet werden.
Die Rekonstruierung, insbesondere bei zwei ausgefallenen Festplatten, erfordert einen hohen Aufwand, welcher auf Matrizenberechnungen zurückzuführen ist.

Parität

Parität im Bezug auf RAID stellt eine Prüfsumme dar, welche zur Wiederherstellung von Daten dient.
Es wird angenommen, dass 3 Festplatten in einem RAID 5-Verbund vorhanden sind. In diesem RAID-Verbund sind folgende Daten gespeichert: 10101101101101000011
Da in einem RAID 5-Verbund die Daten verteilt gespeichert werden, würden die vorhandenen Daten wie folgt gespeichert:

h0 1 1 x 0 1 x 0 0 x 1
h1 0 x 1 1 x 1 1 x 0 1
h2 x 0 1 x 0 1 x 0 0 x
(Die Paritäten sind in diesem Beispiel mit ‚x‘ beschrieben.)

Mit Hilfe einer xor – Verknüpfung werden nun die jeweiligen Paritätsbit berechnet:
h0 1 1 ˙0 0 1 ˙0 0 0 ˙0 1
h1 0 ˙1 1 1 ˙1 1 1 ˙0 0 1
h2 ˙1 0 1 ˙1 0 1 ˙1 0 0 ˙0
(Die berechneten Paritäten wurden hier mit einem ‚.‘ markiert.)

Wenn nun eine Festplatte im RAID 5-Verbund ausfallen sollte, ist es möglich, anhand einer erneuten xor – Verknüpfung die fehlenden Daten zu rekonstruieren, wobei das Paritätsbit zur Wiederherstellungsinformation wird.

Präemptives RAID

Es werden intern Fehlerkorrekturanalysen erstellt und versucht die Platte zu ermitteln, welche die höchste Ausfallwahrscheinlichkeit hat. Diese Platte wird dann bereits im Vorfeld mit der Hot Spare-Platte synchronisiert. Dadurch wird verhindert, dass der RAID bei dem Ausfall einer Platte langsam wird, da die Hot Spare-Platte nicht erst mit Daten gefüllt werden muss.

S.M.A.R.T

Self-Monitoring, Analysis and Reporting Technology ist eine Technologie um die Ausfallwahrscheinlichkeit einer Platte zu ermitteln. Diese Technologie verlangsamt nicht die Performance, da diese Technologie nur protokolliert und nicht Fehler behebt. Man kann diese Funktion auch abschalten, was allerdings nur die Warnungen abschaltet, aber nicht die Protokollierung.
Die Werte, welche überprüft werden sollen, werden generell in Online- und Offline-Parameter unterteilt. Wobei die Online-Parameter permanent protokolliert werden und die Offline-Parameter nur in den Ruhephasen aktualisiert werden.
Diese Technologie stellt jedoch keine Norm dar, da jeder Hersteller selber entscheiden kann, welche Werte er überwachen möchte und wie er die Grenzwerte ansetzt. Der Speicherort ist jedoch standardisiert.

Bei einer unabhängigen Google-Studie 2006 wurden 100.000 Festplatten getestet und ergab, dass 64% aller Ausfälle mit S.M.A.R.T vorhergesagt werden kann.

Da SSDs anders als herkömmliche Festplatten arbeiten, sind auch andere Parameter für einen Ausfall entscheidend. Dafür wurden teilweise neue IDs vergeben, aber auch bestehende für andere Werte verwendet. Dadurch kann es vorkommen, dass eine SSD als gefährdet markiert wird, ohne dass es zu Problemen kommt.

Übliche Parameter sind:

  • Seek Error Rate
  • Raw Read Error Rate
  • Hardware ECC Recovered
  • Scan Error Rate
  • Throughput Performance
  • Spin Up Time
  • Start/Stop Count
  • Reallocated Sector Count
  • Power On Hours Count
  • Load/Unload Cycle Count
  • Drive Temperature
  • Ultra DMA
  • CRC Error Count
  • Hot Spare

    Unter einer Hot Spare-Platte versteht man eine Ersatzplatte, welche bei dem Ausfall einer Platte eingebunden wird und die alte ersetzt.

    Quellen:
    http://de.wikipedia.org/wiki/RAID
    http://www.elektronik-kompendium.de/sites/com/1001021.htm
    http://www.elektronik-kompendium.de/sites/com/1001031.htm
    http://www.bandlaufwerke.de/info/festplatten/raidsysteme/index.html
    http://www.bullhost.de/r/raid.html
    http://eduard-dopler.de/540/raid-fehlerkorrektur-paritat-erklart/

    avatar

    Autor: Pascal

    Codefieber.de wird von Pascal Betke geführt, administriert und gestaltet. Alle Inhalte sind persönlich von mir ausgewählt und erstellt, nach bestem Gewissen und Können, was die Möglichkeit von Fehlern nicht ausschließt.

    Ein Kommentar

    1. avatar

      Lieber Pascal,

      Sie schreiben folgendes:

      > Ein RAID 01-Verbund aus sechs Festplatten besteht aus zwei RAID 0-Verbunden die gespiegelt sind. Fällt in jedem RAID-0 Verbund eine Festplatte aus, sind alle Daten verloren.

      Dadurch, dass die beiden Raid-0-Verbünde exakt gespiegelt sind, meine ich, dass bei einem Raid-01 nur dann alle Daten verloren sind, wenn bei Ihrem Bildbeispiel auf einen Ausfall beispielsweise der Disk 1 in der Group 1 ein Ausfall der Disk 4 in Group 2 passiert. Würden in der Group 2 hingegen die Disk 5 und/oder Disk 6 ausfallen, dann sehe ich keinen Datenverlust. Denn, wenn ich in diesem Fall das Verbindungskabel zwischen RAID-Controller und Disk 1 aus der Disk 1 herausziehe und dieses dann in die Disk 4 hineinstecke, dann sollten doch noch alle Daten vorhanden sein, oder?
      Wenn dem so wäre, dann schaut es womöglich nur so aus, als gäbe es einen kompletten Datenverlust, weil der RAID-Controller software-seitig das nicht kann, was ich hardware-seitig mit dem Umstecken des Kabels gemacht habe. (Dieses Software-Problem ließe sich wohl aber einfach lösen.)

      Ich meine daher, dass ein kompletter Datenverlust bei RAID 01 und RAID 10 gleich wahrscheinlich oder unwahrscheinlich ist. Der einzige Vorteil von RAID 10 wäre der, dass der RAID-Controller bei einem Ausfall jeweils einer Festplatte in einer, zwei oder drei der drei Groups software-seitig immer noch im Stande wäre, die Daten richtig zu erkennen.

      Was meinen Sie?

      Mit freundlichen Grüßen,
      Christian

    Schreibe einen Kommentar

    Pflichtfelder sind mit * markiert.