- PR -

RAID5におけるパリティの役目について

投稿者投稿内容
banboo
大ベテラン
会議室デビュー日: 2003/12/05
投稿数: 210
投稿日時: 2006-08-16 08:43
RAID5の仕組みについて質問が御座います.

私自身は,RAID5は,データとパリティ(誤り訂正符号)を分散して
ディスクに書きこむこと 理解しております.

■知りたいことは,パリティの役目です.

パリティの役目は,以下のどちらでしょうか?
個人的には,(1)のような気がします.
理由は,ディスクに書きこむ時に,データが正しいことが保証されていれば,
そのデータから元のデータを復元するときも正しいことを保証できると考えたからです.

(1)ディスクに書きこむときのデータの誤りを訂正するため
(2)ディスクからデータを復元するときのデータの誤りを訂正するため

間違っている点などありましたらご指摘下さい.
wojisan
大ベテラン
会議室デビュー日: 2006/08/02
投稿数: 149
投稿日時: 2006-08-16 09:22
引用:

banbooさんの書き込み (2006-08-16 08:43) より:
RAID5の仕組みについて質問が御座います.

私自身は,RAID5は,データとパリティ(誤り訂正符号)を分散して
ディスクに書きこむこと 理解しております.

■知りたいことは,パリティの役目です.

パリティの役目は,以下のどちらでしょうか?
個人的には,(1)のような気がします.
理由は,ディスクに書きこむ時に,データが正しいことが保証されていれば,
そのデータから元のデータを復元するときも正しいことを保証できると考えたからです.

(1)ディスクに書きこむときのデータの誤りを訂正するため
(2)ディスクからデータを復元するときのデータの誤りを訂正するため

間違っている点などありましたらご指摘下さい.



パリティって(誤り訂正符号)ではなくて(誤り検知)ではなかったでしょうか
誤り訂正符号だと CRC だったような

書き込む時は特にチェックは無かった様な
読み出したときにそのデータに誤りが有るか無いかを計算するため

と認識してますけど

一応
パリティー
http://yougo.ascii24.com/gh/01/000133.html

CRC
http://yougo.ascii24.com/gh/16/001667.html

ひら
ぬし
会議室デビュー日: 2005/03/04
投稿数: 260
投稿日時: 2006-08-16 09:27
引用:

banbooさんの書き込み (2006-08-16 08:43) より:
(1)ディスクに書きこむときのデータの誤りを訂正するため


(1)はベリファイですね。尤も、訂正ではなく検知ですが。



[ メッセージ編集済み 編集者: ひら 編集日時 2006-08-16 09:27 ]
ラララ
ベテラン
会議室デビュー日: 2004/02/04
投稿数: 66
投稿日時: 2006-08-16 13:58
(2)の方ですね。

ただし「誤り訂正」の「誤り」とは,RAIDから見た誤りです。
故障ディスクがあれば,パリティに保存されている排他的論理和の
値から誤りとみなされて検知されます。
「誤り訂正」の「訂正」の部分は,故障していないディスクと
パリティの排他的論理和の値から逆算して,故障によって発生した
誤りを訂正する事で,ディスクの故障があってもディスク操作が
できるようになります。
複数壊れると逆算できなくなるので,ディスク操作ができなくなります。

>理由は,ディスクに書きこむ時に,データが正しいことが保証されていれば,
>そのデータから元のデータを復元するときも正しいことを保証できると考えたからです.
書込み時点で正しくても故障によって正しくなくなるので,上記だと
まずいですね。
RAIDは書込みを保証するのではなく,可用性を向上させる為の仕組みですので。
わちゃ
大ベテラン
会議室デビュー日: 2005/12/05
投稿数: 162
お住まい・勤務地: 東京
投稿日時: 2006-08-16 15:22
長文失礼します、、、


まず、最初の質問に対してですが、

RAID5 は、「あとでディスクが壊れても読めるようにする仕組み」です。

ディスクは、書き込んだ時にちゃんと書かれていても、いざ読み込もうと
した時にディスクが壊れている事があります。

その時に、壊れているデータから正しいデータを復元するための仕組みが、
「RAID5」です。


