RAID 6の2番目のパリティビットは簡単な計算ですか?


7

RAID 6で2番目のパリティビットまたはバイトがどのように設定されるかを理解しようとしています。H。Peter Anvinの論文を読んでいますが、それはガロア体代数に入ります。とにかく、HPの担当者がRAID 6について説明してくれたので、彼女はそれが2回のXOR操作だと思った。これは私には意味がありませんが、私はまだ論文を検討しているので、RAID nではなくRAID 6の単純なものに減少するかどうかはわかりません。2番目のパリティビットは、XORベースの1番目のパリティビットよりもかなり複雑に思えます。本当?

回答:


12

一般的なケースは確かに少し複雑です。

ただし、4つのディスクの場合は、かなり単純化できます。派手な数学を本当に知る必要はありません。4ビットを冗長に格納する方法を知っていれば十分であり、それですでにすべてを知っています。保存する必要がある4ビットの各グループに対して同じスキームを繰り返すだけです。

スキームを4 x 4のテーブルとして表すことができます。データの最初の2ビットが行を決定し、データの最後の2ビットが列を決定します。

ディスク1:最初の2ビットを格納するだけです。あれは:

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

ディスク2:最後の2ビットを格納します。あれは:

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

ここまでは順調ですね。ディスク1 +ディスク2を指定すると、元のデータを回復できます。ディスク1は行(元のデータの最初の2ビット)を通知し、ディスク2は列(元のデータの最後の2ビット)を通知します。

ディスク3:これはRAID5で行うことで、ビットをXORするだけです。

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

繰り返しになりますが、すべてうまくいきます。ディスク1 +ディスク3またはディスク2 +ディスク3を使用して元のデータを回復できます。重要な観察は、ディスク3のルックアップテーブルがラテン語の正方形を形成することです。各行のすべての要素は異なり、各列のすべての要素は明確。たとえば、ディスク1のデータがわかっていれば、正しい行がわかっているので、ディスク3のデータを使用して列を回復できます。逆に、ディスク2のデータがわかっている場合は、正しい列がわかっていれば、ディスク3のデータを使用して行を回復できます。

ディスク4:ここでは、次のルックアップテーブルを使用できます。

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

それがどのように構築されるか心配する必要はありません。私たちはそれを気にしません。重要なプロパティは次のとおりです。

  • ディスク3とディスク4の両方のルックアップテーブルはラテン方格です。したがって、1 + 3または1 + 4または2 + 3または2 + 4がわかっている場合は、行と列の両方(つまり、元のデータ)を回復できます。

  • ディスク3とディスク4のルックアップテーブルは、直交するラテン方格を形成します。これにより、ディスク3 + 4しかない場合にデータを回復できます。

2番目の点について詳しく説明しましょう。ディスク3とディスク4のルックアップテーブルを連結すると、次の行列が得られます。

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

ここで、各4ビット文字列がこのテーブルで1回だけ発生することに注意してください。つまり、ディスク3 + 4に何が格納されているかがわかっていれば、このテーブルのどこにいるかがわかります。行と列の両方がわかっているため、元のデータを復元できます。


ガロア体への接続を確認する必要がある場合は、体検討してください。フィールドの要素にラベルを付けます。2ビット列にこれらの対応( ≈ 、 ≈ 、 ≈ 、 ≈ )。これで、任意の4ビット文字列をペアとしてエンコードできます。ここです。F=GF(22)F={0,1,x,x+1}000101x10x+111(a,b)a,bF

ペアは次のように保存されます。(a,b)

  • ディスク1を格納し。a
  • ディスク2は格納します。b
  • ディスク3には格納されます。a+b
  • ディスク4は格納します。xa+b

今与えられ、例えば、単にと、あなたが解決することができると。ルール使い方、あなたは見つけることができますp=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です。

次に、除算してやなどを取得します。ただし、最終的には、このアプローチにより、上記で示したものとまったく同じルックアップテーブルが得られます。x+1ab


