Dies ist ein als lesenswert ausgezeichneter Artikel.

RAID

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 12. Juli 2005 um 15:15 Uhr durch AF666 (Diskussion | Beiträge) (→‎Weblinks). Sie kann sich erheblich von der aktuellen Version unterscheiden.
Zur Navigation springen Zur Suche springen

Ein RAID-System (ursprünglich die Abkürzung für Redundant Array of Inexpensive Disks, heutzutage aber fälschlicherweise oft auch Redundant Array of Independent Disks) dient zur Organisation mehrerer physikalischer Festplatten eines Computers zu einem besonders leistungsfähigen bzw. sicheren logischen Laufwerk.

Allgemein

Der Betrieb eines RAID-System setzt mindestens zwei Festplatten voraus. Die Festplatten werden gemeinsam betrieben und bilden einen Verbund, der unter mindestens einem Aspekt betrachtet leistungsfähiger ist als die einzelnen Festplatten.

Die Erhöhung der Leistung kann sich auf einen oder mehrere Aspekte beziehen. Mit RAID Systemen kann man folgende Vorteile erreichen:

  • Erhöhung der Datensicherheit (Redundanz)
  • Steigerung der Transferraten (Performance)
  • Aufbau großer logischer Laufwerke

Die sinnvolle Kombination der Festplatten wird entweder von einem speziell dafür entwickelten Hardware-Baustein, einem so genannten RAID-Controller, durchgeführt; dann spricht man von Hardware-RAID. Oder diese Aufgabe übernimmt ein Gerätetreiber, wobei man von Software-RAID spricht.

RAID-Systeme erfordern bei der Einrichtung durch Systemverwalter mehr Aufwand als einzelne Festplatten. Aus Sicht des Benutzers oder eines Anwendungsprogramms unterscheiden sie sich nicht von einzelnen Festplatten.

Die genaue Art der Zusammenschaltung der Festplatten wird durch den RAID-Level spezifiziert. Die wichtigsten RAID-Level sind RAID 0, RAID 1 und RAID 5. Sie werden unten beschrieben.

JBOD

Bei JBOD (Just a Bunch Of Disks = Nur ein Bündel Platten) handelt es sich nicht um ein RAID System. Die Bezeichnung wird verwendet, wenn Festplatten-Controller die angeschlossenen Festplatten einzeln dem Betriebssystem zu Verfügung stellen und keine Zusammenschaltung durchführen.

Stripe Size

Stripe size bezeichnet die Größe, des aus einem oder mehreren Datenblöcken bestehenden zusammenhängenden Datenbereichs als kleinste adressierbare Einheit zur Verteilung von Daten auf RAID-Speichermedien. Bei einer Vergrößerung der Stripe-Size wächst der maximale Durchsatz, gleichzeitig erhöht sich aber die Zugriffszeit. Auch Striping-Granularität. Heute üblich sind Stripegrössen von 64kbyte bis 256kbyte.

Geschichte

1987 veröffentlichten D. A. Patterson, G. Gibson und R. H. Katz von der University of California, Berkeley, USA einen Vorschlag, um die langsamen Plattenzugriffe zu beschleunigen und die MTBF (Mean time between failures) zu erhöhen. Dazu sollten die Daten auf vielen kleineren (billigeren) Platten anstatt auf wenigen großen (teuren) abgelegt werden. Deshalb hieß die frühere Schreibweise auch "Arrays of Inexpensive Disks" (heute Independent), als Gegenzug zu den damaligen SLEDs (Single Large Expensive Disk). Die Varianten Raid-0 und Raid-6 wurden erst später von der Industrie geprägt. Seit 1992 erfolgt eine Standardisierung durch das RAB (RAID Advisory Board), bestehend aus etwa 50 Herstellern.

Die gebräuchlichen RAID-Level im Einzelnen

RAID 0: Beschleunigung ohne Redundanz

Datei:RAID0.png
RAID LEVEL 0

