Redundant Arrays of Inexpensiv Disks
一般に普及している低価格なディスクドライブを複数用いてディスクアレイを構成する。ディスクの台数が増えることで故障の確率が高まるが、冗長構成をとることによって信頼性を上げる。低コストで大容量と高速処理を実現できる。
1987年、米カリフォルニア大学バークレイ校のパターソン氏らが提案、データの格納方式の違いによりRAID1からRAID5を定義した。その後、1992年に設立に設立されたRAIDメーカーの業界団体RAIDアドバイザリ・ボード(RAB)がRAID0と同6の定義を追加している。レベル値とアクセス速度や信頼性には関連がない
⇒Insider's Computer Dictionary
⇒鈴木直美の「PC Watch最新記事キーワード」
⇒富士通 用語解説
レベル2、4、6はメリットを出しにくく、使われているのはレベル0、1、3、5。
データをある一定の単位で分割(ストライプ化)し、ストライプ化データを順次別々のディスクに格納する方式。複数台のディスクに対して並列に読み書きするので、アクセス速度は最も速い。冗長性がないので容量の使用効率も高い。信頼性は単体のディスクよりも低くなる。
まったく同じ内容のデータを複数台のディスクに書き込む。あるディスクが故障しても、正常なディスクを使って処理を続行できるので信頼性の高いシステムを構築できる。容量の使用効率は悪い。
レベル2はデータのストライプ化単位や格納方法はレベル3とほぼ同じだが、パリティではなくハミングコードを使う。パリティを使うレベル3だと、どのディスクが故障しているか識別できなければ正しいデータを算出できない。ハミングコードを使うレベル2は故障したディスクを識別できなくても正しいデータの修復できる。ただしハミングコードは、例えば10ビットのデータを格納するのに14ビットを使うため、ディスクの使用効率がレベル3より劣る。
レベル3はビットまたはバイト単位でストライプ化したデータを順番に各ディスクに書き込むことで、大量データのアクセスを効率化する。さらにデータ格納とは別に、エラー訂正用にパリティディスクと呼ぶディスクを1基用意し、信頼性を高めている。
ストライプ化データは順に、ディスク1の第1セクター、ディスク2の第1セクターといった具合に格納する。すべてのデータ格納ディスクの第1セクタにデータを書き込んだら、パリティディスクの第1セクタに、それまで書き込んだデータのパリティを書き込む。第2セクタ以降も同様にしてデータを書き込む。
データ格納ディスクの1台が故障して使用不可能になった場合でも、残りのデータ格納ディスクとパリティディスクのデータからデータを修復できる。ただし2台以上のディスクが同時に故障した場合はデータを修復することはできない。
レベル3のRAID製品は、各ディスクの回転の同期を取るようにしているものが多い。回転同期をとることで、ディスクアレイの制御ソフトに入ってきた大量のデータを一度にすべてのディスクの同じセクタ位置に書き込める。読み出し時には、指定されたデータの前後のデータも並行して読み出されるので、連続するデータへのアクセス効率が良くなる。
レベル3は連続した大量データを扱う用途に向いている。逆に、少量のデータを頻繁に読み書きするトランザクション処理には適していない。1つのトランザクションのために全ディスクへのアクセスが必要になり、複数のトランザクションを並行して実行できないことが多い。
回転同期を取る製品の場合、全ディスクの同期を取ってから該当セクタにアクセスするので余計な時間がかかってしまう点もあげられる。外部からの信号で回転の同期を取る機能を備えたディスクを使うので、価格も高くなる傾向がある。
レベル4は、レベル3でストライプ化するデータの単位を論理ブロックと同じにすることで、トランザクション処理における性能向上を狙ったもの。別々のディスクから同時に、複数のトランザクションデータを読み出せる。だがパリティが1台のディスクに集中しているので、同時に複数の書き込みはできない。そのためパリティを分散させているレベル5に比べて書き込み時にアクセス速度が落ちる。
レベル3をベースにトランザクション処理の性能向上を狙ったもの。レベル3との違いは、パリティデータを1台のディスクに集中させず複数のディスクに分散して書き込む点と、ストライプ化データの大きさをコンピュータとやり取りする論理ブロックの大きさと同じにすること。
データが各ディスクにブロック長単位で散在しており、読み書き時に回転同期を取らないので、少量のデータを頻繁にやり取りする場合にも効率が落ちない。目安として、データをストライプ化する単位の半分以下の大きさのデータを読み書きする場合に、レベル5はレベル3より有利になる。
OSのファイルシステムにおける読み書きの単位は16KB程度であることが多い。一方、RDBがトランザクション処理で扱うデータの大きさは2KB程度が一般的だ。このため、トランザクション処理ではRAID5が有利ということになる。
レベル6はレベル3〜5で使っているパリティに加えて、別の方法で計算したもう1つのパリティをディスクに格納する。ディスクが2台故障した場合でもデータを修復できるので、非常に高い信頼性を求められるアプリケーションに適している。2種類のパリティを計算するので書き込み速度が遅くなるし、ディスクの使用効率も悪い。
レベル1/0と呼ばれるRAIDはミラーリングしたデータのそれぞれを、レベル0の手法を使って複数のディスクにストライプ化して格納する。同様にレベル3やレベル5をミラーリングと組み合わせることもできる。
レベル5/3と呼ばれるRAIDも考案されている。レベル5の手法でストライプ化データとパリティデータを作成し、それをディスクへ書き込む際にレベル3の手法を使用するというもの。
⇒アスキー デジタル用語事典
⇒鈴木直美の「PC Watch先週のキーワード」
| RAIDレベル | RAID-0 | RAID-1 | RAID-2 | RAID-3 | RAID-4 | RAID-5 |
|---|---|---|---|---|---|---|
| フォールトトレラント方式 | なし | ミラーリング | 冗長符号によるデータガーディング | バイトまたはビット単位のストライピングによるデータガーディング | データガーディング | 分散データガーディング |
| 3台から14台のディスクで構成する際に使用可能なディスクスペース | 100% | 50% | 40% | 66%〜93% | 66%〜93% | 66%〜93% |
| 冗長性 | なし | データ複製 | ハフマン符号を追加 | パリティドライブを複製 | パリティドライブを複製 | 各ドライブのパリティ領域を複製 |
| 最小ドライブ数 | 1台 | 2台 | 5台 | 3台 | 3台 | 3台 |
| 利点 | 性能は最大ですべての容量が使用可能 | データの二重化、マルチ読み込み/書き込み、スプリット読み込み | データにハフマン符号を負荷し、演算処理により障害児にデータを復旧可能。 シーケンシャル読み込みでは理論上は高速 | 並列データ転送、パリティによるデータ整合性、シーケンシャル読み込みの多いアプリケーションで高性能 | パリティによるデータ整合性、シーケンシャル読み込みの多いアプリケーションで高性能 | 同時マルチ読み込み/書き込みパリティによるデータ整合性 |
| 欠点 | データ冗長性がないためディスク障害時、データを復旧できない | フォールトトレラントなしに比べると2倍のディスクスペースが必要 | データ量を上回る冗長データを格納するディスクスペースが必要 | ディスクのスピンドル同期が必要。 複雑な処理のため回路も複雑になる割に性能はあまり高くない | 書き込み動作で性能が低下。 可能な限りRAID-5を推奨 | 書き込み動作での性能低下が最小(RAID-4より少ない)。 ドライブや、ドライブアレイの追加で性能低下を更に抑えられる |
| 代表的な利用環境 | クリティカルでないデータ | 高パフォーマンスデータベースやリアルタイムのクリティカルなデータ(データベースのトランザクションログなど) | 実用性に乏しいため、実際のシステムでは利用されない | シーケンシャル読み込みの多いアプリケーション環境(VOD)など | ディスクスペースが性能以上に重要な場合のクリティカルなデータのフォールトトレランス。 一般のデータなど | 二重化やミラーリングのコストが許容できない場合のクリティカルなデータのフォールトトレラント。 書き込みがそう多くない一般のファイルやデータベース本体 |
| 項目 | ハードウェアRAID | ソフトウェアRAID |
| メリット |
・性能がよい ・OSに依存しない ・ホットスワップ、ホットスペアに対応 |
・コストが安い ・論理的な構成なため、物理的なハードディスクの容量によらない ・状態監視機能を標準で持っている |
| デメリット |
・コストが高い ・構成するハードディスクの容量が同じ必要がある(同じでないと無駄が出る) ・状態監視ソフトが必要 |
・性能が悪い ・OSによってはOSの部分を2重化できない ・動作するOSが決まっている ・OSが壊れた場合、復旧できないことがある ・ホットスワップ、ホットスペアに対応しない |
| Links |
| News |
| Tips |