Versuchsanordnung
Nehmen wir an, es existieren n=3 Festplatten h0, h1 und h2 im RAID-5-Verbund. Und es sollen folgende Daten auf die Festplatten geschrieben werden:
10 10 11 01 10 11 01 00 00 11 …

Ausfallsicherheit

Die Ausfallsicherheit basiert auf der Verteilung der Daten auf die Platten. Angenommen, es wird immer ein Bit pro Festplatte geschrieben. Immer um eine Stelle verschoben schreiben wir aber keine Nutzdaten, sondern die sogenannte Parität (dazu gleich mehr). Unsere Platten enthalten nun also folgenden Inhalt, wobei wir die Parität erst einmal mit einem x kennzeichnen.
h0  1  1  x  0  1  x  0  0  x  1  …
h1  0  x  1  1  x  1  1  x  0  1  …
h2  x  0  1  x  0  1  x  0  0  x

Parität

Berechnen wir nun die erwähnte Parität. Sie ist eine einfache XOR-Verknüpfung der übertragenen Daten in diesem Zyklus, in unserer Anordnung also der aktuellen Spalte. Zum einfachen Verständnis: Das Ergebnis der XOR-Operation ist 1, wenn die Bits verschieden sind (also bei 1 XOR 0 und 0 XOR 1), bei Gleichheit ist es 0. Für unseren Fall bedeutet dies, dass die ersten beiden Spalten das Paritätsbit 1 enthalten, die dritte 0. Die Anordnung sieht also so aus:
h0  1  1  0  0  1  0  0  0  0  1  …
h1  0  1  1  1  1  1  1  0  0  1  …
h2  1  0  1  1  0  1  1  0  0  0

Oh oh: Buffer I/O Error

Simulieren wir jetzt einen Ausfall der dritten Platte h2.
h0  1  1  0  0  1  0  0  0  0  1  …
h1  0  1  1  1  1  1  1  0  0  1  …
h2  1  0  1  1  0  1  1  0  0  0
Was geschieht?
Nun, in jeder n-ten (bei uns also dritten) Spalte fehlen die Paritätsbits, in den anderen Teile der Nutzdaten. Die Einzigartigkeit der XOR-Verknüpfung erlaubt uns jetzt aber die vollständige Rekonstruktion durch Rückwärtsrechnen. Das Paritätsbit wird zur Wiederherstellungsinformation.

„ROX“

Beginnen wir mit der zweiten Spalte, denn hier trat der erste Nutzdatenverlust auf. Das Paritätsbit ist hier 1, die Festplatte h0 enthält die Information 1. Die Frage ist nun: Welchen Wert hatte h2, damit 1 XOR ? = 1 ergibt? Schnell erschließt sich: Es musste eine 0 sein, damit das Ergebnis stimmt. Siehe da: richtig.
Genauso geht es mit der nächsten Spalte: Die Parität ist 0, also mussten die anderen Bits laut XOR-Definition identisch sein. Da h1 gleich 1 ist, musste auch h2 eine 1 gespeichert haben. Und so weiter.


Video