RAID 0 bietet gesteigerte Transferraten, indem mehrere Festplatten zusammengeschlossen und Schreiboperationen auf allen parallel durchgeführt werden (engl. striping). Die Performance-Steigerung (insbesondere bei sequentiellen Zugriffen) beruht darauf, dass die zu schreibenden Daten zunächst auf die Caches der verschiedenen Platten verteilt werden und jede einzelne Platte so weniger zu tun hat. Die Grösse der Datenblöcke wird als striping-Granularität bezeichnet. Umgekehrt wird auch der Lesevorgang beschleunigt. Die Zugriffszeiten sind dagegen bestenfalls auf dem Niveau einer einzelnen Festplatte. Fällt jedoch eine der Festplatten durch einen Defekt aus, kann der RAID-Controller ohne deren Teildaten die ursprüngliche Datei nicht mehr rekonstruieren. Streng genommen ist dies gar kein RAID, da es keine Redundanz gibt.

Die Wahrscheinlichkeit von Datenverlust ist bei RAID 0 mit zwei Festplatten doppelt so groß wie bei einem gewöhnlichen Computer mit nur einer Festplatte, da sich die Defektwahrscheinlichkeit entsprechend der Festplattenanzahl vervielfacht, der Defekt einer einzigen Festplatte aber schon zum Totalausfall führt. RAID 0 ist daher nur in Computersystemen zu empfehlen, bei denen Datensicherheit kaum von Bedeutung ist.

RAID 1: Spiegelung

Datei:RAID1.png
RAID LEVEL 1

Ein RAID 1 Array besteht aus zwei oder mehr Festplatten, die dieselben Daten enthalten (engl. mirroring oder duplexing, s.u.). In der Regel sind das zwei Festplatten, es ist aber auch möglich, mehr im Array zu haben. RAID 1 bietet die volle Redundanz der gespeicherten Daten, während die Kapazität des Arrays höchtens so groß ist, wie die kleinste beteiligte Festplatte.

Fällt eine der gespiegelten Platten aus, können die anderen weiterhin die Daten liefern. Besonders für Realtime-Anwendungen ist das unverzichtbar. RAID 1 bietet eine hohe Ausfallsicherheit. Zum Totalverlust der Daten führt erst der Ausfall aller Platten.

Wenn alle Festplatten am selben Controller angeschlossen sind, wird dies als Mirroring bezeichnet. Es kann immer nur ein Zugriff pro Controller ausgeführt werden, was zur Folge hat, dass die Redundanz eines Sektors nicht sofort gegeben ist, sondern erst, nachdem auf mindestens zwei Festplatten geschrieben wurde. Ein Anschluss der Festplatten an verschiedenen Controllern wird als Duplexing bezeichnet.

RAID 1 kann eine erhöhte Performance beim Lesen bewirken, weil Daten von einer Festplatte angefordert werden können, während andere noch beschäftigt sind.

RAID 5: Performance + Parität

RAID LEVEL 5

RAID 5 bietet sowohl gesteigerte Performance als auch Redundanz und ist damit die beliebteste RAID-Variante. Darüber hinaus ist es die kostengünstigste Möglichkeit, Daten auf mehr als 2 Festplatten mit Redundanz zu speichern. Es werden mindestens 3 Platten benötigt. Bei n Platten sind (n-1)/n der Gesamtkapazität nutzbar; das restliche 1/n wird für die Paritätsdaten (Redundanz) benötigt. Zum Vergleich: bei RAID 1 lassen sich nur ½ der realen Kapazität wirklich verwenden.

Die Nutzdaten werden wie bei RAID 0 auf alle Festplatten verteilt. Die Paritätsinformationen werden jedoch nicht wie bei RAID 4 auf einer Platte konzentriert, sondern ebenfalls verteilt. Die Berechnung der Parität erfordert leistungsfähige RAID-Controller und führt beim Schreiben zu leichter bis erheblicher Verminderung der Datentransferrate im Vergleich zu RAID 0. Da die Paritätsinformationen beim Lesen nicht benötigt werden, stehen alle Platten zum parallelen Zugriff zur Verfügung. Bei RAID 5 ist die Datensicherheit beim Ausfall einer Platte gewährleistet! Allerdings lässt nach Ausfall einer Festplatte oder während des Rebuilds auf die Hotspare-Platte (bzw. nach Austausch der defekten Festplatte) die Performance deutlich nach. Der Rebuild dauert länger als bei RAID 1, da bei RAID 5 zusätzlich Parity Informationen rekonstruiert werden müssen. Je mehr Festplatten in einem RAID 5 Verbund sind, desto länger dauert der Rebuild bzw. desto schlechter ist die Performance während eines Defekts einer Festplatte.

