おれさまラボの実験ノート

実際に手を動かして理解を深めるブログ。

RAIDアーキテクチャ

RAIDとは

Redundant Array of Independent Diskの略で、複数のディスクにデータを分散して書き込むことで、ディスク障害時にユーザデータの再生を可能とする仕組みです。1987年にカリフォルニア大学バークレイ校から論文として発表されました。

RAIDタイプ

RAIDタイプは0~6で表され、それぞれ特徴があります。現代においてはRAID 5RAID 1+0、RAID 6が信頼性および耐障害性の面から推奨されます。

RAIDタイプの比較表

RAID

RAIDを組まなければディスクが故障するとそのディスク内にあったデータがすべて失われてしまいます。

RAID 0

RAID 0はストライピングとも呼ばれ、データをブロック単位で異なるディスクに分散保存します。データの二重化は行わないのでディスクがどれか1本でも故障すればデータが失われますが、データの読み書きを並列で行えるため、読み書き速度が非RAID時より向上します。

RAID 1

RAID 1ミラーリングとも呼ばれ、まったく同じデータを異なるディスクに保存します。データが二重化されることになるので、ディスクが1本壊れてもデータは保全されます。また、複数のディスクから並列でデータを読み出すことができるため、読込速度の向上も見込めます。ただし、非RAIDに比べて単純に2倍のディスク容量が必要となるため、コスト増に繋がります。

RAID 0+1

RAID 0+1RAID 0(ストライピング)のようにデータをブロック単位で異なるディスクに分散保存した上で、それらのディスクをRAID 1ミラーリング)でデータを二重化する仕組みです。RAID 0の高速化とRAID 1の冗長性を兼ね備えた方式ですが、ストライピンググループを束ねてミラーリングするため、異なるストライピンググループで同時にハードディスク故障が起こった場合にはデータが失われます。

RAID 1+0

RAID 1+0はRAID 1ミラーリング)で二重化したデータをRAID 0(ストライピング)で分散保存する仕組みです。RAID 0+1とは違い、ミラーリングしたものをストライピングするため、ミラーリングで同じデータをもっているディスク2本が同時に故障しない限りはデータが保持されるので耐障害性に優れた仕組みであると言えます。

RAID 2

RAID 2は理論上存在しますが、コスト効率が悪いため利用されていない仕組みです。ここでは詳細の説明を割愛します。

RAID 3

RAID 3以上はパリティコード(エラー訂正符号)を使用することでデータを復元可能とする仕組みです。RAID 3ではビット単位でパリティコードを生成し、それをパリティコード保存用のディスクに保存します。データが保存されているディスクが故障した場合に、パリティコードを使ってデータを復元することが可能です。ただし、パリティコードを保存したディスクは二重化されていないため、パリティディスクの故障とデータディスクの故障が同時に起きるとデータが失われてしまいます。

RAID 4

RAID 4はRAID 3と同じ仕組みですが、データをブロック単位で扱います。

RAID 5

RAID 5ではユーザーデータとパリティデータを混在させることで、パリティデータを分散する仕組みです。RAID 4ではパリティディスクが1つしかなかったためにパリティディスクの負荷が高くなりますが、RAID 5ではその問題を解消できます。

RAID 6

RAID 5同様、ユーザーデータとパリティデータを混在させることで、パリティデータを分散する仕組みです。RAID 6ではパリティデータを異なるディスクに二重化して保存することでRAID 5よりも高い信頼性、耐障害性を確保できます。ただし、二重化することでデータ容量が増えるため、コストは増加します。

以上