henbeibi

Sunday, January 18, 2009

RAID

複数台のディスク・ドライブを組み合わせることで、高速・大容量かつ信頼性に優れたディスク・サブシステムを構築する技術。

■RAID0
ストライピングによって、複数ディスクをあたかも1台のディスクであるかのように扱えるようにするもの。最低2台以上のディスクを組み合わせて、ディスク への書き込み処理や、ディスクからの読み出し処理を複数ディスクに分割し、同時並行的に実行することで、アクセス速度を高速化する。ディスクの大容量化や 高速化の目的で使用されるのが一般的。ただし、後述するRAID 1やRAID 5のような冗長性は備えておらず、耐障害性は高くないどころか、複数のディスクのうち、どれか1台が読み出し不能になると、ディスク全体が読み出し不能になるという欠点がある。

■RAID1
ミラーリングを使って同一のデータを複数のディスクに書き込み、一方のディスクが故障しても、他方で処理を続行できるようにし、耐障害性を高めるもの。通 常はディスク2台を使って実現する。ただしRAID1では、同一のデータを2台のディスクに書き込むため、ディスクの使用効率は50%になってしまうとい う欠点がある(例えば1Gbytesのデータを記録するには、1Gbytes×2=2Gbytes分のディスクが必要になる)。

■RAID2■RAID3■RAID4
分類上これらは存在するが、次のRAID5が一般的に使われるため、現実のシステムではほとんど用いられない。

■RAID5
複数のディスクにデータとパリティ情報を記録することで耐障害性を高めたもの。データをディスクに記録する際、そのデータのパリティ情報を生成し、 残りのデータとともにストライピングによって複数のディスクに分散して書き込む。こうしておけば、万一ディスクの1台が故障しても、残ったデータとパリ ティ情報から破損したデータを割り出すことができる。パリティに必要な容量はディスク1台分で済むため、ミラーリングよりも効率よくディスク領域を使用で きる。

 RAID5では、ディスクからの読み出し時には、複数ディスクからの同時並行読み出しが可能なので高速化がなされるが、データの書き込み時にはパリティを算出しなければならず、その分のオーバーヘッドがかかる。

RAID5で使用できるHDDのデータ量は「物理HDDの数-1」です。

■データを"d"、パリティ情報を"*"とした場合
HDD1:d,d,*,d,d,*~
HDD2:d,*,d,d,*,d~
HDD3:*,d,d,*,d,d~

RAID5は実データとパリティ情報を分散記憶することで、
転送速度と信頼性を向上させる方法です。

パリティビットについてですが、パリティビットというのは、
誤り検出符号ですが、その検出方法は単純です。
RAID5の場合はデータ1~データnまでの排他的論理和をパリティ情報としています。

※排他的論理和
双方の数字が同じであれば偽(0)を返し、同じでなければ 真(1)を返し

■8bitの実データ(00 10 10 11)、記録データ長を1bit、HDD3台とした場合
HDD1:0(d),1(d),1(*),1(d)
HDD2:0(d),1(*),1(d),1(d)
HDD3:0(*),0(d),0(d),0(*)

となります。実際は記録データ長が数十byte(セクタ長?)になりますので、
仮に先ほどの8bitのデータを4bit長で記録し、XORでパリティ情報を付加すると
HDD1:0010(d)
HDD2:1011(d)
HDD3:1001(*)

0 Comments:

Post a Comment

<< Home