RAID PDF
Document Details
Uploaded by EasedArchetype
Tags
Summary
This document explains the different RAID levels, their capabilities and limitations. It describes the advantages and disadvantages of using hardware, host and software RAID. The document covers various aspects of computer storage and hardware RAID levels.
Full Transcript
64 4 Grundlagen der Rechnerarchitektur Vergleicht man SLC-, MLC-, TLC- und QLC-Speicher gleicher Ka- pazität miteinander, dann ist der SLC-Speicher am teuersten, bietet aber dafür die höchste Schreibgeschwindigkeit und tendenziell die höchste Lebensdauer, weil...
64 4 Grundlagen der Rechnerarchitektur Vergleicht man SLC-, MLC-, TLC- und QLC-Speicher gleicher Ka- pazität miteinander, dann ist der SLC-Speicher am teuersten, bietet aber dafür die höchste Schreibgeschwindigkeit und tendenziell die höchste Lebensdauer, weil er mehr Schreib-/Löschzyklen übersteht, als die übri- gen Ausprägungen von NAND-Speicher. 4.5 RAID Die folgende Auflistung einiger ausgewählter Hardwarekomponenten zeigt, dass in den letzten Jahrzehnten die Geschwindigkeit der Prozes- soren schneller angewachsen ist als die Zugriffsgeschwindigkeiten der Festplatten. Festplatten 1973: IBM 3340, 30 MB Kapazität, 30 ms Zugriffszeit 1989: Maxtor LXTl00S, 96 MB Kapazität, 29 ms Zugriffszeit 1998: IBM DHEA-36481, 6 GB Kapazität, 16 ms Zugriffszeit 2006: Maxtor STM320820A, 320 GB Kapazität, 14 ms Zugriffszeit 2011: Western Digital WD30EZRSDTL, 3 TB Kapazität, 8 ms Zu- griffszeit Prozessoren 1971: Intel 4004, 740 kHz Taktfrequenz 1989: Intel 486DX, 25 Mhz Taktfrequenz 1997: AMD K6-2 550 Mhz Taktfrequenz 2007: AMD Opteron Santa Rosa F3, 2,8 GHz Taktfrequenz 2010: Intel Core i7 980X Extreme (6 Cores), 3,33 Ghz Taktfrequenz Dieser Abstand vergrößert sich in Zukunft weiter. Da Festplatten aus beweglichen Teilen bestehen, lässt sich ihre Geschwindigkeit nicht beliebig verbessern. Die physikalischen, materiellen und wirtschaftli- chen Grenzen müssen akzeptiert werden. SSDs bieten höhere Lese- und Schreibgeschwindigkeiten als Festplatten, aber auch bei ihnen gibt es Be- schränkungen bzgl. Geschwindigkeit und Kapazität. Eine Möglichkeit, diese Beschränkungen zu umgehen und gleichzeitig die Datensicherheit zu erhöhen, ist das gleichzeitige Verwenden mehrerer Laufwerke (Fest- 4.5 RAID 65 Tab. 4.4 Übersicht über die gebräuchlichsten RAID-Level RAID- n (Anzahl Netto- Ausfallsicherheitb Maximaler Datendurchsatz Level Laufwerke) kapazitäta (Lesen)c (Schreiben)c 0 2 n 0 (keine) nX nX 1 2 1 n 1 Laufwerke n X X 2 3 n Œlog2 n 1 Laufwerk variabel variabel 3 3 n1 1 Laufwerk.n 1/ X.n 1/ X 4 3 n1 1 Laufwerk.n 1/ X.n 1/ X 5 3 n1 1 Laufwerk.n 1/ X.n 1/ X 6 4 n2 2 Laufwerke.n 2/ X.n 2/ X a Sind die Laufwerke unterschiedlich groß, bietet ein Verbund mit RAID 1 höchstens die Kapazität des kleinsten Laufwerks. b Gibt an, wie viele Laufwerke ausfallen dürfen, ohne dass es zum Datenverlust kommt. c X ist die Leistung eines einzelnen Laufwerks beim Lesen bzw. Schreiben. Die maximale theoretisch mögliche Leistung wird häufig vom Controller bzw. der Re- chenleistung des Hauptprozessors eingeschränkt. platten oder SSDs) in einem sogenannten RAID (Redundant Array of Independent Disks). Ein RAID-Verbund besteht zwar aus mehreren Laufwerken, doch die Benutzer und deren Prozesse nehmen den Verbund als ein einziges großes Laufwerk wahr. Das sogenannte RAID-Level spezifiziert die Art und Weise der Verteilung der Daten über die Laufwerke eines RAID- Systems. Eine Übersicht mit den Eckdaten der RAID-Level 0 bis 6 enthält Tab. 4.4. Die in der Praxis gebräuchlichsten RAID-Level sind RAID 0, RAID 1 und RAID 5. Es gibt verschiedene Möglichkeiten, einen RAID-Verbund technisch zu realisieren. Die leistungsfähigste Variante ist das Hardware-RAID. Dabei kommt ein RAID-Controller zum Einsatz. Solche Controller sind meist Steckkarten für PCI-Express (PCIe), die Schnittstellen zum An- schluss von internen und eventuell auch externen Laufwerken bieten. Zu- dem verfügen Hardware-RAID-Controller über einen leistungsfähigen Prozessor, der die je nach verwendetem RAID-Level benötigten Paritäts- informationen berechnet und den Zustand der angeschlossenen RAID- Verbünde überwacht. Die Vorteile einen Hardware-RAID gegenüber al- ternativen Implementierungsvarianten sind die Betriebssystemunabhän- 66 4 Grundlagen der Rechnerarchitektur gigkeit6 und dass der Betrieb der RAID-Verbünde den Hauptprozessor nicht belastet. Nachteilig ist der vergleichsweise hohe Preis von einigen hundert Euro. Eine weitere Möglichkeit zur Realisierung eines RAID-Verbunds ist das sogenannte Host-RAID. Dabei erbringt entweder ein preiswerter RAID-Controller ohne eigenen Prozessor oder der Chipsatz des Com- puters die RAID-Funktionalität. Mit solch einer Lösung ist meist nur der Aufbau eines RAID 0 oder RAID 1 empfehlenswert, denn das Be- rechnen von Paritätsinformationen muss der Hauptprozessor erledigen. Dies wirkt sich negativ auf die Gesamtleistung des Computers aus. Ein weiterer Nachteil ist, dass man sich in ein potentiell problematisches Abhängigkeitsverhältnis von einer Hardware begibt, die im Fehlerfall eventuell nur schwer wieder zu beschaffen ist. Dass ein Host-RAID auch auf einem neueren Mainboard oder mit einem anderen Host- RAID-Controller funktioniert, ist keineswegs garantiert. Die Vorteile von Host-RAID sind der geringe Anschaffungspreis und ebenso wie bei Hardware-RAID die Betriebssystemunabhängigkeit. Als dritte Möglichkeit existiert das sogenannte Software-RAID. Mo- derne Betriebssysteme wie Linux, Windows und Mac OS X ermögli- chen das softwaremäßige Zusammenschließen von Laufwerken zu einem RAID auch ohne einen entsprechenden Controller. Unter Linux exis- tiert hierfür das Kommando mdadm. Bei Software-RAID entstehen keine Kosten für zusätzliche Hardware. Nachteilig ist die Betriebssystemab- hängigkeit, denn ein Software-RAID-Verbund funktioniert nur innerhalb der Betriebssystemfamilie, in der er erzeugt wurde. Genau wie beim Host-RAID ist beim Software-RAID nur der Aufbau eines RAID 0 oder RAID 1 empfehlenswert, denn das Berechnen von Paritätsinformationen muss der Hauptprozessor erledigen. 6 Der RAID-Controller arbeitet für das Betriebssystem transparent. Er konfiguriert und verwaltet den RAID-Verbund. Das Betriebssystem sieht den RAID-Verbund als ein einzelnes großes Laufwerk. 4.5 RAID 67 Abb. 4.14 Schematische Darstellung der Datenvertei- lung bei einem RAID 0 4.5.1 RAID 0 Dieses RAID-Level realisiert das sogenannte Striping. Es verbessert die mögliche Datentransferrate, bietet aber keine Redundanz. In einem RAID 0 werden die verbundenen Laufwerke in Blöcke gleicher Größe unterteilt. Bei ausreichend großen Ein-/Ausgabeaufträgen größer 4 oder 8 kB), können die Zugriffe parallel auf mehreren oder allen Laufwerken durchgeführt werden (siehe Abb. 4.14). Fällt allerdings ein Laufwerk aus, können die Daten nicht mehr voll- ständig rekonstruiert werden. RAID 0 eignet sich darum nur für sol- che Anwendungsbereiche, wo die Sicherheit der Daten bedeutungslos ist oder eine geeignete Form der Datensicherung existiert. 4.5.2 RAID 1 Der Fokus dieses RAID-Levels liegt auf der Sicherheit. Es realisiert eine Spiegelung der Daten (englisch: Mirroring). Dabei enthalten alle Lauf- werke im Verbund die identischen Daten (siehe Abb. 4.15). Sind die Laufwerke unterschiedlich groß, bietet der Verbund mit RAID 1 höchs- tens die Kapazität des kleinsten Laufwerks. Der Ausfall eines Laufwerks führt nicht zu Datenverlust, weil die übrigen Laufwerke die identischen Daten vorhalten. Zum Totalverlust aller Daten kommt es nur beim Aus- fall aller Laufwerke. 68 4 Grundlagen der Rechnerarchitektur Abb. 4.15 Schematische Darstellung der Datenvertei- lung bei einem RAID 1 Eine Verbesserung der Schreibgeschwindigkeit ist mit RAID 1 nicht möglich. Die Lesegeschwindigkeit kann allerdings durch eine intelligen- te Verteilung der Zugriffe auf die angeschlossenen Laufwerke gesteigert werden. Da jede Datenänderung auf allen Laufwerken geschrieben wird, fin- den fehlerhafte Dateioperationen sowie Angriffe durch Viren oder ande- re Schadsoftware auf allen Laufwerken statt. Aus diesem Grund sollte weder ein RAID 1, noch ein anderes RAID-Level die regelmäßige Si- cherung wichtiger Daten ersetzen. 4.5.3 RAID 2 Dieses RAID-Level realisiert Bit-Level Striping mit Hamming-Code- Fehlerkorrektur. Das bedeutet, dass die Daten bitweise auf die Laufwer- ke verteilt werden. Alle Bits, deren Positionsnummer Potenzen von zwei sind (1, 2, 4, 8, 16, usw.), sind die Prüfbits. Die Verteilung der Nutzdaten und der Prüfbits über mehrere Laufwerke (siehe Abb. 4.16) verbessert den Datendurchsatz beim Lesen und Schreiben. Der primäre Anwendungsbereich von RAID 2 waren Großrechner. Wegen der großen Anzahl benötigter Laufwerke war RAID 2 zu kei- ner Zeit nennenswert populär. Sinnvoll war dieses RAID-Level zu einer Zeit, als die Laufwerke noch keine interne Hamming-Code-Fehlerkor- rektur enthielten. Da moderne Festplatten und SSDs bereits via Ham- ming-Code-Fehlerkorrektur einzelne Bitfehler erkennen und korrigieren, 4.5 RAID 69 Abb. 4.16 Schematische Darstellung der Datenverteilung bei einem RAID 2 ist RAID 2 nicht länger sinnvoll und wird in der Praxis nicht mehr ver- wendet. 4.5.4 RAID 3 Byte-Level Striping mit Paritätsinformationen realisiert RAID-Level 3. Die Paritätsinformationen werden auf einem Paritätslaufwerk gespei- chert (siehe Abb. 4.17). Jede Schreiboperation auf dem RAID führt auch zu Schreiboperationen auf dem Paritätslaufwerk, was einen Engpass (Flaschenhals) darstellt. Zudem fällt das Paritätslaufwerk statistisch häufiger aus, weil es im Gegensatz zu den Datenlaufwerken bei jedem Abb. 4.17 Schematische Darstellung der Datenverteilung bei einem RAID 3 70 4 Grundlagen der Rechnerarchitektur Tab. 4.5 Berechnung der Paritätsinformationen bei RAID 3 Bits auf den Summe Summe ist... Paritätslaufwerk Datenlaufwerken 0+0+0 H) 0 H) gerade H) Summen-Bit 0 1+0+0 H) 1 H) ungerade H) Summen-Bit 1 1+1+0 H) 2 H) gerade H) Summen-Bit 0 1+1+1 H) 3 H) ungerade H) Summen-Bit 1 1+0+1 H) 2 H) gerade H) Summen-Bit 0 0+1+1 H) 2 H) gerade H) Summen-Bit 0 0+1+0 H) 1 H) ungerade H) Summen-Bit 1 0+0+1 H) 1 H) ungerade H) Summen-Bit 1 Schreibzugriff auf den RAID-Verbund auch einen Schreibzugriff auf das Paritätslaufwerk kommt. Aus diesen Gründen wurde RAID 3 in der Praxis meist von RAID 5 verdrängt. Tab. 4.5 zeigt die Berechnung der Paritätsinformationen anhand des in Abb. 4.17 gezeigten Szenarios mit drei Datenlaufwerken und einem Paritätslaufwerk. 4.5.5 RAID 4 Block-Level Striping mit Paritätsinformationen realisiert RAID 4. Ge- nau wie bei RAID 3 werden auch hier die Paritätsinformationen auf einem Paritätslaufwerk gespeichert (siehe Abb. 4.18). Der Unterschied zu RAID 3 ist, dass nicht einzelne Bits oder Bytes, sondern als Blöcke (englisch: Chunks) gleicher Größe geschrieben werden. Ansonsten gel- ten die für RAID 3 genannten Nachteile auch für RAID 4. Genau wie RAID 3 wird auch RAID 4 in der Praxis selten eingesetzt, weil RAID 5 nicht die bereits beschriebenen Nachteile aufweist. Ein RAID 4 mit nur einem Datenlaufwerk weist auf den ersten Blick Ähnlichkeit mit einem RAID 1 auf, da in diesem Fall auf dem Datenlauf- werk und auf dem Paritätslaufwerk die gleichen Daten gespeichert sind. Allerdings bietet ein solcher RAID 4-Verbund keine verbesserte Lese- geschwindigkeit. Zudem wird die Schreibgeschwindigkeit durch das bei jedem Schreibzugriff nötige Einlesen und Neuberechnen der Paritätsin- 4.5 RAID 71 Abb. 4.18 Schematische Darstellung der Datenverteilung bei einem RAID 4 formationen verringert. Dieser Aufwand zum Einlesen und Berechnen existiert bei der Spiegelung mit RAID 1 nicht. Anwendungsbeispiele für RAID 4 sind die NAS-Server FAS2020, FAS2050, FAS3040, FAS3140, FAS6080 der Firma NetApp. 4.5.6 RAID 5 Block-Level Striping mit verteilten Paritätsinformationen realisiert RAID-Level 5. Dabei werden die Nutzdaten und Paritätsinformatio- nen auf alle Laufwerke verteilt (siehe Abb. 4.19). Die Vorteile dieses Vorgehens sind neben einem verbesserten Datendurchsatz beim Lesen und Schreiben auch eine Verbesserung der Datensicherheit, ohne dass ein einzelnes Paritätslaufwerk einen Flaschenhals verursacht. Genau wie bei RAID 4 werden die Nutzdaten nicht als einzelne Bits oder Bytes, sondern als Blöcke (englisch: Chunks) gleicher Größe ge- schrieben. Typischerweise sind die Blöcke 512 Bytes und 8 kB groß. Je nach konkreter Anwendung kann es sinnvoll sein, größere Blöcke zu ver- wenden, zum Beispiel bei Datenbanken oder Email-Servern. Die Berechnung der Paritätsinformationen erfolgt, indem die Blöcke einer Zeile (siehe Abb. 4.19) mit XOR verknüpft werden. Die folgende Berechnung erzeugt zum Beispiel die Paritätsinformationen der Blöcke 72 4 Grundlagen der Rechnerarchitektur Abb. 4.19 Schematische Darstellung der Datenverteilung bei einem RAID 5 16 bis 19: Parität(16–19) D Block(16) XOR Block(17) XOR Block(18) XOR Block(19) 4.5.7 RAID 6 Block-Level Striping mit doppelt verteilten Paritätsinformationen rea- lisiert RAID 6. Dieses RAID-Level funktioniert im Prinzip genau so wie RAID 5, verkraftet aber den gleichzeitigen Ausfall von bis zu zwei Laufwerken, weil die Paritätsinformationen doppelt vorgehalten werden (siehe Abb. 4.20). Die verbesserte Datensicherheit gegenüber RAID 5 wird durch einen niedrigeren Datendurchsatz beim Schreiben erkauft, da der Schreibaufwand für die Paritätsinformationen höher ist. 4.5.8 RAID-Kombinationen Zusätzlich zu den bekannten RAID-Leveln existieren verschiedene RAID-Kombinationen. Dabei werden mindestens zwei RAID-Verbünde mit eventuell sogar unterschiedlichen RAID-Leveln zu einem größeren Verbund zusammengefasst. Ein Beispiel für eine solche Kombination ist RAID 10 (siehe Abb. 4.21), bei dem mindestens zwei RAID 1 zu einem 4.5 RAID 73 Abb. 4.20 Schematische Darstellung der Datenverteilung bei einem RAID 6 großen RAID 0 verbunden sind. Einige weitere Beispiele für mögliche Kombinationen sind: RAID 00: Mehrere RAID 0 werden zu einem RAID 0 verbunden RAID 01: Mehrere RAID 0 werden zu einem RAID 1 verbunden RAID 05: Mehrere RAID 0 werden zu einem RAID 5 verbunden RAID 15: Mehrere RAID 1 werden zu einem RAID 5 verbunden Abb. 4.21 Schematische Darstellung der Datenverteilung bei einem RAID 10- Verbund 74 4 Grundlagen der Rechnerarchitektur RAID 50: Mehrere RAID 5 werden zu einem RAID 0 verbunden RAID 51: Mehrere RAID 5 werden zu einem RAID 1 verbunden Je nach Kombination und den verwendeten RAID-Leveln ist es auf diese Weise möglich, die Ausfallsicherheit und Geschwindigkeit noch weiter zu steigern. Gleichzeitig steigt damit aber auch die Anzahl der benötigten Laufwerke.