Ist das 2. Paritätsbit in RAID 6 eine einfache Berechnung?


7

Ich versuche zu verstehen, wie das 2. Paritätsbit oder -byte in RAID 6 gesetzt wird. Ich lese einen Artikel von H. Peter Anvin und er geht in die Galois-Feldalgebra, die für mich etwas neu ist. Wie auch immer, eine Mitarbeiterin von HP versuchte mir RAID 6 zu erklären und sie dachte, es seien nur zwei XOR-Operationen, eine für das erste Paritätsbit und eine für das zweite. Das macht für mich keinen Sinn, aber da ich das Papier noch durcharbeite, weiß ich nicht, ob es sich für RAID 6 im Gegensatz zu RAID n auf etwas Einfaches reduziert. Es sieht für mich so aus, als ob das 2. Paritätsbit etwas komplizierter ist als das XOR-basierte 1. Paritätsbit. Ist das wahr?

Antworten:


12

Der allgemeine Fall ist in der Tat etwas kompliziert.

Bei 4 Festplatten können Sie dies jedoch erheblich vereinfachen. Sie müssen keine ausgefallene Mathematik kennen. Sie müssen nur wissen, wie 4 Bits redundant gespeichert werden, und dann wissen Sie bereits alles. Wiederholen Sie einfach das gleiche Schema für jede Gruppe von 4 Bits, die Sie speichern müssen.

Wir können das Schema als 4 x 4 Tabellen darstellen. Die ersten 2 Bits unserer Daten bestimmen die Zeile und die letzten 2 Bits unserer Daten bestimmen die Spalte.

Datenträger 1: Speichern Sie einfach die ersten 2 Bits. Das ist:

00 00 00 00
01 01 01 01
10 10 10 10
11 11 11 11

Datenträger 2: Speichern Sie einfach die letzten 2 Bits. Das ist:

00 01 10 11
00 01 10 11
00 01 10 11
00 01 10 11

So weit, ist es gut. Bei Datenträger 1 + Datenträger 2 können wir unsere Originaldaten wiederherstellen: Datenträger 1 gibt die Zeile (die ersten 2 Bits der Originaldaten) und Datenträger 2 die Spalte (die letzten 2 Bits der Originaldaten) an.

Datenträger 3: Dies ist, was wir auf RAID5 tun, nur XOR die Bits:

00 01 10 11
01 00 11 10
10 11 00 01
11 10 01 00

Auch hier ist noch alles in Ordnung. Sie können die Originaldaten mit Datenträger 1 + Datenträger 3 oder Datenträger 2 + Datenträger 3 wiederherstellen. Eine wichtige Beobachtung ist, dass die Nachschlagetabelle für Datenträger 3 ein lateinisches Quadrat bildet : Alle Elemente jeder Zeile sind unterschiedlich, und alle Elemente jeder Spalte sind unterschiedlich deutlich. Wenn Sie beispielsweise die Daten auf Datenträger 1 kennen, kennen Sie die richtige Zeile, und Sie können die Daten auf Datenträger 3 verwenden, um die Spalte wiederherzustellen. Wenn Sie dagegen die Daten auf Datenträger 2 kennen, kennen Sie die rechte Spalte, und dann können Sie die Daten auf Datenträger 3 verwenden, um die Zeile wiederherzustellen.

Datenträger 4: Hier können wir die folgende Nachschlagetabelle verwenden:

00 01 10 11
10 11 00 01
11 10 01 00
01 00 11 10

Mach dir keine Sorgen, wie es aufgebaut ist; das interessiert uns nicht wirklich. Die entscheidenden Eigenschaften sind:

  • Die Nachschlagetabellen von Datenträger 3 und Datenträger 4 sind lateinische Quadrate. Wenn Sie also 1 + 3 oder 1 + 4 oder 2 + 3 oder 2 + 4 kennen, können Sie sowohl Zeile als auch Spalte (dh die Originaldaten) wiederherstellen.

  • Die Nachschlagetabellen von Datenträger 3 und Datenträger 4 bilden orthogonale lateinische Quadrate , wodurch die Daten wiederhergestellt werden können, wenn nur Datenträger 3 + 4 vorhanden sind.

Lassen Sie uns auf den zweiten Punkt näher eingehen. Durch Verketten der Nachschlagetabellen von Datenträger 3 und Datenträger 4 erhalten wir diese Matrix:

