Login

RAID verstehen: Wie Festplatten zusammenarbeiten und Ausfälle abfangen

Mario ·

Mitten in der Woche meldet der Dateiserver einen Fehler: Eine Festplatte ist ausgefallen. Auf ihr lagen die Daten von achtzig Mitarbeitern. Ist jetzt alles weg? Wenn der Server richtig aufgebaut war, merkt das niemand, der Server läuft weiter, und der Administrator tauscht die defekte Platte am nächsten Morgen aus.

Dahinter steckt RAID. Im Beitrag Was ist ein Server? sind uns Hot-Swap-Laufwerke und redundante Bauteile schon begegnet. Hier lernst du, wie sich mehrere Laufwerke so verbinden lassen, dass der Ausfall einer einzelnen nicht zum Datenverlust führt.

Was ist RAID?

RAID steht für Redundant Array of Independent Disks, auf Deutsch etwa „redundante Anordnung unabhängiger Festplatten“. Mehrere physische Laufwerke werden zu einem logischen Laufwerk zusammengefasst. Für das Betriebssystem sieht es aus wie eine einzige große Platte. Je nach Verfahren erreicht man damit eines oder mehrere dieser Ziele:

  • Ausfallsicherheit: Der Ausfall einer oder mehrerer Platten wird abgefangen.
  • Geschwindigkeit: Mehrere Platten arbeiten gleichzeitig.
  • Kapazität: Die Größe mehrerer Platten wird addiert.

Alle RAID-Level kombinieren drei Grundtechniken in unterschiedlichen Mischungen.

Die drei Grundtechniken

Striping: Daten verteilen

Beim Striping werden die Daten in Blöcke zerlegt und reihum auf mehrere Platten geschrieben: Block 1 auf Platte 1, Block 2 auf Platte 2, Block 3 auf Platte 3 und so weiter. Beim Lesen und Schreiben arbeiten alle Platten gleichzeitig, das macht den Verbund schneller. Aber ohne Zusatzmaßnahme ist es riskant: Fällt eine Platte aus, fehlen Teile aller Dateien.

Mirroring: Spiegeln

Beim Mirroring werden die Daten gleichzeitig auf zwei (oder mehr) Platten geschrieben. Jede Platte ist eine vollständige Kopie der anderen. Fällt eine aus, liegt alles noch auf der anderen. Das ist einfach und sicher, kostet aber die halbe Kapazität.

Parität: Eine Rechenreserve

Parität ist ein cleverer Mittelweg. Statt alles zu kopieren, speichert das System zu den Datenblöcken eine Prüfinformation, die sich per XOR berechnen lässt. Das XOR-Gatter kennst du aus den Beiträgen Logikgatter und UND, ODER, NICHT: Das Ergebnis ist 1, wenn die Eingänge verschieden sind.

Ein Beispiel mit zwei Datenblöcken A und B:

A = 1010
B = 0110
P = A XOR B = 1100      (Parität)

Fällt A aus, rechnet man es neu aus:
A = P XOR B = 1100 XOR 0110 = 1010   ✓

Fällt B aus:
B = P XOR A = 1100 XOR 1010 = 0110   ✓

Aus zwei beliebigen der drei Werte lässt sich der dritte wiederherstellen. Das ist das Prinzip hinter RAID 5 und RAID 6. Es spart Platz gegenüber dem Spiegeln, weil die Parität nur ein Teil der Gesamtkapazität verbraucht. Als Preis kostet es Rechenzeit, vor allem beim Schreiben.

Striping verteilt, Mirroring kopiert, Parität rechnet eine Reserve aus.

Die wichtigsten RAID-Level

RAID 0: Nur Geschwindigkeit

RAID 0 ist reines Striping. Die Kapazität aller Platten wird addiert, und der Zugriff ist schnell. Es gibt keine Redundanz. Fällt eine einzige Platte aus, sind alle Daten verloren. Die Ausfallwahrscheinlichkeit steigt dabei sogar mit jeder zusätzlichen Platte. RAID 0 eignet sich nur für Daten, die sich jederzeit neu erzeugen lassen, etwa Zwischenspeicher.

