Grundlagen: RAIDGrundlagen: RAID basiert auf dem EDV-Info-Artikel "Grundlagen: RAID (v1)" aus dem Jahr 1998. Autor: Juergen Frick
Kontakt: Wolfgang Schulz Dieser Artikel soll einen grundsaetzlichen Ueberblick ueber RAID bieten. Er ist hierbei als moeglicher Einstieg in das Thema gedacht bzw. als Grundlageninformation. Der Autor ist Technical Support Manager bei der ICP vortex Computersysteme GmbH in Flein. RAID (Redundant Arrays of Independent Disks) hat sich innerhalb der letzten Jahre im Bereich der PC-Server zum Standard entwickelt. RAID erhoeht die Datenverfuegbarkeit von Rechnersystemen. Beim Ausfall einer Festplatte bleibt das System trotzdem operabel. Waehrend vor 3-4 Jahren noch Disk-Mirroring auf Softwarebasis (z.B. Novell Netware) der Standard war, werden heute quasi alle professionellen Serversysteme auch mit Hardware-RAID Controllern angeboten. Durch die immer hoeheren Ansprueche an Performance und Kapazitaet, tritt das RAID5 Konzept, welches im Vergleich zu Mirroring (RAID1) eine bessere Ausnutzung der verfuegbaren Nettokapazitaet bietet bei gleichzeitig besserer Parallelisierung (mehr Laufwerke werden gleichzeitig benutzt), immer mehr in den Vordergrund. Die verschiedenen RAID-Konzepte werden gemeinhin als RAID-Levels bezeichnet. Hier folgt ein Ueberblick der von der UC Berkley spezifizierten RAID Levels. RAID 0 oder Data Striping Bei diesem RAID-Level werden zwei oder mehr Fesplatten zusammen geschaltet, indem die beim Benutzer entstehenden Daten (ABCD...) in kleine Bloecke aufgeteilt werden (4-128kB Blockgroesse). Diese Bloecke werden abwechselnd auf den unterschiedlichen Platten des RAID 0 Arrays gespeichert. Damit kann auf zwei oder mehr Festplatten parallel zugegriffen werden und die Schreib-/Lesegeschwindigkeit, besonders bei sequentiellen Zugriffen, wird erhoeht. Bei RAID 0 werden allerdings keinerlei Redundanzinformationen erzeugt, was bedeutet, dass, wenn eine Festplatte ausfaellt, alle Daten verloren sind. Diese fehlende Redundanz wird durch die 0 als RAID-Level angezeigt, was fuer keine Redundanz steht. RAID 0 wird deshalb in Serversystemen gewoehnlich nicht verwendet, wo Sicherheit ein Anspruch ist. RAID 1 oder Drive Mirroring / Drive Duplexing In einem RAID 1-System werden identische Daten auf zwei Festplatten gespeichert (100% Redundanz). Faellt eine der zwei Festplatten aus, arbeitet das Betriebssystem mit der verbleibenden Festplatte weiter. Obwohl es die optimale Ausfallsicherheit bietet, wird RAID1 meist nur in kleinen Servern eingesetzt. Werden grosse Kapazitaeten benoetigt, wird RAID1 sehr schnell recht teuer, da die doppelte Plattenkapazitaet benoetigt wird (doppelte Anzahl an Festplatten) um die Redundanz zu erhalten. RAID 2 oder Hamming System Ein RAID 2-System teilt die Daten in einzelne Bytes auf und schreibt sie auf die Datenplatten des Arrays. ECC (Error Correction Code) wird nach dem Hamming-Algorithmus berechnet und auf zusaetzliche Festplatten gespeichert. Dieses Verfahren wurde waehrend der Anfaenge von RAID verwendet, als Festplatten noch keine integrierten ECC-Mechanismen hatten. Die heutzutage in allen Massenspeichern integrierte ECC-Faehigkeit macht die Eigenschaft von RAID 2, einzelne Bit-Fehler korrigieren zu koennen ueberfluessig. Deshalb wird dieser RAID-Level nicht mehr eingesetzt. RAID 3 oder Striping auf Byte-Ebene mit Parity In einer RAID 3-Konfiguration werden die Daten in einzelne Bytes aufgeteilt und dann abwechselnd auf die Datenlaufwerke des Arrays geschrieben (ueblicherweise 2-4 Festplatten). Ein Parity-Byte wird fuer jede Datenreihe hinzugefuegt und auf einer zusaetzlichen Festplatte, dem sog. Parity-Laufwerk, gespeichert. (Dies ist vergleichbar mit der Parity, die fuer Speichermodule auf dem Mainboard verwendet wird, wo 8 Data Bits von einem Parity Bit geschuetzt werden). Faellt eine Festplatte in einem RAID 3-Array aus, koennen die Daten aus den uebrigen Nutzdaten und den gespeicherten Parity-Informationen ueber das RAID-System errechnet werden. Da moderne Festplatten und Betriebssysteme nicht mehr mit einzelnen Bytes arbeiten, findet RAID 3 kaum noch Anwendung. RAID 4 oder Striping auf Block-Ebene mit Parity RAID 4 ist mit RAID 3 vergleichbar mit dem Unterschied, dass die Daten in groessere Blocke (8, 16, 64 oder sogar 128 KBYTE) anstatt in Bytes aufgeteilt werden. Diese Bloecke werden auf den Datenfestplatten gespeichert (vergleichbar mit RAID 0-Funktion). Ein Parity-Block (vergleichbar mit der Summe der Daten in dieser Zeile) wird fuer jede Zeile berechnet und auf der Parity-Festplatte gespeichert. Mit dieser Parity-Information ist es moeglich, die verlorengegangenen Daten im Falle eines Festplattenausfalls rueckzurechnen. Die Performance eines RAID 4-Systems ist sehr gut, wenn man grosse sequentielle Lese- und Schreibzugriffe hat (Schreiben grosser zusammenhaengender Dateien). Bei verteilten Schreibzugriffen wird durch jeden Benutzerzugriff ein Zugriff auf den zugehoerigen Parity-Block notwendig (genaugenommen muss die Summe jeder Zeile erneut berechnet werden, wenn neue Daten geschrieben werden). Das bedeutet, dass bei verteilten Zugriffen durch den Benutzer jedesmal gewartet werden muss, bis die Parity-Daten auf das Parity-Laufwerk geschrieben worden sind. Daraus resultiert, dass RAID 4 bei solchen verteilten Schreibzugriffen relativ langsam ist. RAID 5 oder Striping auf Blocke Ebene mit verteilter Parity Der Unterschied zwischen RAID 4 und diesem RAID-Level ist, dass bei RAID 5 die Parity ueber alle Festplatten des Arrays verteilt wird. Dies beschleunigt verteilte Schreibzugriffe, da es kein dediziertes Parity-Laufwerk mehr gibt, welches zu einem Flaschenhals werden koennte. Die Lesegeschwindigkeit ist ueblicherweise mit der von RAID 4 vergleichbar. Deshalb ist RAID5 der gaengige RAID-Level bei Servern mit hoher Massenspeicherkapazitaet. RAID 10 oder gespiegeltes Striping Array Dieser neue RAID-Level ist eine Kombination von RAID 1 (Mirroring) und RAID 0 (Striping) und hat Eigenschaften von beiden Arrays - Sicherheit und sequentielle Performance. Manchmal wird dieser RAID-Level auch RAID 0 + 1 benannt. Ueblicherweise werden 4 Festplatten verwendet, da RAID 10 aus zwei Paaren gespiegelter Arrays besteht, die dann zu einem RAID 0-Array zusammengefasst werden. RAID 10 ist besonders geeignet, wenn grosse Dateien redundant gespeichert werden sollen, und da keine Parity berechnet werden muss, sind Schreibzugriffe sehr schnell. Neben den verschiedenen RAID-Leveln gibt es auch verschiedene Implementierungen von RAID. Man unterscheidet Software-RAID-Loesungen, externe RAID-Systeme (SCSI to SCSI RAID) und sogenannte Host-basierende RAID-Controller. Bei Software-RAID wird ein Treiber in das Betriebssystem integriert, der die RAID-Funktionalitaet enthaelt. Praktisch alle modernen Server-Betriebssysteme unterstuetzen verschiedene RAID-Levels. Nachteil dieser Implementierungen ist die Abhaengigkeit von Betriebssystem, die zusaetzliche Prozessorlast und vor allem die Notwendigkeit eines nicht zum RAID gehoerenden Boot-Laufwerkes, von wo der Treiber gestartet werden muss. Faellt dieses Laufwerk aus, so ist die Verfuegbarkeit der Daten dahin, fuer die man das RAID an sich konfiguriert hat. Hardware-RAID Loesungen haben diese Einschraenkungen nicht, d.h. es kann dort das Betriebssystem direkt vom RAID-Controller laden. Hier wird die RAID-Funktionalitaet vom Controller gesteuert, so dass die CPU des Servers nicht belastet wird. Nicht unerwaehnt bleiben soll, dass es auch Zwitterloesungen gibt, wie die AAA- und ARO-Serie der Firma Adaptec. Hier arbeitet zwar ein RAID-Treiber auf dem Server, einige Funktionen, wie z.B. das Berechnen der Redundanzinformationen (Parity) ist aber auf einen Coprozessor auf dem "RAID-Hostadapter" ausgelagert. Mit Hardware-RAID-Controllern ist die Performance solcher Loesungen trotzdem nicht vergleichbar. "Echte" Hardware-RAID-Controller gibt es in zwei Varianten. Die externen Loesungen basieren auf einem Controller, der direkt in ein RAID-Gehaeuse integriert wird und ueblicherweise ueber einen SCSI-Bus an den Server angebunden ist. Diese Loesungen sind aufgrund des eigenen Gehaeuses und der Bedienelemente des Controllers meist relativ teuer und finden deshalb eher in Rechnerwelten ihren Einsatz, die mit proprietaeren Betriebssystemen arbeiten. Ihr Vorteil ist, dass sie auch an solche Betriebssysteme Anbindung finden, fuer die es keine Unterstuetzung durch Host-basierende RAID-Controller gibt. Im PC-Server Bereich findet man zumeist Host-basierende RAID-Loesungen, wobei der Controller direkt in den Bus (PCI, EISA) des Servers eingesteckt wird. Durch die direkte Anbindung erreicht man die maximal moeglichen Transferraten und ist bei der Konfiguration des RAID selbst sehr flexibel. Es koennen Platten sowohl in den Server integriert werden als auch alternativ in ein externes Gehaeuse eingebaut werden. Waehrend die ersten Generationen der RAID-Controller meist nur von Experten zu konfigurieren und zu warten waren, sind die modernen Loesungen sehr komfortabel zu handhaben. Sie bieten z.B. Auto Hot-Plug Funktionen, d.h. ausgefallene Laufwerke werden durch Status-Anzeigen am Geraet markiert und die Festplatten koennen ohne User-Interaktion getauscht werden. Solche Funktionen erfordern natuerliche eine Kommunikation zwischen Plattensystem und Controller. Solche intelligenten Subsysteme koennen z.B. ueber den DECTM Fault Bus oder den neuen SAF-TE Standard (SCSI Accessed Fault Tolerant Enclosures) realisiert werden. Daneben bieten einige Controller ein komplettes Setup-Programm im ROM (z.B. ICP GDT, AMI MegaRAID), so dass zum Einrichten des RAIDs kein Betriebssystem mehr geladen werden muss. Doch nicht nur die Bedienung von RAID-Controllern hat sich vereinfacht, auch ihre Flexibilitaet ist gewachsen. "Online Expansion" heisst das Schlagwort. Damit laesst sich die Kapazitaet von RAID-Systemen durch Hinzufuegen weiterer Plattenlaufwerke erhoehen, ohne dass dabei die Redundanz (Ausfallsicherheit) verloren geht. Dieser Prozess kann im Hintergrund durchgefuehrt werden, also "online" waehrend der Server weiterhin am Netz ist. Auch hinsichtlich der Treiberschnittstelle ist eine hoehere Flexibilitaet geplant. Intels I2O Initiative soll es ermoeglichen, dass IO-Subsysteme, wie z.B. RAID-Controller ueber einen einheitlichen Treiber vom Betriebssystem angesprochen werden koennen. Dazu muss der Controller ueber eine entsprechende I2O kompatible Hardware, die sog. Messaging Unit verfuegen. Derzeit gibt es nur I2O vorbereitete Produkte, wie z.B. die GDT-Controller der Firma ICP vortex, die ueber die dazu notwendigen Hardwarevoraussetzungen verfuegen. Jürgen Frick, 1998, Sa. 21.03.1998 13:33, aktualisiert Di. 08.08.2017 11:31
|