1
そして、これはOPによって引用されたドキュメントに記載されているリードソロモンコードの一般的な方法の特別なケースであり、詳細は私の回答に記載されていますおよびおよびと同じです。それとちょうどことであるが小さいフィールドを使用することが可能です。一方、RAID-nでは3つ以上のデータディスクを使用できるのに対し、2つのデータディスクには2つの冗長ディスクが必要です。P=D0D1Q=D0D1αa+bxa+bn=2
Dilip Sarwate、2012

7

計算ある間違いのために必要なXORの計算よりも困難の多項式評価:それはある意味での計算と同じ種類のですが。QP

リンクで説明されている詳細な計算手法をたアイデアは、データバイト/ドライブ、 を多項式の係数。そして、nD0D1,,Dn1D(x)=D0+D1x++Dn1xn1

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

ここで、は、ガロア体GF(とも呼ばれる要素(OPが引用する論文ではで示される)の要素であり、その要素はビットバイトであり、の式の2行目はホーナーの法則として認識できます。もちろん、の計算は 、による乗算をNOPとして無視し、Hornerの規則のかっこがすべて不要であることを除いて、Hornerの規則を使用していると考えることもできます。α{02}=(00000010)(28)F28256256 8QP=D(1)1

ドライブが書き込まれた後、

  • とどちらかまたは両方が 失敗した場合、問題はありません。とは再計算して、交換用ドライブに保存できます。PQPQ

  • 唯一の障害が1つのデータドライブ、たとえば番目のドライブである場合、ため、その内容を再計算できます i

    Di=D0D1Di1Di+1Dn1P.
  • 1つのデータドライブと障害が発生した場合、データドライブを上記のように再計算してから、を再計算できます。QQ

  • その他の場合の対処方法:1つのデータドライブと障害または2つのデータドライブの障害の説明はより複雑ですが、ここで説明する多項式パースペクティブを使用すると、方法をより簡単に理解できます。たとえば、番目と番目のドライブにが発生した場合、再構築は、実質的に連立方程式の解です: ここで、故障していないドライブの内容から右側を計算できます。Pij

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

これは、リードソロモンの前方誤り訂正で行われたのと同じタイプの計算のように見えます。
edA-qa mort-ora-y 2012

2
はい、確かに、メソッドは短縮されたリードソロモンコードを使用します(OPの質問のリンクに記載されています)が、データ回復は、複数のエラー修正/ディスク障害を可能にする本格的なRSデコードアルゴリズム手法を呼び出しませんが、より単純な方法は、最大2つのディスク障害があることを前提としており、どのディスクに障害が発生したかがわかります。つまり、2つのディスクに未検出の読み取りエラーがある場合、この方法は機能しません(一般的なRSデコード方法も機能しません)。検出された読み取りエラー(別名ディスク障害)は問題ありません。
Dilip Sarwate、2012

2

3枚のディスクのRAID-6は簡単です:ちょうどディスク1、ディスク2とディスク任意の2枚のディスクが失敗する可能性が3で同じ情報を保存し、あなたはまだデータを回復することができます。つまり、3ディスクRAID-6は基本的に3ディスクRAID-1にすぎません。

では4つのディスクケース、二つのデータ「ディスク」(レッツ・コールにそれらがあると)と2つのパリティ「ディスク」(レッツ・コールそれらと)。さらに、各ディスクの2ビットを同時に操作する必要があるため、最小データアイテム(ここではパリティ生成を示します)は4ビットです。ディスク 2ビットとディスク 2ビットです。これにより、2ビットのパリティと2ビットのパリティが生成されます。より多くのビットがある場合は、必要に応じてこのスキームを繰り返します。ABPQABPQ

最初のパリティは、標準のXOR()スキームを使用して通常どおり計算されます。P

P=AB

2番目のパリティについては、XORを実行する前にデータ項目の1つをマングルする必要があるため、とは異なります。QP

Q=AB

マングルから算出されるを次のように最初のビットからの両方のビットのXORである、及び第二のビットの最初のビットのコピーであり、:BBBBBB

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

上記の式は、から計算するための次の表になります。BB

0000
0110
1011
1101

値は変更されたままですが、他の値はの3つのサイクルを通過します。0001101101

マングリングの解除はかなり簡単です。循環プロパティのため、マングリングを2回繰り返すだけで、マングリングを解除できます。または、上記の式を逆にすると、次のようになります。B

B=(B2,B1B2)

したがって、アンマンリングは、マングリングと対称的です。

魔法がやって来て、後でシナリオで2つのデータディスクに障害が発生し、パリティディスクだけが生き残るという魔法が起こりますとがXORされるとどうなりますか?それでは、見てみましょう:BB

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

良い結果:とのXORは、符号化解除ステップを実行することと同じです。こうしてから回収することができる、それにマングルを適用することにより:。また、は2つのパリティ値とのXORの結果であるため、パリティディスクのみからのリカバリが可能になります。BBBBBBB=(BB)(BB)PQ

これですべてが揃いましたとをRAID-6に格納、最初にマングルされたデータを計算し、次にとから標準パリティを計算し、次にとからマングルパリティを計算し。ABBPABQAB

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

2つのディスクの障害後の回復は次のとおりです。

  • と存続する場合は、と再計算します。 ABPQ
  • と存続する場合は、回復し、を再計算します。 APB=PAQ
  • と存続する場合、 P⊕Bを回復し、を再計算します。BPA=PBQます。
  • 場合及び、回復生き残る、その後回復から unmangle操作(又は二重マングル)を介して、次いで再計算AQB=QABBP
  • 場合および生き残る、マングルされた計算から、そして回復、その後、再計算BQBBA=QBP
  • 場合及び生き残る、式を使用して上述、その後回復。 PQB=(PQ)A=PB

5枚のディスクの場合、3枚のデータディスクが存在する、及びと再び2つのパリティディスク及び。最も顕著な違いは、マングルが行われていること、である二回に計算する際に、:ABCPQCQ

P=ABC
Q=ABC

5つのディスクの場合のリカバリは、4つのディスクの場合と同じ原則に従います。これらの場合、2つのデータディスクとまたはいずれかが存続すると、1つではなく2つの値をパリティから取り出し、場合は正しいアンマングル関数を実行する必要があります。たとえば、は、、から次のように復元されます:。PQQCABQC=(QAB)

最もトリッキーなケースは、ディスク、、および存続する場合です。次に、は最初にとからXORされ、次に P⊕Aがマングルされて Q⊕AとXORされます。これはをマップし、プレーンなを残します。APQAPQ(PA)(QA)BC

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

以下のために6枚の以上のディスク、原理は同じままですが、マングル操作は、長いサイクルを有するものに交換する必要があります。これには、より多くのビットを使用する必要もあります。4ビットの場合、考えられるマングル操作は次のとおりです。

M=(M1M4,M1,M2,M3)

0000再び上でマッピングされている:他のすべての値は、15段階のサイクルを通過しながら、00000001100011001110111101111011010110101101011000111001010000100001

15段階のサイクルで、このマングル演算は最大15のデータディスクと2つのパリティディスクに使用できます。以下のためパリティ、全ての値は、のように一緒にXORされ、そしてためれる、最初のディスクのデータは第三のディスクのデータが二回マングルなどされ、第二のディスクデータムを一度マングルされ、マングルされていません。PQ


1

それは私にはかなりのろわれたように見えます

したがって、上記の式では、Pの計算は各ストライプのXORにすぎません。これは、特徴的な2つの有限体への加算がXOR演算に帰着するためです。Qの計算は、各ストライプのシフトバージョンのXORです。

(Pは最初のパリティビット、Qは2番目のビットです。)

だから、あなたが得た説明は、数学理論とあなたや彼女(または私、あるいは他のほとんどの誰も)が実際に理解していない詳細に入ることがなく、計算の有効な高レベルの説明であるように思えます。


Wikipediaの式をどのように(または私がそうする必要があるとしても)返信に入れるかわからない...:/

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.