RAID 1: Spiegelung

RAID 1 spiegelt die Daten auf zwei Platten. Die nutzbare Kapazität entspricht einer Platte. Der Ausfall einer Platte wird abgefangen. Das Lesen kann schneller werden, weil beide Platten bedienen können, das Schreiben ist so schnell wie bei einer einzelnen Platte. Es ist die einfachste und robusteste Lösung und ideal für das Betriebssystem eines Servers.

RAID 5: Striping mit verteilter Parität

RAID 5 braucht mindestens drei Platten. Die Daten werden verteilt, die Parität liegt reihum auf allen Platten. Dadurch gibt es keine Platte, die zum Flaschenhals wird. Die Kapazität einer Platte geht für die Parität drauf. Es verträgt den Ausfall einer Platte. Beim Schreiben ist es langsamer, weil jede Änderung auch die Parität neu berechnen muss.

RAID 6: Doppelte Parität

RAID 6 funktioniert wie RAID 5, speichert aber zwei unabhängige Paritäten. Es braucht mindestens vier Platten, verliert die Kapazität von zwei Platten und verträgt den Ausfall von zwei Platten gleichzeitig. Das Schreiben ist noch langsamer als bei RAID 5. Für große Platten ist es heute die übliche Wahl, weil die Wiederherstellung lange dauert, in der eine zweite Platte ausfallen könnte.

RAID 10: Spiegel und Striping kombiniert

RAID 10 (auch RAID 1+0) bildet zuerst Spiegelpaare und verteilt die Daten dann per Striping über diese Paare. Es braucht mindestens vier Platten, die Kapazität beträgt die Hälfte der Gesamtsumme. Es ist schnell beim Lesen und Schreiben und verträgt mindestens den Ausfall einer Platte. Fallen zwei Platten aus, geht es gut, wenn sie in verschiedenen Spiegelpaaren sitzen, und schief, wenn beide Platten desselben Paares ausfallen. Es ist teurer, aber für Datenbanken und viele virtuelle Maschinen die bevorzugte Wahl.

Die Level im Vergleich

Als Rechenbeispiel nehmen wir vier Platten mit je 4 TB:

Level Mindestzahl Platten Nutzbare Kapazität (4 × 4 TB) Ausfalltoleranz Schreiben Typischer Einsatz
RAID 0 2 16 TB (100 %) Keine Sehr schnell Nicht schützenswerte Daten
RAID 1 2 4 TB (bei zwei Platten) 1 Platte Wie eine Platte Betriebssystem, kleine Server
RAID 5 3 12 TB (75 %) 1 Platte Mittel, Parität kostet Dateiserver mit kleinen Platten
RAID 6 4 8 TB (50 %) 2 Platten Langsamer Dateiserver mit großen Platten
RAID 10 4 8 TB (50 %) Mindestens 1 Platte Schnell Datenbanken, virtuelle Maschinen

Die Formeln für die nutzbare Kapazität bei n gleich großen Platten mit der Größe C:

RAID 0:   n × C
RAID 1:   C            (bei Spiegel aus zwei Platten)
RAID 5:   (n − 1) × C
RAID 6:   (n − 2) × C
RAID 10:  (n ÷ 2) × C

Sind die Platten unterschiedlich groß, bestimmt die kleinste Platte, wie viel von jeder genutzt wird. Aus 2 TB, 4 TB und 4 TB wird bei RAID 5 also (3 − 1) × 2 TB = 4 TB.

Ein Hinweis zur Einheit: Die Hersteller rechnen mit 1 TB = 1.000.000.000.000 Byte. Das Betriebssystem rechnet in Zweierpotenzen, wie im Beitrag Bit und Byte erklärt. 8 TB erscheinen unter Windows deshalb als etwa 7,28 TB (genau: TiB).

Bei RAID 5 liegt die Parität reihum auf allen Platten, es gibt keine feste Paritätsplatte.

Wie schnell ist RAID beim Schreiben?

