Raid


Raidとは

Redundant Array of Independent Disk、またはRedundant Arrays of Independent Disksの略称
2台以上のHDDを仮想的に1つのドライブであるようにPCに認識させる技術です。
Raidレベルにより、処理速度の向上や、冗長性の確保を可能とします。
バックアップ目的で利用するものではありません。

ソフトウェアRaidとハードウェアRaid

ハードウェアRaid

RAIDコントローラというハードウェアを利用してRAIDを構築します。
安価なRIADコントローラも存在します。
OSはRAIDを意識しないので、ソフトウェアRAIDと比べてパフォーマンスが優れています。
サーバ用途として利用する場合は通常はハードウェアRAIDを利用します。

ソフトウェアRaid

LinuxやWindows等ではOSの機能としてソフトウェアRAIDを利用できます。
ハードウェアRAIDとは異なり、OSはRAIDを意識してCPUを利用した状態でデータの書き込み、読み取りを行います。
そのため、パフォーマンスに大きな影響が出やすく、サーバ構築ではあまり利用されません。

RAID0(ストライピング)

最低2本のディスクが必要
複数のディスクに分散してデータを書き込むため、1台のディスクにアクセスする短くなり
ディスクの読み書きの待ち時間が短くなり、ディスクの読み書きが早くなる。
但し、いずれかのディスクのうち1本でも障害が発生すると、全てのデータが読み込めなくなる。
データ使用効率がもっとも良く、冗長性を持たないため、ディスクに対する耐障害性がないです、

イメージ
ディスク1-[データA][データC]
ディスク2-[データA]

RAID1(ミラーリング)

最低2本のHDDが必要(2*n本のディスクが必要)
同じデータを2本のディスクに書き込むことで、どちらかのHDDに障害が発生した場合でも、もう片方のディスクからデータの読み込みが行えます。
RAIDを構築せずに、1本のディスクで利用するよりは、データの読み込みが早くなリマス。
RAID0と比べるとディスクの読み書きは遅くなリます。
データを追記した場合、削除した場合の両方が2本のディスクに等しく反映されるため、
「1本目のディスクをメインのディスク、2本目のディスクをバックアップ」として利用するものではないです。

イメージ
ディスク1-[データA][データB][データC]
ディスク2-[データA][データB][データC]

RAID10(RAID0+RAID1)

最低4本のディスクが必要
データをブロック単位に分割して並列に書き込むとともに、二つのディスクにまったく同じデータを書き込みます。
RAID 0の高速性とRAID 1の冗長性を組み合わせたRAID方式になります。
ディスクの利用効率はよくないです。

イメージ
ディスク1-[データA][データB]
ディスク2-[データC]
ディスク3-[データA][データB]
ディスク4-[データC]

RAID2〜RAID4

あまり利用されることがないので割愛します。

RAID5(パリティディスク分散)

最低3本のディスクが必要
データ復旧のために誤りを訂正する符号(パリティ)を生成しながら書き込みを行います。
データを分散して複数のディスクへ書き込むため、RAID1より処理は高速になり、パリティを生成するためRAID0より安全性が高いです。
パリティもデータと同じく分散してディスクへ書き込みます。
いずれかディスクのうち1本で障害が発生した場合でも利用できます。
2本以上のディスクの障害が発生した場合は、利用できなくなるため、
速やかに障害が発生したディスクを交換し、RAID環境を再構築する必要があります。

イメージ
ディスク1-[データA][データC][パリティ1][データG]
ディスク2-[データB][パリティ1][データF][データH]
ディスク3-[パリティ1][データD][データE][パリティ1]

RAID6(パリティディスク分散(2台))

最低4本のディスクが必要
RAID5ではパリティが1つだったが、2種類作成し2つのディスクに書き込む。
いずれかのディスク2本まで障害が発生した場合でも利用できます。
RAID5と比べ対障害が上がりますが、ディスクの利用効率が下がります。
二重にパリティを生成するため、RAID5よりも書き込み速度が低下します。

イメージ
ディスク1-[データA][パリティ1][パリティ1][データG]
ディスク2-[データB][パリティ2][データF][パリティ1]
ディスク3-[パリティ1][データC][データE][パリティ2]
ディスク4-[パリティ2][データD][パリティ2][データH]

余談

仕事のサーバー等で利用する場合はRAID5+ホットスペアで利用する事が多いです。
この場合ですと、耐障害性のためにRAID6にすれば良いと思う人もいると思います。
仮にホットスペアが1本の場合ですと、書き込み速度がRAID5の方が早く、
2本までディスク障害は発生しても大丈夫なのでRAID6と同じと考える事が可能。
ホットスペアなので、障害発生時にすぐにディスクを交換しに行かなくても、
再構築が行われて正常な状態に戻るのが早いです。
遠隔地のデータセンター等で稼働している場所での障害発生時には非常に有用だと思います。
人により考え方が異なると思いますが、
自分としては書き込みも早く耐障害性も高くなり、復旧も早くて良いと思っています。