図1 一般的によく使われるのは、RAID-1とRAID-5
図1 一般的によく使われるのは、RAID-1とRAID-5
[画像のクリックで拡大表示]
●Windows 2003 ServerでのRAID-1の設定方法
●Windows 2003 ServerでのRAID-1の設定方法
[画像のクリックで拡大表示]
●Windows 2003 ServerでのRAID-1の修復方法
●Windows 2003 ServerでのRAID-1の修復方法
[画像のクリックで拡大表示]
●Windows 2003 ServerでのRAID-5の設定方法
●Windows 2003 ServerでのRAID-5の設定方法
[画像のクリックで拡大表示]
図15 RAID-5構成をソフトとハードで構築し、約1GBのデータを書き込んだり、読み出した時の時間を測定。読み出しはほとんど同じだが、書き込みはハードの方が速い結果になった
図15 RAID-5構成をソフトとハードで構築し、約1GBのデータを書き込んだり、読み出した時の時間を測定。読み出しはほとんど同じだが、書き込みはハードの方が速い結果になった
[画像のクリックで拡大表示]
図16 アダプテックジャパンの「Serial ATA RAID 2410SA エンクロージャキット」。RAID-5のパリティ計算を処理できるCPUを搭載したRAIDボードと、4台のHDDが収納でき、ホットスワップに対応したベイがセットになっている。専用の管理ソフトを使って、エラー発生時に警告音を鳴らしたり、管理者にメールを送るなどの設定が可能。実勢価格6万7000円程度。ボード単体は4万5000円程度
図16 アダプテックジャパンの「Serial ATA RAID 2410SA エンクロージャキット」。RAID-5のパリティ計算を処理できるCPUを搭載したRAIDボードと、4台のHDDが収納でき、ホットスワップに対応したベイがセットになっている。専用の管理ソフトを使って、エラー発生時に警告音を鳴らしたり、管理者にメールを送るなどの設定が可能。実勢価格6万7000円程度。ボード単体は4万5000円程度
[画像のクリックで拡大表示]

 今回はハードディスク(HDD)の障害対策に有効な「RAID」について解説する。RAIDとは、複数のHDDを使ってディスク全体の信頼性や性能を高める仕組みのこと。HDDの接続形態などによって、いくつかの種類がある。データ保護で主に使われるのは、RAID-1(ミラーリング)とRAID-5だ(図1[拡大表示])。

 RAID-1は、HDDの複製を別の1台のHDDに持たせる仕組み。HDDが2台あれば構築できるが、利用できる記録容量は全HDD容量の半分になる。しかし、Windows 2003 ServerなどOSが標準で備えている機能を使えば、コストをかけなくても実現でき、安全性も高まる。

 一方、RAID-5は、3台以上のHDDを使い、そのうちの1台分の容量を信頼性向上のために使う仕組み。利用可能な記録容量の割合は、RAID-1よりも多くなる。半面、最低でも3台のHDDが必要なためRAID-1よりも初期コストがかかってしまう。また、十分なパフォーマンスを引き出すためには、RAIDボードと呼ばれるハードウエアが必要になる場合が多い。

RAID-1を体験する

 まずは、手軽に利用できるRAIDとして、Windows Server 2003を使ってRAID-1の設定方法を紹介しよう。サーバーにHDDを2台増設し、その2台でRAID-1を組む手順を説明する。HDDはATAとSCSIのどちらのHDDを使ってもよい。ただ、2台のHDDの種類(型番)は合わせておくのが無難である。シリアルATAのHDDなら250GBのHDDを2台で3万円程度で購入できる。

 HDDを増設したら、「マイ コンピュータ」を右クリックし「管理」を選ぶ。「コンピュータの管理」画面で「ディスクの管理」を選ぶと増設した2台のHDDが見えるはずだ。ここで、この2台を「ダイナミック ディスク」に変換する(図2[拡大表示])。ダイナミック ディスクとは、Windows 2003 ServerやWindows XPが備えているディスクの管理機能。昔ながらのWindows 98/Me系のディスク管理機能とは異なり、容量の追加やRAIDなどの各種機能を持たせることが可能になっている。「ディスク1」「ディスク2」と表示されたアイコンを右クリックすればダイナミックディスクへの変換を実行できる。

 変換後は、「ディスク1」を右クリックして「新しいボリューム」を選ぶ(図3[拡大表示])。すると「新しいボリューム ウィザード」が起動する。ウィザードを進めて「ボリュームの種類の選択」で「ミラー」を選ぶ(図4[拡大表示])。その後、RAID-1に使うディスクを選択する。ここでは新たに増設したディスク1とディスク2を選択すればよい(図5[拡大表示])。ドライブ文字(EやFなど)を選択して(図6[拡大表示])、ウィザードを終了すれば、2台のHDDでRAID-1の初期設定が行われる。初期設定には数時間かかるが、完了する前から利用できる(図7[拡大表示])。Windowsからは図6で設定したドライブ文字(この場合はF)でアクセスでき、ここに書き込んだデータは自動的に2台のHDDに保存される。

 なお、CドライブをRAID-1にすることも可能だ。HDDを1台増設して、ウィザードでRAID-1構成をとる。画面の指示に従って再起動すると、自動的にCドライブのデータが増設HDDにコピーされる。

 RAID-1は簡単に構築できるが、運用する場合には十分注意が必要だ。Windows 2003 Serverを使ったRAIDでは、実際にHDDが壊れたときに気づきにくいのである。HDDが故障していても、システム起動時にWindowsのデスクトップ画面には何も表示されない。イベントビューアーを見るか(図8[拡大表示])、「ディスクの管理」画面(図9[拡大表示])を見ないと、RAID構成が壊れていることが分からないのだ。