Bei Servern zählt oft nicht die Übertragungsrate, sondern die Zahl der Operationen pro Sekunde (IOPS). Jedes RAID-Level hat dabei einen Schreibaufwand (Write Penalty), also die Zahl der Plattenzugriffe, die für einen einzigen Schreibvorgang nötig sind:

Level Schreibaufwand Warum?
RAID 01Ein Block, eine Platte
RAID 1 und 102Der Block wird zweimal geschrieben
RAID 54Alten Block und alte Parität lesen, neuen Block und neue Parität schreiben
RAID 66Dasselbe mit zwei Paritäten

Daraus ergibt sich eine einfache Näherung:

Schreib-IOPS ≈ (Summe der IOPS aller Platten) ÷ Schreibaufwand

Ein Beispiel mit vier herkömmlichen Festplatten, die jeweils etwa 150 IOPS schaffen (grobe Annahme für 7.200 Umdrehungen pro Minute). Zusammen sind das 600 IOPS:

RAID 10:  600 ÷ 2 = 300 Schreib-IOPS
RAID 5:   600 ÷ 4 = 150 Schreib-IOPS
RAID 6:   600 ÷ 6 = 100 Schreib-IOPS

Beim Lesen hingegen können alle vier Platten mitarbeiten, es bleibt bei etwa 600 IOPS. Deshalb sind RAID 5 und 6 für leseintensive Dateiserver gut geeignet und für schreibintensive Datenbanken weniger.

Rebuild: Wenn die Platte getauscht wird

Fällt eine Platte aus, arbeitet das RAID im degradierten Zustand weiter. Die Daten sind noch da, aber die Redundanz ist weg. Nach dem Austausch der Platte rechnet das System die fehlenden Daten neu aus und schreibt sie auf die neue Platte. Das nennt man Rebuild. Dabei werden alle übrigen Platten komplett gelesen, und das dauert bei großen Platten lange:

Platte mit 8 TB, Schreibrate etwa 150 MB/s:
8.000.000 MB ÷ 150 MB/s ≈ 53.333 s ≈ 14,8 Stunden

Das ist ein Mindestwert. Läuft nebenher der normale Betrieb, kann es deutlich länger dauern, oft über einen Tag. In dieser Zeit ist das Risiko am höchsten: Bei RAID 5 reicht der Ausfall einer zweiten Platte oder ein unlesbarer Sektor, um Daten zu verlieren. Genau deshalb gilt RAID 5 mit sehr großen Festplatten als riskant und ist RAID 6 die verbreitetere Wahl.

Hot-Spare

Eine Hot-Spare ist eine zusätzliche Platte, die im Server steckt und im Normalbetrieb nichts tut. Fällt eine Platte im RAID aus, springt sie automatisch ein, und der Rebuild beginnt sofort, auch nachts oder am Wochenende. Das verkürzt die gefährliche Zeit erheblich. Davon zu unterscheiden ist Hot-Swap: Das bedeutet nur, dass sich Platten im laufenden Betrieb tauschen lassen.

Hardware-RAID oder Software-RAID?

Hardware-RAID Software-RAID
Wer rechnet? Ein eigener Controller mit Prozessor und Cache Das Betriebssystem oder das Dateisystem
Beispiele RAID-Controller im Server Linux mdadm, Windows Speicherplätze, ZFS, Btrfs
Vorteil Entlastet den Prozessor, Cache mit Batterie- oder Flash-Schutz Keine Zusatzhardware, flexibel, Platten lassen sich auf anderen Rechnern einlesen
Nachteil Controller kostet Geld und ist selbst ein Ausfallrisiko, ein Ersatz muss kompatibel sein Belastet den Prozessor, Einrichtung durch den Administrator

Daneben gibt es das sogenannte Fake-RAID, das auf vielen Mainboards im BIOS angeboten wird. Es ist im Kern Software-RAID mit herstellerspezifischen Eigenheiten und für Server wenig empfehlenswert.

Praxisbeispiel: Der Dateiserver der Firma

Im Beitrag Was ist ein Server? hat der Administrator für den Dateiserver 5,3 TB nutzbare Kapazität für drei Jahre berechnet. Jetzt wählt er Platten und RAID-Level:

