RAID
出典: フリー百科事典『ウィキペディア(Wikipedia)』
RAID(Redundant Arrays of Inexpensive Disks、レイド)とは、複数台のハードディスクを組み合わせることで仮想的な1台のハードディスクとして運用する技術。ディスクアレイの代表的な実装形態で、主に信頼性の向上をねらって用いられるものである。
ハードディスクはその構造上、年月とともに故障する確率が上がるほか、様々な原因で突発的に故障することがある。貴重なデータを失うリスクが常にあり、それを回避する方策としてRAIDと、バックアップが主に用いられる。
RAIDは、大容量データの高速処理や耐障害性の向上を必須要件とする大規模な業務用サーバやワークステーション、特定目的に製造されたコンピュータ機器等に用いられていたが、近年、小規模サーバやパソコンにも普及しつつある。
本記事において、装置という語句を用いるが、これはRAIDが取り付けられる機器(つまり、サーバ・ワークステーション・パソコン・その他の機器)の総称を意味する。
目次 |
[編集] 概要
1988年にカリフォルニア大学バークリー校のデイビッド・パターソン, Garth A. Gibson, Randy H. Katzによる論文「A Case for Redundant Arrays of Inexpensive Disks (RAID)」に於いて提唱された。これはSIGMOD Conference 1988: pp 109-116 で発表された。
この論文は、安価で低容量、価格相応の信頼性のハードディスク(Inexpensive Disk)を用い、大容量で信頼性の高いストレージ(補助記憶装置)をいかに構築すべきかを提案したものである。論文にはハードディスクの構成によって、RAID 0からRAID 5までの6種類を定義している。この論文がディスクアレイ業界を生み出したといっても過言ではない。
はじめに定義された6種類のうち、RAID 2はほとんど利用されず、RAID 3、RAID 4もRAID全体の中では少数派である。今日ではRAID 0、RAID 1、RAID 5、およびこれら3方式の組み合わせが用いられている。後にRAID 5を拡張したRAID 6が定義され、RAID 5より耐障害性が必要な場面で利用されている。
導入を検討するユーザにとっては、信頼性 ・ 速度 ・ 予算(ハードディスクの利用効率も含む)の内どれを重視するかを考え、実情にあわせた導入方法を選択することができる。3つを見事に満たすのは難しいが、2つを満たす現実的な方法は充分にある。
大企業の基幹サーバや停止することのできない重要な商用サーバ等ではRAID 0やRAID 5で構成された複数の領域を内蔵したディスクアレイ装置を更にもう1台のディスクアレイ装置と組み合わせてRAID 1により2重化するといった大規模な構成も珍しくないが、一般のパソコンユーザや小規模の事業所では、初期投資や設置条件の負担が小さいRAID 1方式をはじめに採用し、その後必要に応じてRAID 0を加えたり、RAID 5にアップグレードするのが一般的である。 業務用サーバの製品群の中にはあらかじめRAIDを構成している品が増えてきており、購入時点でRAIDがすぐに使えるため現場のシステム管理者にとっては労力の軽減につながっている。
RAIDの構成によっては、数台のハードディスクが故障しても仮想ディスクは稼動できることがある。その場合、仮想ディスクを稼働させたまま故障したハードディスクを取り外して代わりのハードディスクに交換することにより装置を停止することなく運用を続けることができる。このようにPCが起動中に接続してもPCが認識し、即座に利用できる機能を「ホットスワップ(活線挿抜)」と呼ぶ。ホットスワップ機能を使用するには装置側でハードウェアとして対応していることが前提となるため、サーバ用途など24時間連続稼働が求められる装置ではホットスワップが実質的に標準装備となっている。
[編集] RAIDが一般ユーザに普及してきた要因
- ハードディスクの低価格化および大容量化
- 「お金で買えない」データの重要度の増大
- ハードディスク以外の媒体の非効率性の増大
- RAID関連製品の低価格化
- 設定が簡単になった
- RAIDを標準装備したマザーボードが多く出回るようになってきた
[編集] バックアップとRAIDの比較
RAIDを使用することにより、データを複数のハードディスクに分散し冗長性を持たせて記録することでハードディスクの信頼性の向上を図ることができる。しかし、複数台のディスクが故障した場合は構成にもよるがデータはやはり破損することがあり、その場合はバックアップを戻すしかない。また、故障に対する信頼性が向上したからといって、不注意によるデータの削除やなんらかの原因によるデータの改ざん、破損に対応できるわけではない。
バックアップはRAIDの代替とはならず、またRAIDもバックアップの代替とはならない。データは、両者を組みあわせて運用することによってより高い安全度を持って保全することができる。
バックアップの項も参照。
[編集] RAIDの方式
RAIDを実装する方法としては、ハードウェアで実現する方法(ハードウェア方式)とソフトウェアで実現する方法(ソフトウェア方式)がある。
[編集] ハードウェア方式
ハードウェア方式は、RAIDコントローラカードを使用するものとディスクアレイユニットを用いる2方式が存在する。
[編集] RAIDコントローラカード
この方式は、RAIDコントローラと呼ばれるカードを装置に取り付け、パリティ演算とディスクの管理を任せるものである。一部のマザーボードにはRAIDコントローラをあらかじめ実装している製品があり、その場合はRAIDコントローラカードを購入する必要はない。
CPUが僅かな指示を送るだけでRAIDコントローラが具体的な処理を全て行うため、CPUの負荷が低減される。しかし、コントローラ毎に制御方法が異なるため、OS側で各RAIDコントローラカードへの対応が必要で、RAIDコントローラカードに付属しているドライバをインストールしなければならない。この作業は難しくなく、その他の周辺機器のドライバのインストールが可能であるようなユーザなら心配ない。
ある程度高級なRAIDコントローラカードであれば、ホットスペア(ドライブが故障したとき直ちにあらかじめ用意されていた予備ドライブに切り替える機能)には対応しているが、ホットスワップにはさらに別のハードウェアが必要な場合が多い。
低価格製品も多く販売されているので、個人や小規模事業者にとって導入しやすい。また、CPUの処理能力が低い場合や、様々な作業が入れ替わり立ち替わり発生する個人用のパソコンには最適である。PCの筐体を開けることに慣れているユーザにとっては最もコストパフォーマンスに優れる方式といえる。しかし、低価格を売り物にしたRAIDコントローラカードや、マザーボードに備えられたRAIDコントローラの場合、RAIDの制御を装置のCPUと分担して行う仕様の製品がある。これは純粋なハードウェアRAIDとソフトウェアRAIDとの中間に位置する存在で、純粋なハードウェアRAIDと比べると性能が劣り、特定のOSへの依存性がある。
難点は、筐体を開けてRAIDコントローラカードを取付け、ハードディスクの信号ケーブルをRAIDコントローラカードに接続し直す作業が発生することで、それが筐体を開けることに抵抗のあるユーザにとって障壁となっていることである。また、コンパクトなデスクトップ型PCではハードディスクを増設するスペースがない場合が多くこの方法は使えない。同じ理由で、ノート型パソコンでも使えない。
近年、チップセットにRAID0/1/0+1コントローラ機能を集積したサーバ向けチップセットが広く普及している。このハードウエアはパリティ演算などは行わない。基本的な構造はMUX(マルチプレクサ)/DEMUX(デマルチプレクサ)で構成されており、CPUが発行したディスクI/O操作を複数のハードディスクへのディスクI/Oに分散・またディスクからの読み出しの多重化を行う。信頼性はもとより、ディスクI/O速度を高速化する総合アクセラレータ的要素が強い。
[編集] ディスクアレイユニット
コンピュータやOS側からは単なるSCSIやファイバーチャネルのドライブとして見えるため、特別なドライバが必要なく、CPUへの負荷が全くない。更に、ホットスワップやホットスペアはもとよりオートリカバリ機能を備えているため、運用コストをも低減することが出来る。ディスクアレイユニット内のハードディスクが故障した場合は、シリアルポートやイーサネットを通じて状態を監視ソフトに通知する機能が備わっている。また、ディスクアレイユニットの中にはデファレンシャルSCSIやファイバーチャネルを使い、2台のサーバーで1台のディスクアレイユニットを共有出来る物もある。業務用ともなれば複数台のディスクアレイユニットを組み合わせて専用の制御用サーバまでセットになったものもあり、容量、信頼性、そして金額とも膨大なものとなる。
ディスクアレイユニットを接続したい装置に必要な外部接続インタフェースがすでにあれば装置の筐体を開けることもなく、ケーブルをつなぐだけで使えるようになる。したがってスピーディな導入ができるほか、装置の電源を使わず独自に給電するため電力面での問題が発生しない。この点を活かし、多数のハードディスクを内蔵したディスクアレイユニットが人気を集めている。
ディスクアレイユニットの最大の難点はRAIDコントローラやソフトウェア方式に比べ価格帯が高めに設定されていることである。そもそもディスクアレイユニットは業務用の製品が主となり個人用はまだ少なく、またそれを必要とするユーザ層も少ないことが要因と推測される。
[編集] ソフトウェア方式
ソフトウェア方式は、OS自身が普通のドライブ コントローラ (IDE, SCSI, FC など) を通して複数台のディスクを管理する。この方式はハードウェア方式と比較し、CPUへの負荷が高いが、特別なハードウェアを購入する必要がないという利点がある。
また、あらかじめ2台以上のハードディスクを内蔵した装置を持っているならば、装置の筐体を開けRAIDコントローラカードを取り付け既存のハードディスクの信号ケーブルの接続を変更するといった手間が全く不要となる。したがって、筐体を開けることに抵抗を感じるユーザに対しては、この方法が(あらかじめ2台以上のハードディスクが内蔵されていれば)推奨される。
パリティを用いるRAID (3,4,)5の場合、パリティの演算はCPUが担当する。高速なCPUによるパリティ演算能力はハードウェアRAIDコントローラカードのそれを軽く上回るため、CPU能力に余剰がある場合はわざわざRAIDコントローラカードの力を借りなくても充分役に立つことが期待出来る。ただし、CPUはパリティ演算ばかりに専念出来ないため、その装置内で多数のプロセスが稼働しCPUの力を多く割いている状況ではパリティの生成能力が減少し、速度面でのパフォーマンスの低下が発生する。
※RAID 2はパリティーではなく、冗長コードを使う方式。
ファイルサーバやネットワークストレージとしてCPUがディスクI/Oに専念して良い用途ではソフトウェア方式は最良の選択である。ハードウェアによる方式では、RAID最大の弱点「コントローラ」が故障・異常動作した時に何も担保されない(コントローラを冗長構成すれば幾らかは良くなるが、全体としてのMTBFは低下する)。ソフトウェア方式ではハードディスクドライブを丸ごと別のコンピュータに移植すればサービスを再開出来る。その時に使うハードディスクドライブ以外のハードウェアは互換性があれば何を使っても良いし、壊れた複数の機材を寄せ集めて作ったコンピュータで代用する事も出来る(いわゆるニコイチ。手法としてはあまり歓迎されないが実際の運用現場ではまったく珍しくない運用方法である)。また、より信頼性の向上を図るため、ハードウェア方式であるディスクアレイをソフトウェアでRAID 1により2重化するという手法もある。コントローラや電源装置を別系統にすることにより強力な信頼性、安定性を得ることができる。
まずはソフトウェア方式でRAIDを組んでみて、実際に使って速度面での不満が出てきたらハードウェア方式に移行するという運用法を採るのがコストパフォーマンスに優れた方法である。RAIDの隠された利点は、様々な方式を各自の環境や予算に応じて選択出来ることなので、このように実際に使ってみて別の方式に移行するというプランも自在に組める。
[編集] RAIDレベル
RAID 0からRAID 6まで7種類のうち、実際に利用されるのはRAID 0、RAID 1、RAID 4、RAID 5、RAID 6で、RAIDコントローラやソフトウェアによって使用できるレベルが限定されている場合が多い。
サーバ用途としては、データの保全性を重視するためRAID 1またはRAID 5が主に利用されている。サーバ台数の限られた環境で、一台のサーバにかかる負担が高い場合はこれらにRAID 0を組み込んで高速化を狙うケースもある。(もちろんサーバ自体を増設して、一台あたりの負担を軽減することも検討すべきであり、負荷の度合い・設置場所の都合・予算などを多角的に検討する必要がある。単にRAID 0をかぶせて高速化することだけに過度の期待を寄せるべきではない) RAIDの方式によらず、サーバ用途の場合はトラブル発生時に速やかなハードディスク交換を実施できる態勢を採るのが重要であり、ホットスペアやホットスワップ対応の製品を用いるのが望ましい。
また、ある種のアプリケーションは、制御情報はRAID 1またはRAID 5のファイルシステムに保存し、マルチメディアデータはRAID 0に保存するとともにテープや光メディアにバックアップしている。
各RAIDレベルを組み合わせて信頼性と速度を両立させることができる。ただしハードディスクの必要台数が増えるため、特にRAIDコントローラカードを用いて装置内部にハードディスクを取り付けている場合、電源がハードディスク台数分の負担に耐えられるか注意すべきである。
[編集] RAID 0: 耐故障性の無いディスクアレイ (ストライピング)
RAID 0は複数台のハードディスクに、データを分散して読み書きし高速化したものである。 冗長性がなく耐故障性もないため、RAIDには含まれないとされ、RAID 0と呼ばれる。 RAID 0には最低2ドライブが必要である。
1台のドライブが故障しただけでアレイ内の全データが失われてしまうため、信頼性は単体ドライブと比べて劣る。例えば、ある条件で一定期間使用した場合におけるドライブの故障率が1%だったとした場合、1台ならば故障率は1%だが、2台でRAID 0を構成した場合は約2%(1-0.99*0.99=0.0199)となり故障率は約2倍に上昇する。
長所
- 構成ドライブの全ての容量が利用可能。
- パリティ計算によるオーバーヘッドは生じない。
- 構成ドライブ数に応じてリニアなI/O性能向上が期待できる。
短所
- 冗長性が全くない為、ミッションクリティカルな環境での使用に適さない。
- リニアなI/O性能向上を吸収できるだけの帯域を持ったバスアーキテクチャが必要となる。
[編集] RAID 1: 二重化 (ミラーリング)
RAID 1は複数台のハードディスクに、同時に同じ内容を書き込む。 RAID 1は最もシンプルなRAIDであり、信頼性の高いRAIDである。 また、RAIDの最大の弱点であるコントローラの故障にも対応しやすい。 RAID 1には最低2ドライブが必要である。
一台が故障した際に、もう一方も同時に故障する可能性は低く、システムは稼動し続けることが出来る。ただ、複数台に同じデータを持っているので、扱えるデータ容量としてはアレイを構成するハードディスク容量の半分以下となる。RAID 1ではハードディスク台数が増えれば増えるほどハードディスクの利用効率が悪くなる。 それほど信頼性を求めないならば、ハードディスクの利用効率に優れるRAID 5の方がよい。
理論的に読み出し速度は単体ディスクの2倍で行える。しかし、常に性能を重視した実装が行われている訳ではなく、Windows NTに実装されているソフトウェアRAID 1では読み込み、書き込み共に1つで、読み込みは常に一方のディスクからのみ行われる。なお、Windows Server 2003は低負荷時には片方から、高負荷時には負荷分散を行う。
長所
- 復旧が速い。
- 障害発生時に単体ディスクより性能が低下しない。
- RAIDハードウェア/ソフトウェアなしでも使用できる。
- RAID 1を応用してハードディスクの複製ができる。
短所
- 構成ディスク容量に対するデータ記録可能量が常に構成ディスク台数の逆数倍であるため効率が悪い。
- RAID 1の容量は、構成するドライブの中でもっとも小さな容量に決定され、余った部分は利用できない。
- 既存のシステムにドライブを追加し、RAID 1を導入する場合は細心の注意が必要である。なぜならば、中身が空の、追加した方のドライブを複製してしまう危険性があり、その結果、重要なデータを全て失うかもしれないからだ。よって、データの複製の方向を十分に確かめなくてはならない。特に、同一機種のドライブを用いた場合、操作画面での確認が難しくなるため、いっそうの注意が求められる。
[編集] RAID 1+0とRAID 0+1
RAID 0とRAID 1を組み合わせた構成を特別にRAID 1+0(RAID 10)/RAID 0+1(RAID 01)と呼ぶ。
高速化、大容量化を目指したRAID 0と高信頼性を求めたRAID 1を組み合わせることにより、速度、容量、信頼性の向上を図ることができる。最低4ドライブ必要である。
RAID 0とRAID 1は相性がよく、特にコントローラを別にしたハードディスクのグループを使ったRAID 1+0はコントローラ故障にも対応できるため、RAID 6よりも信頼性が高い。
RAID 0とRAID 1、どちらを先に行うかにより名前が変わる。一見どちらも同じように見えるが信頼性の面で異なる。
- RAID 0+1:ストライプされた領域をミラー
- RAID 1+0:ミラーセットをストライプ
RAID 0+1ではRAID 1を構成するRAID 0領域のディスクそれぞれ1台ずつが故障した時点でデータが破壊されるが、RAID 1+0ではRAID 0を構成するRAID 1セットの構成ディスク2台がどちらも故障しない限りデータは破壊されない。台数が増えれば増えるほどRAID 1+0のほうが信頼性が上がる。
RAID 1を使用しているためコントローラの2重化にも対応できるため、容量が必要でなおかつ強力な信頼性を求める場合に採用されることが多い。
[編集] RAID 1.5
マザーボードメーカーDFIが独自に開発したもので、通常、RAID 1の読み出しは、一つのドライブしかアクセスしておらず、もう片方は、完全なバックアップドライブである。その内部アルゴリズムを拡張し、双方からアクセスする事により、読み込み速度を上げるのがRAID 1.5である
[編集] RAID 2: ビット単位での専用誤り訂正符号ドライブ (ECC)
RAID 2の冗長化機構はハミング符号で、ストライプ単位は1ビットである。ハミングコードによるデータ修復が常に必要なほどHDDの信頼性は低くないので、RAID 2は実用性がなく、製品は市販されていない。
ただし、RAID 2の実装に必要なドライブ数は訂正可能ビット数により異なるため、一意に記述することは出来ない。
長所
- 全RAIDレベルの中で最高の対障害性を持つ。
短所
- ハミングコード計算コストが莫大である。
- ディスクの使用効率が極めて悪い(1bitECCの場合、6台構成でRAID 1相当)。
[編集] RAID 3: ビット/バイト単位での専用パリティドライブ
RAID 3はRAID 2の誤り訂正符号を排他的論理和によるパリティに変更し、演算コストを低減したものである。
最低3台のハードディスクを扱い、1台を誤り訂正符号に割り当て、残りの複数台にデータを記録する。
RAID 3はRAID 5に採って代わられた。RAID 3に対応した機器をこれから手に入れることは不可能と考えてよい。ビデオ編集機器においては、アクセスの殆どがシーケンシャルアクセスであることから、現在でもRAID 3が用いられている場合があるが、パソコンやサーバでRAID 3を用いる理由はもうない。
長所
- パリティを訂正符号として用いているためRAID 2に比較して計算コストが低い。
- 構成ドライブ数-1個の容量が確保できるため、ディスク容量の無駄を最小限に押さえられる。
短所
- ビット/バイト単位でアクセスを行うためI/Oの効率が悪い。
- パリティドライブが書き込み処理時のボトルネックとなる。
[編集] RAID 4: ブロック単位での専用パリティドライブ
RAID 4はRAID 3のI/O単位をブロックに拡大し、I/O効率の改善を計ったものである。 性能面でRAID 5に劣るRAID 4は廃れつつある。
長所
- アクセス単位がブロックになっているため、RAID 3より高速なI/Oが望める。
短所
- パリティドライブは書き込み処理時のボトルネックになり得る。(これに対する解がRAID5)
[編集] RAID 5:ブロック単位でのパリティ分散記録
RAID 5は複数のハードディスクに誤り訂正符号データと共に分散させて記録することで、RAID 3、RAID 4のボトルネックを回避している。
現在、RAID 5は各種RAIDの「主役」といえる。RAID 5で速度面の不満があるなら、使っている台数と同数のハードディスクを追加してRAID 0と組みあわせるか、サーバを増設し負荷を分散させるとよい。ただし、すでに冗長化されているためRAID 1との組み合わせには向かない。
長所
- RAID 3やRAID 4のようなパリティドライブがボトルネックとならない。
短所
- 読み出しは高速であるが書き込みは低速である。
- 障害発生時の復元作業が遅い。
- 2つ以上のドライブが同時に故障すると回復できない。(これに対する解がRAID 6)
[編集] RAID 6:ブロック単位・複数パリティ分散記録
RAID 6はパリティを2つ記録する。パリティデータを2重に作成することで、2重障害に対応でき、同時に2台のドライブが故障しても復元できる。よって、RAID 5より耐故障性は高い。
RAID 6は最低4台のハードディスクが必要である。
長所
- RAID 5と比べてさらに高い信頼性がある。
短所
- 初期投資が大きい。(ただし、長期的な運用コストはRAID 5と大差ない)
- 二重にパリティを生成するため、RAID 5よりも書き込み速度が低下する。
- コントローラーの故障に対応できない。(RAID 1+0はできる)
[編集] Matrix RAID
Intelが開発し、ICH6シリーズ以降に搭載・サポートされた独自のRAIDシステム。
Intelによると「2つのボリュームを単一アレイ上に構成する技術」であり、具体的には2~4台のハードディスクから構成されたアレイ内にRAID 0とRAID 1等を同居させることを可能にする。
詳しくはIntelによる公式の解説を参照。
[編集] 関連項目
- ディスクアレイ
- JBOD
- SAN
- NAS
- DAS
- iSCSI
- SATA
- Fibre Channel
- SAS
- FCIP
- SNIA
- Zettabyte File System - ファイルシステムの標準機能としてRAIDをサポートしている。RAID-5相当のRAID-Z、RAID-6相当のRAID-Z2(Solaris10 11/06より)を搭載。
- ファイルサーバ
[編集] 外部リンク
- ウィキメディアのサーバ←どのような目的でどのようなRAIDが用いられるかをご覧ください。
- AdaptecによるRAIDの解説
- 富士通株式会社によるRAIDの解説
- インテル株式会社によるMatrixRAIDの概要