(1) は、ひらさんのおっしゃるようにベリファイという仕組みになりますので、
これは、RAID5 とは、関係ありません。


(2) は、ちょっとややこしいのですが、ちょっと違います。


wojisan のおっしゃるように、普通のパリティでは、誤りは検知できても、
修正はできません。
(例外として、水平、垂直パリティというな、復元可能な仕組みもありますが)

そのため、複数の HDD から読み出してパリティに誤りがあった事が分かっても、
正しいデータを復元することはできません。

これは、もちろん RAID5 も例外ではなく、
「複数の HDD から正常に読み出して、パリティに誤りがあった場合は、単なるエラーになります」

RAID5 の場合は、
「単一の HDD からのデータが読めない場合でも、データを復元する事が可能にする」
仕組みになります。



ややこしいですね。

ここを理解するには、パリティの説明からしないと難しいと思いますので、
ご存知かもしれませんが、簡単にパリティの説明を。


パリティとは、複数のビットの中に、1が奇数個あれば1、偶数個なら0という
印の事です。(0と1が逆などの亜流はありますが)

例えば、「010」というデータなら、パリティは「1」になります。
(1が1個(奇数個)なので)


RAID は、このような場合、「0」「1」「0」とパリティの「1」を別々の4台のHDDに書き込みます。

ここで、2台目のHDDが壊れたらどうなるでしょうか?

「0」「?」「0」というデータに対してパリティが「1」になります。

このとき、パリティが「1」なので、元のデータには、「1」が奇数個ある事が分かります。

そのため、壊れている2台目のHDDのデータが「1」だと分かり、復元ができます。



しかし、2台目も、壊れているのですが誤って読み込めた場合はどうなるでしょうか?

「0」「0」「0」というデータに対して、パリティが「1」となります。

これは、1台目、2台目、3台目、パリティの4つのHDDのうちどれが間違っているかは、
この数字を見ても分かりません。


このように、最初の質問の (2) にあるような
「ディスクからデータを復元する時のデータの誤り」は訂正できない
事が分かるかと思います。

その他の状況から、どの HDD が壊れているのかが分かれば、データの復元が可能になります。

要は、最初の方に書いたように、RAID5 は、
「単一の HDD からのデータが読めない場合でも、データを復元する事が可能にする」
仕組みになります。
ラララ
ベテラン
会議室デビュー日: 2004/02/04
投稿数: 66
投稿日時: 2006-08-16 16:38
>その時に、壊れているデータから正しいデータを復元するための仕組みが、
>「RAID5」です。
表現の違いだけの問題かと。
別途,回答しています通り,
破損ディスクについて,RAIDからは通常「誤り」(ディスクとパリティにより判断)
と見なしますので,「誤り」を「訂正」して読むというのは間違いではありません。
※「訂正」データは,パリティの排他的論理和から逆算して算出

>wojisan のおっしゃるように、普通のパリティでは、誤りは検知できても、
>修正はできません。
データ自体の修正はもちろんできませんので,「訂正」という言葉が誤解を招くことは
ありますが,上記に記載したように訂正と表現される事は多いかと思います。
ラララ
ベテラン
会議室デビュー日: 2004/02/04
投稿数: 66
投稿日時: 2006-08-16 16:57
補足です。

わちゃさんのおっしゃっているパリティはRAID5で利用される
排他的論理和によるパリティとは異なり,「偶数パリティ」ですので,
本題とは異なるのではないでしょうか?

「偶数パリティ」ではRAID5の機能を満たせないような気が・・・。
banboo
大ベテラン
会議室デビュー日: 2003/12/05
投稿数: 210
投稿日時: 2006-08-17 08:33
皆様,アドバイスありがとうございます.
パリティの仕組みなど含め,丁寧にアドバイスを頂きありがとう御座います.

>RAID5 は、「あとでディスクが壊れても読めるようにする仕組み」です。

RAID5の本質は,あとでディスクが壊れても,壊れていないディスクのデータと
パリティの情報により,データを復元することなのですね!

>故障ディスクがあれば,パリティに保存されている排他的論理和の
>値から誤りとみなされて検知されます。

この仕組みはしらなかったので,非常に勉強になりました.

スキルアップ/キャリアアップ(JOB@IT)