Variante Platten Nutzbar Ausfalltoleranz Bewertung
RAID 5 mit 4 × 2 TB 4 (4 − 1) × 2 = 6 TB 1 Platte Reicht knapp, Rebuild mit kleinen Platten überschaubar
RAID 6 mit 4 × 4 TB 4 (4 − 2) × 4 = 8 TB 2 Platten Mehr Reserve, höhere Sicherheit
RAID 10 mit 4 × 4 TB 4 (4 ÷ 2) × 4 = 8 TB Mindestens 1 Platte Schnell, aber weniger Sicherheit als RAID 6

Er entscheidet sich für RAID 6 mit vier Platten à 4 TB und einer Hot-Spare als fünfter Platte. Das ergibt 8 TB nutzbar. Für das Betriebssystem kommen zwei kleine SSDs als RAID 1 dazu. So überlebt der Server den Ausfall von zwei Datenplatten gleichzeitig. Gegen Fehler, die RAID nicht abfängt, schützt das nicht, dazu gleich mehr im nächsten Beitrag.

RAID 1 für das System, RAID 6 mit Hot-Spare für die Daten.

RAID-Zustand prüfen

Unter Linux mit Software-RAID zeigt dir dieser Befehl den Zustand aller Verbünde:

cat /proc/mdstat

In der Ausgabe steht pro RAID eine Zeile mit Level und beteiligten Platten, dahinter eine Statusanzeige. [UU] bedeutet, dass beide Platten eines Spiegels in Ordnung sind (U für „up“). [U_] zeigt, dass eine Platte fehlt oder ausgefallen ist. Details zu einem Verbund liefert:

sudo mdadm --detail /dev/md0

Der Gerätename /dev/md0 ist ein Beispiel. Unter Windows zeigt die PowerShell den Zustand der Laufwerke an, bei Speicherplätzen auch den der virtuellen Datenträger:

Get-PhysicalDisk
Get-VirtualDisk

Achte auf die Spalte HealthStatus. Bei einem Hardware-RAID siehst du den Zustand im Werkzeug des Herstellers oder über den Verwaltungscontroller des Servers.

Platten melden ihren Zustand außerdem selbst, das System dahinter heißt SMART. Unter Linux liest du diese Werte mit dem Programm smartctl aus (Paket smartmontools):

sudo smartctl -a /dev/sda

Steigende Zahlen bei defekten oder neu zugeordneten Sektoren sind eine Warnung, dass die Platte bald ausfällt. Ein Monitoring, das solche Werte überwacht, bekommt einen eigenen Beitrag: Monitoring verstehen.

Eine Platte ersetzen: der Ablauf

Bei Software-RAID unter Linux sieht der Austausch in Kurzform so aus. Warnung: Das ist ein Eingriff in laufende Systeme. Übe ihn zuerst in einer Testumgebung:

sudo mdadm --manage /dev/md0 --fail /dev/sdb
sudo mdadm --manage /dev/md0 --remove /dev/sdb
(Platte tauschen)
sudo mdadm --manage /dev/md0 --add /dev/sdb

Die erste Zeile markiert die Platte als defekt, die zweite entfernt sie aus dem Verbund. Nach dem Austausch fügt die letzte die neue Platte hinzu, und der Rebuild beginnt. Den Fortschritt siehst du wieder in /proc/mdstat. Der wichtigste Merksatz: Vergewissere dich dreimal, dass du die richtige Platte tauschst. Wer versehentlich eine gesunde Platte zieht, verwandelt ein degradiertes RAID in einen Totalausfall.