0000 0101 1010 1111
0110 0011 1100 1001
1011 1110 0001 0100
1101 1000 0111 0010

Beachten Sie nun, dass jede 4-Bit-Zeichenfolge in dieser Tabelle genau einmal vorkommt. Das heißt, wenn wir wissen, was auf den Datenträgern 3 + 4 gespeichert ist, wissen wir, wo wir uns in dieser Tabelle befinden. Wir kennen sowohl die Zeile als auch die Spalte und können daher die ursprünglichen Daten wiederherstellen.


Wenn Sie darauf bestehen, die Verbindung zu Galois-Feldern zu sehen, betrachten Sie das Feld . Beschriften Sie die Elemente des Feldes mit ; diese entsprechen 2-Bit-Strings ( ≈ , ≈ , ≈ , ≈ ). Nun kann jeder 4-Bit - String kann encode als ein Paar sein , wobei .F=GF(22)F={0,1,x,x+1}000101x10x+111(a,b)a,bF

Ein Paar wird nun wie folgt gespeichert:(a,b)

  • Datenträger 1 speichert .a
  • Datenträger 2 speichert .b
  • Datenträger 3 speichert .a+b
  • Datenträger 4 speichert .xa+b

Wenn Sie beispielsweise nur und angeben, können Sie und lösen . Mit der Regel können Sie findenp=a+bq=xa+bab20

  • p+q=(xa+b)+(a+b)=(x+1)a+2b(x+1)a ,
  • p+xq=(xa+b)+x(a+b)=2xa+(x+1)b(x+1)b .

Teilen Sie dann durch , um und usw. zu erhalten. Letztendlich liefert dieser Ansatz jedoch genau die gleichen Nachschlagetabellen wie oben dargestellt.x+1ab


1
Und dies ist nur ein Sonderfall der allgemeinen Methode der Reed-Solomon-Codes, wie sie in dem vom OP zitierten Dokument angegeben ist, und der Details, wie in meiner Antwort beschrieben: und unterscheidet sich nicht von und . Es ist nur so, dass mit ein kleineres Feld verwendet werden kann. Auf der anderen Seite benötigen Sie 2 redundante Festplatten für 2 Datenfestplatten, während RAID-n mehr als 2 Datenfestplatten zulässt. P=D0D1Q=D0D1αa+bxa+bn=2
Dilip Sarwate

7

Die Berechnung für ist definitiv schwieriger als die für erforderliche XOR-Berechnung, obwohl es sich in gewissem Sinne um dieselbe Art der Berechnung handelt: eine Polynomauswertung.QP

Ohne die in der Verknüpfung beschriebenen detaillierten Berechnungstechniken besteht die Idee darin, die Datenbytes / Laufwerke , als die Koeffizienten eines Polynoms . Dann,nD0D1,,Dn1D(x)=D0+D1x++Dn1xn1

