RAID (Redundant Array of Independent Disks) Bei CPUs und Hauptspeichern verdoppelt sich die Leistung etwa jedes Jahr. Massenspeicher verdoppeln ihre Kapazität nur etwa alle zwei Jahre, die Positionierzeit halbiert sich gar nur alle sieben Jahre. Plattenlaufwerke hinken also immer mehr der Technologiekurve der CPUs hinterher.
Man benötigt deshalb Techniken, die es auf Basis der sich langsamer entwickelnden Plattentechnologie dennoch schaffen, mit der Prozessorgeschwindigkeit und dem Datenhunger der heutigen Systeme Schritt zu halten - durch erhöhte Zugriffsgeschwindigkeit und erhöhte Kapazität .
Typische MTBF-Zeiten (Mean Time Between Failure = durchschnittliche Zeit zwischen zwei Ausfällen) von Laufwerken liegen heute bei über 500.000 Stunden. Bei 100 Laufwerken an einem Rechner muss man mit einem Ausfall pro Halbjahr rechnen. Selbst wenn man davon ausgeht, dass die Zuverlässigkeit der Laufwerke in den nächsten Jahren weiter steigt, ist dieser Zustand nicht tragbar. Es werden also Systeme benötigt, die ausfallsicher sind.
Unter dem Oberbegriff RAID fasst man Technologien zusammen, die mehrere Laufwerke zu grösseren, teilweise auch ausfallsicheren Gesamtsystemen zusammenpacken. RAID steht dabei für Redundant Array of Independent Disks, wobei oft statt "independent" auch "inexpensive" gelesen wird.
Redundant = ausfallsicher bedeutet, dass der Ausfall eines Einzellaufwerks weder zu einem Ausfall des Gesamtsystems noch zu Betriebsunterbrechung oder gar zu Datenverlust führt. RAID schließt oft verwendete Technologien wie Mirroring (d.h. Spiegelung von zwei oder mehreren Laufwerken an einem Controller), Duplexing (dito, aber mit zwei getrennten Controllern) und Striping (Zusammenfassen von mehreren Laufwerken als logische Einheit und blockweises Verteilen der Daten auf diese Laufwerke) ein.
Unterschiedliche Level von RAID werden in der Literatur diskutiert. Die Bezeichnung Level in der RAID-Bezeichnung ist eigentlich missverständlich, denn RAID Level 1 baut keinesfalls auf RAID Level 0 auf. Statt Level sollte man eigentlich besser Typ sagen.
Bevor auf die einzelnen RAID-Level genauer eingegangen wird, folgen einige grundlegende Überlegungen zu Plattenzugriffen, denn die Änderung der Performance beim Schritt vom Einzellaufwerk zu RAID ist stark abhängig von der Anwendung:
Wichtig ist der Mix zwischen Schreib- und Lesezugriffen und die durchschnittliche Länge eines einzelnen Transfers.
Bei einem Einzelplattenlaufwerk ist ein Lesezugriff (Caches, read-ahead-Buffer und andere Techniken zur Performancesteigerung sollen vorläufig außer Betracht bleiben) gleich schnell wie ein Schreibzugriff. Dies ist bei Plattenarrays keinesfalls so und auch von Level zu Level unterschiedlich.
Geschwindigkeitsunterschiede gibt es auch von kurzen (meist einer oder ganz wenige Blöcke) zu langen Requests (meist mehrere hundert Blöcke). Der erste Typ kommt vor allem in Datenbankanwendungen, Transaction Processing Systemen und kommerziellen Multiuser-Anwendungen vor. Der zweite Typ ist in der Regel bei Bildverarbeitung, Einsatz von Supercomputern oder technisch/wissenschaftlicher Datenerfassung zu finden. Jedes der weiter unten diskutierten RAID-Konzepte hat eine andere Charakteristik bei langen bzw. kurzen Requestlängen.
RAID ist keine Lösung für alle Arten von Problemen mit dem Plattendurchsatz. RAID ist keinesfalls immer schneller als der Einsatz von (konventionell genutzten) Einzellaufwerken. Auch beim Einsatz einer der nachfolgend beschriebenen RAID-Typen sollte man die Aufteilung der Daten optimieren. Aus der Regel, dass man auf wenige Daten sehr häufig und auf die meisten Daten sehr selten zugreift folgt: Sinnvoll ist ein hierarchisches System mit Halbleiterspeicher (z.B. RAM-Disk) für ständig benutzte Daten, ein sehr schneller Massenspeicher (eventuell gespiegelt) für oft genutzte, einen durchschnittlich schnellen und großen Massenspeicher (z.B. RAID) für weniger oft genutzte Daten und einen Archivspeicher (z.B optische Platten mit automatischem Wechsler) für selten benutzte Daten.
RAID Level 0 Dieser Typ von RAID steht für Striping. Bei diesem Verfahren werden mehrere kleinere Laufwerke zu einem großen logischen Laufwerk zusammengefasst. Der Striping-Faktor sagt dabei aus, wie groß die Stücke sind, welche jeweils auf eines der Laufwerke geschrieben werden. Sind die Stücke sehr klein (typisch ein Byte), so erreicht man unabhängig von der Länge des Lese- oder Schreibrequests eine wesentliche Erhöhung der Transferrate, da alle Laufwerke in einem RAID-0-Set praktisch gleichzeitig transferieren.
Bei kurzen Schreibrequests (z.B. Einzelblöcke) hat diese Technik Nachteile: Kürzt man die physikalische Länge der Blöcke auf der Platte (bei 512 Byte Blöcken und vier Laufwerken z.B. nur 128 Bytes lang), vermindert sich die nutzbare Kapazität durch den zusätzlichen Platz für Blockheader. Lässt man die Länge der physikalischen Blöcke bei der Standardlänge, hat man zwar keinen Kapazitätsverlust, aber es muss beim Schreiben eines einzelnen Blocks erst auf allen Platten jeweils derjenige physikalische Block gelesen werden, in dem Teile des zu schreibenden Blocks stehen. Die Teilinformation muss ersetzt werden, dann erst können alle beteiligten Blöcke wieder auf die Platten zurückgeschrieben werden.
RAID-0 mit kleinem Striping-Faktor bietet den Vorteil der hohen Transferrate beim Schreiben und Lesen von langen Requests, hat aber wesentliche Nachteile in der Leistung bei kurzen Requests.
Vergleicht man RAID-0 nicht mit einem (entsprechend größeren) Einzellaufwerk, sondern mit mehreren kleineren Laufwerken, die ja kurze Requests überlappt abarbeiten können, wird der Nachteil von RAID-0 noch deutlicher.
Wählt man den Striping-Faktor nun groß (mehrere Blöcke), erreicht man, dass sowohl die Schreib- als auch die Leseperformance bei kurzen Transfers mit der eines Einzelplattenlaufwerks vergleichbar bleibt. Auch ist es möglich, mehrere kurze Requests gleichzeitig auf unterschiedlichen Platten abzuarbeiten.
In beiden Fällen bleibt jedoch der Nachteil, dass bei Ausfall eines einzelnen Laufwerks auf die gesamten Daten nicht mehr zugegriffen werden kann. RAID-0 (Striping) ist eigentlich kein RAID (keine erhöhte Datensicherheit).
Host-Based Striping gibt es bei vielen Betriebssystemen als Softwarelösung oder auch eingebaut im Plattencontroller. Da die Plattenlaufwerke vom Controller oftmals nur über einen Datenkanal angesprochen werden, kommt bei einer Controllerlösung meist der Vorteil der höheren möglichen Datenübertragung nicht zum Tragen, da die Requests auf den einzelnen Laufwerken doch sequentiell und nicht parallel abgearbeitet werden.
RAID Level 1 RAID-1 bedeutet Mirroring. Hier werden alle Daten einer Platte auf alle weiteren Platten des RAID Sets geschrieben. Vorteil: bei Ausfall einer Platte bleiben die Daten weiter zugreifbar. Die Leistung beim Schreiben bleibt der einer Einzelplatte bzw. RAID-0 gleich (solange die Platten auf die Kanäle verteilt sind), geht man davon aus, dass die zusätzliche Rechnerbelastung durch doppeltes Schreiben nicht zählt. Die Leseleistung verdoppelt sich im besten Fall, da jetzt die Requests auf zwei Plattenlaufwerke (bzw. zwei Sets) aufgeteilt werden können, die unabhängig voneinander lesen können.
Aber: die Kosten für RAID-1 sind hoch: nur die Kapazität einer Festplatte des verfügbaren Platzes steht für die Originaldaten zur Verfügung, die Rest wird durch redundante Daten verbraucht. Jedoch ist RAID-1 einfach zu implementieren.
Mirroring (von Einzelplatten) gibt es als Controller-Lösung oder als Softwarelösung für unterschiedliche Betriebssysteme.
RAID Level 0+1RAID-0+1, manchmal auch RAID-10 genannt, vereinigt Mirroring und Striping. Hier wird tatsächlich die Hälfte der Gesamtkapazität gespiegelt, wobei sich die hohe Sicherheit der Spiegelung mit der Performance von RAID-0 verbindet. In den meisten Fällen ist dies die schnellste RAID-Lösung, aber natürlich gilt auch hier das Argument von RAID-1: Die Kosten sind, da doppelt so viele Platten verwendet werden, sehr hoch.
RAID Level 2RAID-2 verwendet denselben Algorithmus (ECC – Error Correction Code), den man auch bei fehlerkorrigierenden Hauptspeicher oder innerhalb von Plattenblöcken zur Fehlererkennung und Fehlerkorrektur verwendet. Hier werden mehrere Laufwerke um Fehlerkorrektur – Laufwerke ergänzt. Wie bei RAID-0 werden die Daten bitweise auf die Laufwerke des Stripe-Sets aufgeteilt. Zusätzlich werden die ECC-Bits auf ECC-Laufwerke geschrieben. Die in den Literaturbeispielen meist genannten Grössen sind 10 Datenlaufwerke und 4 ECC-Laufwerke. Die Zeichnung zeigt nur vier Datenlaufwerke und drei ECC-Laufwerke.
Vorteil dieser Lösung ist, dass auch bei gleichzeitigem Ausfall von zwei Laufwerken die Daten nicht verloren sind. Bezüglich der Leseperformance gilt dasselbe wie bei RAID-0. Auch die Schreibperformance bei langen Transfers ist gut. Bei kurzen Transfers allerdings muss vor jedem Schreiben erst ein Lese der beteiligten Blöcke aller Laufwerke stehen, um die neue ECC-Information berechnen zu können. RAID-2 wird deshalb normalerweise als absoluter Overkill angesehen.
RAID Level 3RAID-3 geht wieder einen Schritt zurück und ersetzt die ECC - Plattenlaufwerke durch ein einzelnes Parity - Laufwerk. Die Leistung bei Lesezugriffen ist bei langen Transfers wegen der hohen erreichbaren Transferrate sehr gut. Der Striping – Faktor ist ein einzelnes Byte.
Kurze Lesezugriffe sind (unter der Voraussetzung von Spindelsynchronisation) so schnell wie auf einem einzelnen Laufwerk. Nachteil ist die schlechtere Schreibperformance. Dem Schreibzugriff gehen bei kurzen Zugriffe voraus: Erst müssen alle physikalische Datenblöcke auf allen Platten gelesen werden, um den zu schreibenden Block einzubauen. Zusätzliche muss die Parity Information errechnet und geschrieben werden.
Ein einzelner Schreibzugriff zerfällt also in mehrere (hintereinander ablaufende) Lese- und Schreibzugriffe. Die Schreibperformance bei RAID-3 ist extrem schlecht. Die Leseperformance ist bei langen Zugriffen sehr gut , bei kurzen dagegen nicht besser als bei einzelnen Laufwerken. Allerdings muss man bedenken: Bei einem einzelnen Laufwerk ist normalerweise die Anzahl der Zugriffe pro Zeiteinheit viel geringer als bei einem RAID-Set mit höherer Kapazität. Betrachtet man die Anzahl der möglichen Zugriffe pro Megabyte und Zeiteinheit, so schneidet RAID-3 beim Lesen nur bei langen Transfers gut ab. Lesen von kurzen Transfers und Schreiben generell ist langsamer als bei einzelnen Laufwerken.
RAID Level 4 Während Ausfallsicherheit bei RAID-1 und 0+1 doppelte Plattenkapazität erfordert - und bei RAID 0 garnicht gegeben ist - verwendet RAID-4 Parity um die Daten zu sichern. Zu jeweils x Festplatten, die nach den Striping-Verfahren beschrieben werden kommt lediglich eine zusätzliche Parityplatte, deren n-tes bit jeweils das Paritybit zu den x n-ten bits der restlichen Platten enthält. Fällt eine Festplatte aus, kann aus dieser Parityplatte zusammen mit den Daten der übrigen Platten bit für bit der Inhalt der defekten Platte rekonstruiert werden. Das Schreiben von Daten auf einer Platte erfordert allerdings immer auch das Ändern der Parityplatte - beide Blöcke müssen zuerst gelesen und aus ihnen und den neuen Daten der neue Paritywert berechnet werden. So ist die Performance geringer als bei RAID-0 oder 1.
RAID Level 5 Bei RAID muss bei jedem Schreibzugriff auf die Parity-Disk zugegriffen werden. Dieses Laufwerk wird damit der Flaschenhals in diesem System. RAID-5 verteilt Parity und Daten blockbereichsweise auf alle Laufwerke. Jedes Laufwerk ist damit für einen bestimmten Blockbereich Parity-Laufwerk. Lesezugriffe werden etwas schneller, weil sie auf noch mehr Laufwerke verteilt werden können.
Bei kurzen Transfers ist aber auch RAID-5 auf der Basis von Zugriffen pro Zeiteinheit pro Megabyte einem Einzellaufwerk weit unterlegen.
Andere RAID Level Neben den oben genannten RAID Level, welche in einer Studie der Universität Berkeley erstmals beschrieben wurden und sich als Quasi-Standard etabliert haben, gibt es noch eine Reihe von herstellerspezifizierten RAID Level, welche aber in der Regel nur Modifikationen der o.g. RAID Level darstellen.
Wo wird RAID nun implementiert Es gibt zwei Möglichkeiten: Entweder in einem Controller, der zwischen dem Rechner und den Laufwerken sitzt (als Karte im Rechner oder in einer separaten Box) oder im Hostrechner selbst. Vorteil der ersten Lösung: Keine zusätzliche Belastung des Rechners durch die Verwaltung von RAID. Vorteil der zweiten Lösung: Da in diesem Falle nicht alle Daten durch den Flaschenhals RAID-Controller zum Hostrechner müssen, kann eine höhere Datentransferrate durch die gleichzeitige Verwendung mehrerer Übertragungspfade erreicht werden.
Eine Reihe von Herstellern (sowohl Plattenlaufwerks- als auch Controllerhersteller) bieten RAID-Implementierungen an. Diese Implementierungen unterscheiden sich in folgenden technischen Eigenschaften:
Einfachere Implementierungen schliessen mehrere Laufwerke an einen SCSI-Bus an und fassen diese unter Verwendung von einem RAID- oder RAID-ähnlichen Konzept zusammen. Andere Implementierungen haben pro Plattenlaufwerk einen eigenen Controller, sie erhöhen dadurch die Ausfallsicherheit, da selbst bei Ausfall des Controllers die Daten weiter zugreifbar bleiben.
Laufwerke können fest eingebaut werden. Es ist jedoch auf jeden Fall besser, wenn auch teurer, die einzelnen Laufwerke so einzubauen, dass sie im laufenden Betrieb ausgewechselt werden können und somit der Datenzugriff nicht unterbrochen werden muss ( Hot-Swap ). Gute RAID-Systeme erlauben beim Austausch eines Laufwerks das Rekonstruieren der Daten für dieses Laufwerk während des normalen Betriebs.
Einen wichtigen Einfluss auf die Ausfallsicherheit von RAID-Systemen haben auch andere Elemente: Hängen alle Laufwerke an einem einzigen Power-Supply, ist die Ausfallwahrscheinlichkeit (aber nicht notwendigerweise die Wahrscheinlichkeit des Datenverlustes) höher als bei getrennten Stromversorgungen für jedes einzelne Laufwerk oder einer anderen, redundanten Art der Stromversorgung. Natürlich sollten dann auch Kabel, Lüfter, Controller und Rechneranschlüsse doppelt ausgeführt werden, um den Single Point of Failure auszuschließen.
Und noch eine Warnung: Bei allen Betrachtungen von Ausfallhäufigkeiten und Ausfallwahrscheinlichkeiten geht man davon aus, dass Laufwerksausfälle statistisch unabhängig voneinander vorkommen. In der Praxis können externe Ereignisse (Blitzschlag, Stromspitzen) eintreten, die zu einer höheren punktuellen Ausfallwahrscheinlichkeit - von mehr als einem Laufwerk - führen können, sodass die MTBF-Überlegungen für RAID-Systeme teilweise praxisfremd sind.
Und selbst bei einem RAID-System mit unendlich hoher durchschnittlicher Zeit zwischen zwei Ausfällen darf man das Backup nicht vergessen: Vor einem falschen Delete-Kommando oder einem Softwarefehler, der Daten zerstört, schützt auch RAID nicht. Und Würmer, Trojanische Pferde, Viren und Bomben werden wohl auch nicht aussterben oder Respekt gegenüber RAID entwickeln.
Fazit:
RAID-Systeme dienen der verbesserten Verfügbarkeit von Daten, und nicht der Performance-verbesserung. Sie sind in der Regel bei der Geschwindigkeit Einzellaufwerken unterlegen. Sinnvoll ist der Einsatz von RAID Level 0 bis 5 zum Speichern von großen Datenmengen, auf die entweder seltener oder nur mit langen Transfers zugegriffen wird. RAID bietet hier eine kostengünstige Möglichkeit, ausfallsichere Massenspeicher zu konfigurieren. Für häufiger benutzte Daten empfiehlt sich weiterhin der Einsatz von (gespiegelten) Einzellaufwerken, für extrem häufig verwendete Daten hingegen der Einsatz von RAM-Disks, die, vorausgesetzt die Anzahl der Schreibzugriffe ist nicht zu hoch, mit normalen Winchesterplatten gespiegelt werden können. Spiegeln sollte man wegen der geringeren Rechnerbelastung in der Regel im Controller bzw. Hostadapter. Braucht man die hohe Transferrate langer Transfers, sollte Striping mehrere Datenpfade zum Rechner zulassen und deswegen Host-Based sein.
Auf jeden Fall sollte ein RAID (und der Rechner) an eine USV-Anlage angeschlossen werden, da sonst im Fall eines Stromausfalls der eigentliche Sinn, die absolute Datenverfügbarkeit, nicht mehr erfüllt ist.
RAID Konfigurationen
RAID Systeme für Windows NT Bei Windows NT ergeben sich vielfältige Möglichkeiten, ein RAID System aufzubauen. Folgende Konfigurationen sind möglich:
• Software RAID
• Interne Hardware RAID mit PCI RAID Controller
• Externe Hardware RAID
Software RAIDWindows NT bietet bereits standardmäßig die Möglichkeit mehrere Plattenlaufwerke zu einem RAID-System zusammenzufassen. Hierbei brauchen lediglich die Festplatten an einen SCSI Hostadapter intern oder extern angeschlossen zu werden. Die Konfiguration wird dann über Windows NT vorgenommen. Diese Lösung ist zwar preisgünstig und einfach einzurichten, hat jedoch auch Nachteile. Vor allem wenn sehr große Datenmengen übertragen werden bzw. wenn Zugriffe parallel von mehreren Usern (beispielsweise in einem Netz) auf das RAID erfolgen hat es in diesem Fall Auswirkungen auf die Performance des NT-Rechners. Hierbei muss der gesamte Rechenaufwand (verteilen der Daten auf die einzelnen Platten und Berechnen der Parity) von der CPU des Rechners aufgebracht werden. Des weiteren wird das Betriebssystem des Rechners über eine Bootplatte geladen, die nicht redundant sein kann, da die RAID Konfiguration erst nach dem Laden des Betriebssystems zur Verfügung steht. Auf der Bootplatte befinden sich auch alle Konfigurationsdaten für den RAID Verband. Fällt die Bootplatte aus, ist das RAID System nicht mehr operabel. Diesem Nachteil begegnen die folgenden Hardware RAID Lösungen mit separatem RAID Controller.
Interne Hardware RAID mit PCI RAID Controller
Hierbei übernimmt der RAID Controller, wie bei den externen Hardware RAIDs, die gesamte Rechenarbeit. Somit arbeiten die Controller unabhängig von der CPU Auslastung, mit konstanter Performance. Die RAID Konfigurationsdaten befinden sich auf allen Festplatten des RAID Systems und sind somit auch bei Ausfall einer Festplatte oder sogar des ganzen Controllers immer vorhanden. Bei Tausch des Controllers oder einer Festplatte werden die RAID Konfigurationsdaten eingelesen und der Rebuilt gestartet.
RAID Controller sind mit internen Anschlussbuchsen und einem externen Anschluss für SCSI-Festplatten versehen. Somit hat man die Möglichkeit, die Festplatten des RAID Systems intern in den Rechner einzubauen oder aber extern anzuschließen.
Externe Hardware RAID_
Die High-End RAID Lösung stellen die sog. Hardware RAIDs (bzw. SCSI-to-SCSI RAIDs) dar. Hier sind der Controller und die Festplatten in einem separaten Gehäuse untergebracht. Das RAID System wir mittels SCSI-Kabel mit dem Hostadapter des Rechners verbunden. Durch die Backplane, an der Controller und Festplatten direkt angeschlossen sind, erreicht man kürzeste Kabellängen und somit maximale Datensicherheit. Weitere Datensicherheit kann durch den Einsatz von redundanten Controllern erreicht werden. Hierbei wird bei Defekt des Controllers automatisch auf einen zweiten Controller im Gehäuse umgeschaltet, ohne Zeitverzögerung und Datenverlust. Der defekte Controller kann dann im laufenden System gegen einen neuen getauscht werden.
Hardware RAIDs arbeiten, wie PCI RAID Controller, immer mit konstanter Performance, unabhängig von der CPU Auslastung. Hierbei werden die Daten vom Hostadapter des Rechners über den SCSI-Bus direkt zum RAID-Controller übertragen. Dort werden die gesamten Daten in den Cache eingelesen. Danach ist der SCSI-Bus nicht mehr belastet. Der Controller des Hardware RAIDs verteilt dann die Daten auf die einzelnen Platten und berechnet die Parity, in Abhängigkeit vom gewähltem RAID-Level. Währenddessen ist die CPU des Rechners nicht mit den Rechenoperationen des RAID Systems belastet. Ein entsprechend groß gewählter Cache, der als Write-Back-Cache konfiguriert ist, kann die Schreibperformance erheblich erhöhen. Das Lesen der Daten geschieht dann analog hierzu in umgekehrter Reihenfolge. Hardware-RAIDs können im Vergleich zu PCI RAID Controllern plattformübergreifend eingesetzt werden.
---
hab da auch noch was ganz nützliches
bilder gibts auch noch.. muss noch uploaden
[x]sticky
so bissl neu formatiert und mühsamerweise alle bilder geuploadet
quelle:
GDT/NWT Lehrer @bsit