Weniger gebräuchliche oder bedeutungslos gewordene RAID Level

NRAID: Festplattenverbund

Bei NRAID werden – wie bei RAID 0 – mehrere Festplatten zusammengeschlossen. Im Gegensatz zu RAID 0 bietet NRAID aber keinen Performance-Gewinn. Dafür kann man Festplatten unterschiedlicher Größe ohne Speicherverlust miteinander kombinieren (Beispiel: eine 10 GB-Festplatte und eine 30 GB-Festplatte ergeben in einem NRAID eine virtuelle 40 GB Festplatte, während in einem RAID 0 nur 20 GB (2 x 10 GB) angesprochen werden könnten). Der Ausfall einer Platte führt zu Datenverlust, jedoch wäre es möglich einen Teil der Daten wieder zu restaurieren, solange sie komplett auf der funktionierenden Platte liegen. NRAID ist weder einer der nummerierten RAID-Levels, noch bietet es Redundanz. Man kann es aber durchaus als entfernten Verwandten von RAID 0 betrachten. NRAID macht aus mehreren Festplatten eine einzige Partition einer Kapazität, die der Summe der Kapazitäten aller verwendeten Platten entspricht.

RAID 2

RAID 2 spielt in der Praxis keine Rolle. Die Daten werden hierbei in Bitfolgen fester Größe zerlegt und mittels eines Hamming-Codes auf größere Bitfolgen abgebildet. Die einzelnen Bits des Hamming-Codeworts werden dann über einzelne Platten aufgeteilt, was prinzipiell einen hohen Durchsatz erlaubt. Ein Nachteil ist jedoch, dass die Anzahl der Platten ein Vielfaches der Hamming-Codewortlänge sein muss.

RAID 3

RAID 3 ist inzwischen fast vom Markt verschwunden. Hierbei werden die Nutzdaten byteweise über einzelne Festplatten aufgeteilt. Auf einer zusätzlichen Festplatte wird die sogenannte Paritätsinformation gespeichert, die sich durch XOR-Verknüpfung aus den einzelnen Datenbytes ergibt.

RAID 3 ist aus zwei Gründen ineffizient: zum einen stellt die dedizierte Paritätsfestplatte einen Flaschenhals dar, zum anderen werden in modernen Systemen Ein-/Ausgabe-Operationen mit größeren Blockgrößen bis hin zu mehreren Megabytes aus Performance-Gründen bevorzugt, wie sie in den RAID-Levels 4 und 5 realisiert sind.

RAID 4

Es werden ebenfalls Paritätsinformationen berechnet, die auf eine dedizierte Festplatte geschrieben werden. Allerdings sind die Einheiten, die geschrieben werden, größere Chunks und nicht einzelne Bytes, was die Gemeinsamkeit zu RAID 5 ausmacht.

Wegen der fest definierten Paritätsplatte, die wie bei RAID 3 einen Flaschenhals darstellt, wird statt RAID 4 fast immer RAID 5 bevorzugt.

RAID 6

RAID 6 funktioniert ähnlich wie RAID 5, verkraftet aber den Ausfall von bis zu zwei Festplatten. Hier werden nicht ein, sondern zwei Fehlerkorrekturwerte berechnet und so über die Platten verteilt, dass Daten und Paritätsblöcke auf unterschiedlichen Platten liegen.

RAID 7

RAID 7, eine kaum verwendete Variante, hat RAID 5 zur Grundlage. Allerdings läuft hierbei im Controller ein lokales Echtzeitbetriebssystem, welches die Lese- und Schreiboperationen steuert. RAID 7 unterstützt zusätzlich die Verwendung mehrerer Paritätsinformationen gemäß RAID 6.