P=D(1)=D0D1Dn1Q=D(α)=D0D1αDn1αn1=(((Dn1αDn2)αD1α)D0

Dabei ist ein Element (bezeichnet mit in dem vom OP zitierten Artikel) des Galois-Feldes GF (auch bezeichnet mit ), dessen Elemente sind die Bit-Bytes, und die zweite Zeile der Gleichung für kann als Horner-Regel erkannt werden. Natürlich kann die Berechnung für auch als Verwendung der Horner-Regel angesehen werden, außer dass wir die Multiplikationen mit als NOPs ignorieren und alle Klammern in der Horner-Regel entfernen, da sie nicht erforderlich sind.α{02}=(00000010)(28)F28256256 8QP=D(1)1

Nachdem die Laufwerke geschrieben wurden,

  • Wenn eines oder beide von und fehlschlagen, gibt es kein Problem; und können neu berechnet und auf Ersatzlaufwerken gespeichert werden.PQPQ

  • Wenn der einzige Fehler ein Datenlaufwerk ist , beispielsweise das te Laufwerk, kann dessen Inhalt neu berechnet werden, da i

    Di=D0D1Di1Di+1Dn1P.
  • Wenn ein Datenlaufwerk und ausfallen, kann das Datenlaufwerk wie oben beschrieben neu berechnet werden, und dann kann neu berechnet werden.QQ

  • Was in den anderen Fällen zu tun ist: Ein Datenlaufwerk und ein Fehler oder zwei Datenlaufwerke sind komplizierter zu beschreiben, aber die Methoden können unter Verwendung der hier beschriebenen Polynomperspektive leichter verstanden werden. Wenn beispielsweise der te und der te Antrieb ausgefallen sind, ist die Rekonstruktion effektiv die Lösung der simultanen Gleichungen: wobei die rechte Seite aus dem Inhalt der nicht ausgefallenen Laufwerke berechnet werden kann.Pij

    DiDj=Pk:ki,jDkαiDiαjDj=Qk:ki,jDkαk.

Dies sieht aus wie die gleiche Art von Berechnungen wie bei der Reed-Solomon-Vorwärtsfehlerkorrektur.
edA-qa mort-ora-y

2
Ja, die Methode verwendet zwar einen verkürzten Reed-Solomon-Code (wie im Link in der Frage des OP erwähnt), aber bei der Datenwiederherstellung wird nicht die vollständige RS-Decodierungsalgorithmus-Methode aufgerufen, die mehrere Fehlerkorrekturen / Festplattenfehler ermöglicht, sondern viel Eine einfachere Methode setzt voraus, dass höchstens zwei Festplattenfehler vorliegen und wir wissen, welche Festplatten ausgefallen sind. Mit anderen Worten, wenn auf zwei Datenträgern unerkannte Lesefehler auftreten, funktioniert die Methode nicht (und die allgemeine RS-Decodierungsmethode auch nicht): Erkannte Lesefehler (auch als Datenträgerfehler bezeichnet) sind in Ordnung.
Dilip Sarwate

2

Der Raid-6 mit drei Datenträgern ist trivial: Speichern Sie einfach dieselben Informationen auf Datenträger 1, Datenträger 2 und Datenträger 3. Zwei Datenträger können ausfallen, und Sie können die Daten trotzdem wiederherstellen. Ein Raid-6 mit drei Festplatten ist also im Grunde nur ein Raid-1 mit drei Festplatten.

Im Fall von vier Datenträgern gibt es zwei Daten- "Datenträger" (nennen wir sie und ) und zwei Paritäts- "Datenträger" (nennen wir sie und ). Darüber hinaus haben wir in einer Zeit auf zwei Bits , die von jeder Platte zu arbeiten, so dass das Mindestdatenelement (deren Paritätserzeugung wird hier gezeigt) vier Bits sind: Zwei Bits auf der Platte und zwei Bits auf der Platte . Dadurch werden zwei Bits der Parität erzeugen und zwei weitere Bits der Parität . Wenn wir mehr Bits haben, wiederholen wir dieses Schema einfach nach Bedarf.ABPQABPQ

Die erste Parität wird normal unter Verwendung eines Standard-XOR ( ) berechnet :P

P=AB

Für die zweite Parität müssen wir eines der Datenelemente entstellen, bevor wir das XOR ausführen, damit es sich von :QP

Q=AB

Das verstümmelte wird aus wie folgt berechnet : Das erste Bit von ist das XOR beider Bits von , und das zweite Bit von ist eine Kopie des ersten Bits von :BBBBBB

B=(B1,B2)=(B1B2,B1)

Die obige Formel führt zu der folgenden Tabelle für die Berechnung von aus :BB

0000
0110
1011
1101

Beachten Sie, dass der Wert beim Zerlegen unverändert bleibt, während die anderen Werte einen Zyklus von drei durchlaufen: .0001101101

Das Entwirren ist ziemlich einfach: Aufgrund der zyklischen Eigenschaft wiederholen Sie das Entwirren einfach zweimal, um ein Entwirren durchzuführen. Oder invertieren Sie die obige Formel für , was zu Folgendem führt:B

B=(B2,B1B2)

Das Entwirren ist also etwas symmetrisch zum Zerfleischen.

Jetzt kommt die Magie, die uns später die Wiederherstellung in dem Szenario ermöglicht, dass die beiden Datenfestplatten ausfallen und nur die Paritätsfestplatten überleben: Was passiert, wenn und XORed werden? Schauen wir uns jetzt an:BB

BB=(B1,B2)(B1B2,B1)=(B1B1B2,B1B2)=(B2,B1B2)

Das schöne Ergebnis: XORing und identisch ist ein unmangle Schritt auf zum Durchführen . Somit kann aus werden, indem eine Mangel darauf aufgetragen wird: . Und da das Ergebnis der XOR-Verknüpfung der beiden Paritätswerte und , wird eine Wiederherstellung allein von den Paritätsplatten möglich.BBBBBBB=(BB)(BB)PQ

Jetzt haben wir alles zusammen: Um und auf einem RAID-6 zu speichern , berechnen wir zuerst das verstümmelte Datum und dann die Standardparität aus und und die verstümmelte Parität aus und :ABBPABQAB

B=(B1B2,B1)
P=AB
Q=AB

Die Wiederherstellung nach dem Ausfall von zwei Festplatten erfolgt wie folgt:

  • Wenn und überleben, neu berechnet nur und . ABPQ
  • Wenn und überleben, stellen Sie und berechnen Sie . APB=PAQ
  • Wenn und überleben, stellen Sie und berechnen Sie . BPA=PBQ
  • Wenn und überleben, erholen , dann erholen von über eine unmangle Operation (oder eine Doppel mangle), dann Recompute . AQB=QABBP
  • Wenn und überleben, berechnen Sie das verstümmelte aus , stellen Sie dann und berechnen Sie . BQBBA=QBP
  • Wenn und überleben, verwenden Sie die oben erläuterte Formel und stellen Sie dann . PQB=(PQ)A=PB

In dem fünf Platten Fall gibt es drei Datenscheiben , und und wieder zwei Paritätsplatten und . Der bemerkenswerteste Unterschied besteht darin, dass die Mangel bei der Berechnung von zweimal an wird :ABCPQCQ

P=ABC
Q=ABC

Die Wiederherstellung im Fall mit fünf Festplatten erfolgt nach denselben Prinzipien wie im Fall mit vier Festplatten. In diesen Fällen, in denen zwei Datenplatten und entweder oder überleben, muss man zwei Werte aus der Parität herausnehmen und nicht nur einen, und im Fall von die richtige Entwirrungsfunktion verwenden . Zum Beispiel wird wie folgt aus , und : .PQQCABQC=(QAB)

Der schwierigste Fall ist, wenn die Festplatten , und überleben. Dann wird zuerst aus und XOR-verknüpft , und dann wird vor dem XOR-Verknüpfung mit entstellt . Das kartiert und lässt Ebene :APQAPQ(PA)(QA)BC

(PA)(QA)=(ABCA)(ABCA)=
=(BC)(BC)=(BC)(BC)=
=BCBC=BBCC=(CC)=
=(C)=C=C

Bei sechs oder mehr Festplatten bleibt das Prinzip dasselbe, aber der Mangle-Vorgang muss durch eine mit einem längeren Zyklus ersetzt werden. Dies erfordert auch die Verwendung von mehr Bits. Mit vier Bits ist eine mögliche Mangle-Operation:

M=(M1M4,M1,M2,M3)

0000 wird erneut auf abgebildet , während alle anderen Werte einen 15-stufigen Zyklus durchlaufen:00000001100011001110111101111011010110101101011000111001010000100001

Mit seinem 15-stufigen Zyklus kann dieses Mangle-Op für bis zu 15 Datenfestplatten und zwei Paritätsfestplatten verwendet werden. Für die Parität werden alle Werte unverändert zusammen XOR-verknüpft, und für wird das Datum der ersten Festplatte nicht entstellt, das Datum der zweiten Festplatte wird einmal entstellt, das Datum der dritten Festplatte wird zweimal entstellt und so weiter.PQ


1

Es sieht für mich verdammt kompliziert aus .

Somit ist in der obigen Formel die Berechnung von P nur das XOR jedes Streifens. Dies liegt daran, dass die Addition in zwei charakteristischen endlichen Feldern auf die XOR-Operation reduziert wird. Die Berechnung von Q ist das XOR einer verschobenen Version jedes Streifens.

(P ist das erste Paritätsbit und Q ist das zweite.)

Es klingt also so, als ob die Erklärung, die Sie erhalten haben, eine gültige Beschreibung der Berechnung auf hoher Ebene ist, ohne auf die mathematische Theorie und Details einzugehen, die weder Sie noch sie (oder ich oder die meisten anderen) tatsächlich verstehen.


Ich bin mir nicht sicher, wie (oder ob ich sollte) diese Formel aus Wikipedia in meine Antwort einfügen ...: /

Nachdem die Frage in die Informatik migriert wurde , können Sie die LaTeX-Formatierung verwenden .
Gilles 'SO - hör auf böse zu sein'
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.