RAID種別:「RAID5のパリティの原理」をシミュレーターで理解しよう! [情報基礎/コンピューター入門]
本ページではRAID種別をシミュレーターを用いて解説しています!今回は、前回解説したRAID5の「パリティ」について、その原理を解説します!
目次
「パリティの役割」のおさらい
前回記事のおさらいです。パリティは「同じグループでディスクが故障したときに、それを補うためのもの」です。
例えば、↓のように横にグループがあり、その中にパリティ(青部分)があるとします。
このとき、他ディスクが壊れた場合(灰色部分)、、、青色のパリティがその代わりになってくれるんです!なので、↓の構成だと、4つのディスクどれか1つ壊れても大丈夫なんです。
「RAID5のパリティの原理」は奇数/偶数の管理!
パリティの原理概要
↑のようにパリティは魔法のような力があるように見えますが、実は単純です。
パリティの原理は
「各ディスク上の1の数を数え、奇数個か偶数個かを記録する」
です。以後解説していきます!
前提:全てのディスクは01でデータを記録
これは当たり前のことですが、各ディスクは↓のように0と1でデータを記録してます。今回は3つのディスクの場合を考えます。
パリティに奇数か偶数かを記録
上のデータで、縦列ごとに↓のパリティを計算します。これは上で述べた概要の通りです。
パリティ値 = 1 (1が奇数個ある場合)
0 (1が偶数個ある場合)
1ディスクが壊れた時、パリティから推測可能!
↑のようにパリティを計算すると、実は故障したデータが0か1か推測が可能になります。
例えば1の数が、↓のようになったとします。
壊れる前の合計:偶数
壊れた後の合計:奇数
この場合、壊れた事で偶数→奇数となったので、「壊れたディスクのデータが1」と推測できます。0だったら、偶数のままのはずだからです。
このように考えると、↓のように1が奇数か偶数かカウントするだけで、壊れたデータが0か1か分かるんです!
壊れる前 | 壊れた後 | 壊れたデータ推測値 |
---|---|---|
奇数 | 奇数 | 0 |
奇数 | 偶数 | 1 |
偶数 | 奇数 | 1 |
偶数 | 偶数 | 0 |
そして、この「壊れる前の奇数/偶数」を記録することが、パリティの役割なのです。
計算機上、奇数/偶数のカウントはXOR回路で計算可能!
XOR回路をつなぐとパリティが計算可能
↑の奇数/偶数チェックですが、計算機上は↓のXOR回路を使えば簡単にできます。
XOR回路は↓のような出力となります(詳細はコチラの説明記事参照)。これは「1が偶数なら0、奇数なら1を返す」性質を持ちます。
入力1 | 入力2 | 出力 |
---|---|---|
0 | 0 | 0 |
1 | 0 | 1 |
0 | 1 | 1 |
1 | 1 | 0 |
なので、例えば、このXOR回路を↓のように順につなぐと、、最終的に「1が奇数個の場合は1」「1が偶数個の場合は0」を出力します。つまりこれがパリティ値となります!
最終的な値もXOR回路で計算可能
先程↓の関係でデータが推測可能と解説しました。
壊れる前 | 壊れた後 | 壊れたデータ推測値 |
---|---|---|
奇数 | 奇数 | 0 |
奇数 | 偶数 | 1 |
偶数 | 奇数 | 1 |
偶数 | 偶数 | 0 |
ここで、今までと同様に「奇数=1,偶数=0」として代入すると、、↓のようになります。これはXORの計算パターンに他なりません!
壊れる前 | 壊れた後 | 壊れたデータ推測値 |
---|---|---|
1 | 1 | 0 |
1 | 0 | 1 |
0 | 1 | 1 |
0 | 0 | 0 |
今、
壊れた後の値 → 壊れたディスク以外のXOR値
なので、、、最終的に壊れたディスクの値は↓のように計算可能なんです!
壊れたディスクのデータ値
=[壊れたディスク以外のデータXOR値]とパリティのXOR値
=[壊れたディスク以外のデータとパリティ]のXOR値
例えばディスク3が壊れた場合、↓のようなXOR回路で簡単に計算可能なんです!
「パリティ値と壊れたデータの推測」シミュレーターで理解しよう!
それでは最初にシミュレーターを使って、「パリティ原理」を理解してみましょう!
- ディスク3台の値に対して、↑で説明したパリティが計算されています
- 故障ボタンを押すと、どれか1つのディスクが故障します(故障ディスクは灰色になります)
- 故障してないディスクとパリティをXORした値が「XOR値」として最終行に出力されます
- 故障したディスクの値と、XORで計算した値が一致し、データ補完できていることを確かめましょう!
- リセットボタンで初期化できます
パリティを各ディスクに分散したのがRAID5
これまで説明したパリティを活用したのが、前回記事で説明した「パリティ」です!
ただ、1つのディスクにパリティが固まってると、そのディスクに負荷がかかってしまいます。そこで↓のように領域ごとにパリティとなるディスクを分けるのが標準的なRAID5構成になります!
- パリティは各データの1の数をカウントし、合計が奇数なら1、偶数なら0と記録するもの
- 1台どこか壊れても、その他ディスクとパリティデータから修復できる
- RAID5はこれを使い、1台までの故障に対応できるようになっている
RAID5以外も、各RAID種別を↓で解説しています!
⇒「RAID」カテゴリ記事一覧
その他関連カテゴリ