Kombinations-RAIDS (RAID 10, 01, 15, 51...)

Obschon die RAID-Level 0, 1 und 5 die weitaus größte Verwendung finden, existieren nebst den Levels 0 bis 7 noch "RAID-Kombinationen". Hier wird ein RAID zu einem zweiten RAID nochmal zusammengefasst. Beispielsweise können mehrere Platten zu einem parallelen RAID 0 zusammengefasst werden, und aus mehreren dieser RAID-0-Arrays z. B. ein RAID-5-Array gebildet wird. Man bezeichnet diese Kombinationen dann z. B. als RAID 05 (0+5). Umgekehrt würde ein Zusammenschluss von mehreren RAID-5-Arrays zu einem RAID-0-Array als RAID 50 (oder RAID 5+0) bezeichnet werden. Auch RAID 1 und RAID 5 Kombinationen sind möglich (RAID 15 und RAID 51), die beliebteste Kombination ist allerdings das RAID 10, bei dem je zwei Platten parallel arbeiten und dabei von zwei anderen Platten gespiegelt werden (insgesamt 4 Platten).

RAID 1.5

Die Firma Highpoint entwickelte zusätzlich noch das RAID 1.5, nicht zu verwechseln mit RAID 15. Gedacht für Privatanwender kombiniert es die Vorteile von RAID 0 und RAID 1 und sieht sich deshalb als eine Zwischenstufe der RAID-Levels 1 und 2, deswegen auch die Bezeichnungswahl mit Kommastelle. Hauptvorteil ist die gleichzeitige Steigerung der Sicherheit und Geschwindigkeit bei nur 2 Festplatten, was durch keinen anderen "echten" RAID-Level realisierbar wäre. Allerdings scheint auch diese Lösung in der Praxis eher untauglich zu sein! Aber das ist ein anderes Thema [1].

Matrix RAID

Im Intel ICH6R- beziehungsweise den ICH6RW-I/O-Baustein ist erstmals eine neue Technologie integriert, die als "Matrix-RAID" bezeichnet wird. Sie soll die Vorteile von RAID 0 und RAID 1 auf nur 2 Festplatten vereinen. Jede der beiden Platten wird vom Controller zu diesem Zweck in 2 Bereiche aufgeteilt. Ein Bereich wird dann auf die andere Festplatte gespiegelt, während im verbleibenden Bereich die Daten auf beide Platten aufgeteilt werden. Man kann dann z.B. im ersten Bereich sein "unwichtiges" Betriebssystem und Programme installieren, um von RAID 0 zu profitieren, während man im zweiten Bereich dann seine wichtigen Daten abspeichern kann, und auf die Redundanz von RAID 1 vertrauen kann. Im Falle eines Plattencrashes müsste man dann nur sein Betriebssystem und Programme neu aufspielen, während die wichtigen Daten im anderen Festplattenbereich erhalten bleiben.

RAIDn

Bei RAIDn handelt es sich um eine Entwicklung der Inostor Corp., einer Tochter von Tandberg Data. RAIDn hebt die bisher starre Definition der RAID Level auf.

Dieses RAID wird definiert durch die Gesamtzahl der Festplatten (n) sowie die Anzahl der Festplatten, die ohne Datenverlust ausfallen dürfen (m). Als Schreibweise hat sich RAID(n,m) oder RAID n+m eingebürgert.

Aus diesen Definitonen können die Kenndaten des RAID wie folgt berechnet werden:

  • Lesegeschwindigkeit = n * Lesegeschwindigkeit der Einzelplatte
  • Schreibgeschwindigkeit = (n - m) * Schreibgeschwindigkeit der Einzelplatte
  • Kapazität = (n - m) * Kapazität der Einzelplatte

Einige spezielle Definitionen wurden wie folgt festgelegt:

  • m = 0 entspricht RAID 0
  • m = 1 entspricht RAID 5
  • m = n/2 entspricht RAID 10

Siehe auch

Weblinks