壊れたらすぐ修復

 1台のHDDが故障しても、サーバーは稼働を続けるが、もう1台が壊れたら大事なデータをなくしてしまう。1台が故障した状態での運用は絶対に避けるべきだ。イベントビューアーのチェックがまめにできないようなら、Windowsの標準機能を使うのはあきらめて、別途通知機能を備えたRAIDボードを使った方がよいだろう。

 修復のためには、サーバーの電源をオフにして、代替用の新しいHDDを接続する。再起動したら、「ディスクの管理」画面を開き、新HDDをダイナミック ディスクに変換する。次に故障したHDDを選んで右クリックし「ミラーの削除」を選ぶ(図10[拡大表示])。削除したら、故障していないHDDを選んで「ミラーの追加」を選び、新HDDをRAID-1に追加する(図11[拡大表示])。新たに設定が始まるが、この時点ですでに読み書きは可能になっている(図12[拡大表示])。これらの作業が終わったら電源を切り、壊れたHDDを外す。

RAID-5はハードで

 Windows 2003 ServerならばRAID-5の構築も可能だ。設定の手順はRAID-1とほぼ同じ。3台のHDDを接続して、ダイナミック ディスクに変換後、「新しいボリューム ウィザード」を起動する。ウィザードを進めて「ボリュームの種類の選択」では「RAID-5」を選べばよい(図13[拡大表示])。設定終了後はRAID-5の構築に数時間かかるが、すぐに使い始めることができる(図14[拡大表示])。

 1台のHDDが故障した場合、RAID-1と同様、イベントビューアーに表示されるだけで、特別なエラーメッセージは表示されない。RAID-1同様、残り2台でも使い続けることができるが、もう1台壊れるとすべてのデータが消えてしまう。必ず修復しよう。修復作業はRAID-1とほぼ同様。新HDDを接続し、ダイナミック ディスクに変換後、「ボリュームの修復」を実行する。修復に使うHDDを聞かれるので新HDDを選び、修復を実行すれば、新たにRAID-5の設定が始まる。

 ただRAID-5はRAID-1と異なり、パリティ情報の計算があるため、書き込みなどのパフォーマンスが悪くなりがちだ(別掲記事「RAID-5で使うパリティ情報とは」参照)。図15[拡大表示]はWindows 2003 Serverの標準機能のRAID-5と、パリティ計算用のチップを搭載したRAIDボードで読み書きの速度を比較した結果である。読み出し速度はそれほど変わらないものの、書き込み時間では、大きな差がついた。RAID-5を本格的に運用するなら、RAIDボードの利用を考えた方がよい。

 RAID-5を構築するのなら、HDDもホットスワップ対応にしたい。ホットスワップ対応ならば、稼働中でもHDDを交換でき、故障への迅速な対応と修復が可能になるのだ。図16[拡大表示]はアダプテックジャパンのRAIDボードと、ホットスワップベイのセット。故障が起こったときには、ホットスワップベイの警告ランプが点灯するほか、警告音が鳴る。あらかじめ設定しておけば警告メールを管理者に送ることもできる。


HDD AとHDD Bに記録するデータのXORをパリティ情報としてHDD Cに書き込む。HDD Aが壊れても、残ったHDD BとHDD CでXORを実行すれば、HDD Aのデータが復元できる

RAID-5で使うパリティ情報とは

 RAID-5で使うパリティ情報は、XOR(Exclusive OR:排他的論理和)という論理演算が使われる。XORは2進数で表現すると、0と0、1と1の入力があったときは0、0と1、1と0のときは1を出力するといった演算だ。CPUの内部では足し算でも使われる基本的な論理演算である。

 RAID-5ではデータを記録するときに、記録したいデータ同士でXORを計算し、その結果をパリティ情報として別のHDDに記録している。例として、8ビットの「11001010」というデータを3台のRAID-5構成HDDに記録することを考えてみる(実際には数十KB単位でHDDには記録される)。まず、8ビットのデータは2つに分割され、HDD Aに「1100」、HDD Bに「1010」が記録される。このとき、1100と1010のXOR演算の値「0110」がパリティ情報として、HDD Cに記録される。

 ここで、HDD Aが壊れたとする。残ったHDD Bのデータ「1010」とHDD Cのデータ「0110」のXORを計算すると、「1100」となりHDD Aのデータを復元できるのだ。HDD Bが壊れたとしても、HDD AとHDD CのXORを計算すれば、やはりHDD Bのデータを復元できる。4台以上の場合でも、残っているHDD同士でXORを計算すればよい。