Typische Fehler und Missverständnisse

  • „RAID ist ein Backup.“ Das ist der gefährlichste Irrtum. Er bekommt im nächsten Beitrag einen eigenen Abschnitt.
  • RAID 0 für wichtige Daten. Ohne Redundanz ist es das riskanteste Level.
  • RAID 5 mit sehr großen Platten und ohne Hot-Spare. Der Rebuild dauert lange, und in der Zeit droht der zweite Ausfall.
  • Keine Überwachung. Fällt eine Platte aus und niemand merkt es, ist der nächste Ausfall der Totalschaden.
  • Falsche Platte getauscht. Immer Seriennummer und Steckplatz prüfen.
  • Alle Platten aus derselben Charge. Sie altern ähnlich und fallen gern in kurzem Abstand aus. Mischen von Chargen verringert das Risiko.
  • Platten verschiedener Größe mischen. Die kleinste bestimmt, wie viel jede Platte beiträgt.
  • Hardware-Controller ohne Ersatzplan. Ist der Controller defekt, braucht man oft ein kompatibles Modell, um die Daten zu lesen.
  • Kapazität in TB und TiB verwechseln. Das Betriebssystem zeigt etwas weniger an als auf dem Datenblatt steht.

Zum Üben

  1. Vier Platten mit je 4 TB. Wie viel nutzbare Kapazität bringen RAID 0, RAID 5, RAID 6 und RAID 10?
  2. Zwei Datenblöcke sind A = 1100 und B = 1010. Berechne die Parität P per XOR. Berechne dann B neu aus P und A.
  3. Wie viele Platten dürfen bei RAID 6 gleichzeitig ausfallen?
  4. Wie viele Platten braucht RAID 5 mindestens, wie viele RAID 10?
  5. Eine Platte mit 12 TB wird bei 200 MB/s neu aufgebaut. Wie lange dauert das mindestens?
  6. Sechs Festplatten mit je 150 IOPS bilden ein RAID 5. Wie viele Schreib-IOPS sind es ungefähr?
  7. Aus Platten mit 2 TB, 4 TB und 4 TB soll ein RAID 5 entstehen. Wie groß ist die nutzbare Kapazität?
  8. Was ist der Unterschied zwischen Hot-Spare und Hot-Swap?

Lösungen:

(1) RAID 0: 16 TB, RAID 5: 12 TB, RAID 6: 8 TB, RAID 10: 8 TB

(2) P = 1100 XOR 1010 = 0110
    B = P XOR A = 0110 XOR 1100 = 1010   ✓

(3) 2 Platten

(4) RAID 5: 3 Platten, RAID 10: 4 Platten

(5) 12.000.000 MB ÷ 200 MB/s = 60.000 s ≈ 16,7 Stunden

(6) 6 × 150 = 900 IOPS gesamt
    Schreibaufwand RAID 5 = 4
    900 ÷ 4 = 225 Schreib-IOPS

(7) Die kleinste Platte bestimmt: (3 − 1) × 2 TB = 4 TB

(8) Hot-Spare: Eine Reserveplatte im Server, die bei Ausfall automatisch
    einspringt. Hot-Swap: Platten lassen sich im laufenden Betrieb
    tauschen.

Das solltest du dir merken

  • RAID fasst mehrere Platten zu einem logischen Laufwerk zusammen, für Ausfallsicherheit, Geschwindigkeit oder Kapazität.
  • Grundtechniken: Striping (verteilen), Mirroring (spiegeln) und Parität (per XOR berechnen).
  • RAID 0 hat keine Redundanz. RAID 1 spiegelt. RAID 5 verträgt eine, RAID 6 zwei Platten. RAID 10 kombiniert Spiegelung und Striping.
  • Nutzbare Kapazität: RAID 5 (n − 1) × C, RAID 6 (n − 2) × C, RAID 10 (n ÷ 2) × C.
  • Schreibaufwand: RAID 10 = 2, RAID 5 = 4, RAID 6 = 6. Beim Lesen helfen alle Platten mit.
  • Beim Rebuild ist das Risiko am höchsten. Hot-Spares und RAID 6 verringern es.
  • Überwache den RAID-Zustand und tausche immer die richtige Platte.

RAID schützt vor dem Ausfall einer Platte. Aber es schützt nicht davor, dass jemand versehentlich eine Datei löscht, ein Verschlüsselungstrojaner alle Daten verschlüsselt oder der Server abbrennt. Warum das Spiegeln auf mehrere Platten keine Datensicherung ist, zeigt der nächste Beitrag: RAID ist kein Backup.

Weiterlesen