ちょっと感動したRAID5の説明

RAID5ってご存知でしょうか?
簡単に説明すると、HDDの故障に備えるために複数のHDDにデータを保存しておき、もし1台のHDDが壊れてもデータが壊れない!というシステムです。
これって簡単に説明すると本当に簡単っぽいですが、逆にちょっと頭の回る人の場合、え?何で?となるシステムだと思います。

絵で説明するとこんな感じ。

1つのHDDに4つの情報が書き込める領域があったとします。
ここにA〜Zという情報を入れていくとすれば、HDDが1個の場合、順にA,B,C,Dと4つのデータを書きこむことになります。

もちろんこの場合、HDDが壊れると、全部のデータが飛ぶことになりますw
続いて、HDDが2個になった場合、1個のHDDが壊れても良い様にデータを入れるならば、こんな感じになると思います。

同じデータを2個のHDDに書きこめば、1個のHDDが壊れてもすべてのデータが残る事になります。コレがRAID1(ミラーリング)ですね。
じゃあ3つになったらどうでしょう?

普通の人であれば、「1個のHDDが壊れてもデータが残る、ということは、データは2個以上保存されているはず」と考え、「同じところに同じデータが有ると、壊れたときに消えてしまうからバラバラに配置する」とも考えると思います。
大体の人はこんな感じの答えになるのではないでしょうか。

この配置だと、確かにどのHDDが壊れてもすべてのデータは残っています。
しかし、RAID5のシステムというのは、全HDDの個数-1個の領域を確保出来るシステムですので、この例場合、
(3台-1台)×4で、合計8個のデータを入れることが出来るはずです。
上の結果では、A〜Fの6つしかデータが入らない事になります。
よく見ると、同じデータが入っていたりして、最適とは言いがたい事が分かります。

ここで種明かし。実はRAID5というのは、以下のようなデータの入れ方をしています。

(実際は排他的論理和のややこしい内容ですが、簡単のためこんな例にしています)

ここで、HDDが壊れたとすると、以下のような計算で求めることが出来ます。

HDDが1個壊れているにも関わらず、ちゃんとA〜Gの8個のデータが保持出来ていますね。

パリティとか色々勉強している人にとっては「なーんだ」と思う内容かもしれませんが、私にとっては結構感動的な内容だったので記事にしてみました。

仕事の休憩中にちらっと見たどこかのHPに感謝です。この考え方は非常に分かりやすくて長年の謎が解けましたw