ANZEIGE
ANZEIGE
key2it.de   Der Schlüssel zur Informationstechnik
 Start

Grundlagen: RAID

Grundlagen: 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

Kontakt | Impressum | Datenschutz | © 2017-2023 NFL / Opetus Software GmbH

Die Benutzung von Informationen und Hinweisen aus Artikeln, Meldungen u.a. dieser Website erfolgt auf eigene Gefahr! Die Autoren haften nicht für irgendwelche Schäden, die durch die Nutzung dieser Informationen, ob direkt oder indirekt, resultieren.

pmail32.de · mercury32.de · key2it.de · edv-nachrichten.de