Welches RAID Level wird benötigt?

Viele Anwender gehen davon aus, dass RAID5 die optimale RAID-Konfiguration ist: viel Kapazität, redundant, aber nur zwei „verschenkte“ Platten (eine für Parity und eine für hot Spare). In den meisten Fällen haben sie da auch Recht. Wenn es aber darum geht, die beste Performance und Sicherheit bei möglichst geringen Kosten zu erzielen, sollte man etwas genauer hinschauen und vor allem die Applikationen berücksichtigen, die auf das RAID zugreifen sollen. Hier die wichtigsten RAID-Level im Überblick mit ihren jeweiligen Vor- und Nachteilen:

Raid Level im Vergleich

RAID Level Verfahren Kosten für
n Platten Kapazität
Sicherheit Schreib-
performance
Lese-
performance
Einzelpatte n 0 0
RAID0 Striping n +++ ++
RAID1 Mirroring 2*n +++ 0 +
RAID0+1 Mirrored Stripes 2*n +++ +++ +++
RAID10 Striped Mirrors 2*n +++ +++ +++
RAID3 Parity Disk n+1 + ++
RAID5 Parity Sriped n+1 + ++ +
RAID6 Double Parity Sriped n+2 ++ + +

RAID0

RAID0 ist eigentlich kein RAID im Sinne von „redundant array of independant disks“, denn es ist zwar ein Array, aber nicht redundant. RAID0 meint Striping: Die Daten werden gleichmäßig auf alle Platten verteilt. Außer dass dadurch eine sehr große virtuelle Festplatte erzeugt wird, bedeutet Striping vor allem einen Performancegewinn: Bis die letzte Festplatte ihr Datenpaket bekommen hat, hat die erste ihren Cache auf die Magnetscheiben geschrieben und ist bereit, neue Daten aufzunehmen: Im Optimalfall summiert sich die Transfergeschwindigkeit der Platten. Die Sicherheit ist geringer als bei einzelnen Festplatten: der Ausfall einer Platte bedeutet Verlust aller Daten.

RAID1

RAID1 bedeutet Spiegelung und verdoppelt die Sicherheit, aber natürlich auch die Kosten. Da die Daten ohne Unterschied auf beiden Platten geschrieben werden ist der Schreibzugriff genauso schnell wie bei einer einzelnen Platte. Beim Lesen ist RAID1 durch einen Trick sogar schneller: Da der Inhalt beider Festplatten identisch ist, liest der Controller die eine Hälfte der Daten von der einen Platte, die andere Hälfte von der anderen.

Da RAID1 auf 2 Platten beschränkt ist, verwendet man gerne eine Kombination mit RAID0 um größere Kapazitäten zu spiegeln (RAID0+1) oder mehrere Spiegel durch Striping zusammenzufassen (RAID10). Hier werden einfach 2 RAID0 gespiegelt. Der Vorteil außer der großen Kapazität: Die Performance von RAID0 wird kombiniert mit der Sicherheit von RAID1 (und auch der „Trick“ beim Lesen von RAID1 wird übernommen). Für Datenbanken ist das die schnellste Lösung, wobei leider auch die Kosten von RAID1 vererbt werden: Selbst ohne Berücksichtigung von hot-spare-Platten steht nur die Hälfte der Brutto-Plattenkapazität zur Verfügung.

RAID3 und RAID5

RAID3 und RAID5 senken die Kosten der Redundanz gegenüber der Spiegelung, indem sie eine einzige Parity-Platte verwenden, während die Daten auf die restlichen Platten geschrieben werden (Striping). Die Parity-Platte sorgt dafür, dass die Quersumme aller Platten für jedes einzelne Bit gerade bleibt. Fällt eine Platte aus, kann sie aus allen anderen neu berechnet werden. Die Berechnung findet im Hintergrund statt, so dass das RAID weiter zur Verfügung steht.

Der Unterschied zwischen RAID3 und RAID5 ist, dass RAID 5 die Parity-Informationen gleichmäßig auf die Festplatten verteilt während RAID3 eine dedizierte Parity-Platte verwendet. RAID5 ist dadurch beim Schreiben schneller (indem es den Flaschenhals beim Schreiben der Parity auf eine einzige Platte vermeidet), andererseits ist RAID3 beim Lesen schneller denn es kann die Parity-Platte ignorieren und ist damit genauso schnell wie RAID0.

RAID6

RAID6 bedeutet, dass zusätzlich zu dieser Parity-Information noch eine weitere berechnet wird, nach einem Verfahren, das alle Platten berücksichtigt und nicht nur die Blocks einer Ebene. Dadurch kann auch bei Ausfall zweier Platten der Inhalt komplett rekonstruiert werden. Der Rechenaufwand dafür ist ziemlich hoch. Daher sollte diese Berechnung unbedingt (wie bei EUROstor 6600 RAIDs) auf ASIC Level implementiert und nicht nur in die Firmware programmiert sein.

Das bedeutet höhere Sicherheit gegenüber RAID 5, denn fällt dort eine Festplatte aus, darf für eine gewisse Zeit (bis die Daten auf der Hot-Spare Platte rekonstruiert sind) keine weitere Platte ausfallen. Mit RAID6 wird dieses Risiko vermieden.

Hotspare Festplatten

Hotspare Festplatten sorgen dafür, dass bei einem Plattenausfall sofort mit den Rebuild des RAIDs begonnen werden kann, so dass die Redundanz möglichst schnell wiederhergestellt werden kann. Das ist vor allem dann dringend zu empfehlen, wenn das RAID nicht permanent überwacht wird. Fällt beispielsweise Freitag abends eine Festplatte aus, und erst am folgenden Montag wird der Fehler festgestellt und die Platte getauscht, dann ist das System ca. 70 Std. (inklusive Rebuildzeit) nicht redundant, und selbst ein einzelner Blocklesefehler ist solange nicht behebbar.

Zumindest bei RAID 5 sollte also mindestens eine Hot Spare Festplatte vorgehalten werden. Noch besser ist es, gleich RAID 6 zu benutzen, wenn die Performanceanforderungen es zulassen.