« 「インフラエンジニアの教科書」という本を書きました | Main | 「インフラエンジニアの教科書」が増刷されました »

November 04, 2013

RAID5のパリティ生成アルゴリズム

「RAIDという仕組みは本当に安全なのか?」という懸念が昔からあったので、今回RAID5のParity algorithmについて研究してみました。(RAID6のParity algorithmについて研究しましたが、それはまた今度)

【RAID5の特徴】
RAID5の特徴について改めて整理すると以下のようになるかと思います。

•Block単位でパリティ分散記録する。
•水平パリティを1つ用いる。水平パリティにはXOR方式を用いることが一般的。
•HDDが1本壊れても復旧できる。


【XOR(排他的論理和)について】
RAID5ではXORを用いてパリティを生成しますので、まずはXORについておさらいしておきます。

ABA XOR B
000
011
101
110

【RAID5のパリティ生成の仕組み】
例えばデータが「1111 0101 1100 1010 0000 1111」の場合は以下のようになります。

HDD-AHDD-BParity
111101011010
110010100110
000011111111

仮にB列が消失した場合はどうなるでしょうか。

HDD-AHDD-BParity
1111?1010
1100?0110
0000?1111

この場合はHDD-AとParityでXORを適用するとBが復元できます。

HDD-AHDD-BParity
111101011010
110010100110
000011111111

この仕組みを応用して、HDD本数が7本の場合、A-BのXOR結果とC、その結果とD、・・・とXORをしていくことになります。

HDD-AHDD-BHDD-CHDD-DHDD-EHDD-FParity
1111101011000110000011110000

仮にhdd-Bが故障した場合はどうなるでしょうか。

HDD-AHDD-BHDD-CHDD-DHDD-EHDD-FParity
1111?11000110000011110000

この場合もBを除いた全てとxorをしていくとBが復元できます。(xorする順番は問わない)

0000 G
1111 F
----
1111
0000 E
----
1111
0110 D
----
1001
1100 C
-----
0101
1111 A
----
1010 B

HDD-AHDD-BHDD-CHDD-DHDD-EHDD-FParity
1111101011000110000011110000

こんなシンプルな仕組みであればファームウェアのバグ発生は考えにくそうで、RAID5はそれなりに安全そうですね。

※最後に「インフラエンジニアの教科書」という本を出版させていただきました!という宣伝で締めさせていただきます。

|

« 「インフラエンジニアの教科書」という本を書きました | Main | 「インフラエンジニアの教科書」が増刷されました »

ストレージ」カテゴリの記事

Comments

I・O DATA製のLANDISKでNo.2の故障アラートランプが点灯したので手持ちの同メーカー(Seagate)同容量(0.5Gb)でRaid再構築中、再構築失敗全てのデータが崩壊しました。
Ubuntu(DVD)で調べた結果、全てのドライブに同様のパーティション情報がの残っていましたがRaidとしては機能しませんでした。
どこに、どの様な問題があるのでしょうか?

Posted by: Hitoshi Itou | March 27, 2017 11:21 AM

それは災難でしたね。

一般論として、複数本のHDDにダメージがあるとRAID5ではXORできない箇所が生じて再構築に失敗します。
まれにファームウェアのバグで再構築に失敗ということもありますが、
今回の件はそれなりに利用実績のある製品に見えるので
その可能性は低いのではないかと推測します。

Posted by: sanonosa | March 27, 2017 06:42 PM

Post a comment



(Not displayed with comment.)


Comments are moderated, and will not appear on this weblog until the author has approved them.



TrackBack


Listed below are links to weblogs that reference RAID5のパリティ生成アルゴリズム:

« 「インフラエンジニアの教科書」という本を書きました | Main | 「インフラエンジニアの教科書」が増刷されました »