RAID-5ボリュームを構成するディスクの1台に故障が発生するとどうなるか、さっそく試してみよう。ディスク障害の状況を再現するにはいくつか方法があるが、一番簡単な方法として、とりあえず仮想ディスクを1台削除してみよう。まず仮想マシンに3台のディスクを追加してRAID-5ボリュームを構築する。これが正常に動作することを確認後、仮想マシンを停止させる。そして、Hyper-Vの仮想マシンの設定メニューを開き、SCSIインターフェイスに接続されているディスクのうちの1台を削除してみる。実機で言えば、ディスクへの接続ケーブルを物理的に外すことに相当する。ここでは3台のうち、真ん中の1台、ディスク2を外してみた(どれを外してもよい)。その後仮想マシンを再起動したのが次の画面である。
ボリュームの状態が「冗長の失敗」となっていることに注意していただきたい。冗長構成ではなくなり、システムが危険な状態であることが分かる。だが、ドライブ名として「D:」が表示されていることにも注意していただきたい。実際にはこのシステムでは、RAID-5に割り当てたドライブであるD:が、この状態でもアクセスできている。システムとしては非常に危険な状態になっているが、ユーザーからはこのボリュームに正常にアクセスできる。もちろん、ファイルの読み書きが可能である。速度も通常時と変わりないように感じられるが、これは仮想環境なので、ほかの環境で利用した場合も同じであるとか、もしくは遅く(速く)なったとは断言することはできないだろう。
現実のディスクの場合とは状況が異なるので、これをもってRAID-5の障害状況を正確に体験することは、残念ながら不可能だ。前回の「ミラー・ボリュームを構成するディスクに障害が発生するとどうなる?」でも述べたが、現実のディスク障害は一部の読み書きエラー(とそれに対する再試行)などから始まることが多く、その場合はディスクへのアクセスが一瞬待たされるといった状況が頻発するようになる(注意していないと、単なるネットワークのトラブルや混雑と間違える程度のものである)。ソフトウェアRAIDなので、システムから明示的なトラブルの通知が送られることはない。ディスクの管理ツールをチェックしたり、ディスク関連の入出力エラーがイベント・ログに記録されていないかを調べたりしないと、気付かない可能性もある。
ところで前回の例ではもう1つ、diskpartのcleanコマンドでディスクのデータをいきなり初期化する方法を紹介した(「ディスクの内容を消去するには?」参照)。ミラー・ボリュームに対してこれを行うと、ドライブ名は維持されず、いきなりボリュームやドライブ名が消失していた(もちろんユーザーからもアクセスできなくなる)。RAID-5のボリュームに対してこの操作を行うと、同様に、いきなりボリュームやドライブ名が消失し、ユーザーからはアクセスできなくなる。これもまた障害の1つのパターンであるので、憶えておくとよいだろう(システム稼働中にディスクを消去するとこのパターンになり、システム停止中にディスクを消去すると先のパターンになるようである)。
RAID-5ボリュームを構成するディスクの1台に障害が発生した場合、可能な対処方法は次のとおりである。
2と3を除外すると、行うべき作業はただ1つである。ディスクが1台故障したら、代わりのディスクを1台取り付け、そこに元のデータを復元させるしかない。ミラー・ボリュームの障害の場合と違い、RAID-5ボリュームを2つ以上に分割して、別々のボリュームに作り直して使う、ということはできない。ミラー・ボリュームの場合は、シンプル・ボリュームにしてからサイズを変更し、またミラーにするといったことも可能だが、RAID-5の場合はサイズを変更することもできない。ボリューム・サイズを拡大したければ、別に作成した大きなRAID-5ボリュームへいったんバックアップしてからリストアする、といった方法を使う必要がある。
ちなみに、Virtual Server 2005やHyper-VのSCSIインターフェイスでは、仮想マシンの実行中に仮想ディスクの追加や削除が可能である。
それではRAID-5ボリュームを修復してみよう。1台ディスクが削除された仮想マシンに新しいディスクを接続した状態が、次の画面である。新規ディスクを接続すると、最初に「ディスクの初期化」ウィザードが表示されるので、接続したディスクを選択して、初期化しておく(「ディスクの初期化とは?」参照)。
元のディスクは32Gbytesであったが、ここではより大きな64Gbytesのディスクを1台追加している。このように、サイズが大きなディスクを使ってRAID-5ボリュームを修復することはできるが、元よりも小さいサイズ(小さいパーティション・サイズ)のディスクを使って修復することはできない。
ディスクが追加できたら、障害を起こしているディスク、もしくは一番下に表示されている「不足」と表示されているディスクを右クリックし、ポップアップ・メニューから[ボリュームの修復]を選択する。
すると、修復に利用できるディスク(空き領域のあるディスク)が表示されるので、適切なものを選択して[OK]をクリックする。
ディスクを選択すると、必要ならベーシック・ディスクからダイナミック・ディスクへの変換が行われ、RAID-5ボリュームの再構築作業が始まる。作業中に「再同期中」と表示されるのは、初期化の場合と同じである。再同期とは、残っているディスクからデータとパリティ情報を読み出し、追加されたディスクに復元したデータを書き込む作業のことである。ボリューム内のデータ量が多いとそれなりに時間がかかる。再同期が完了するまでに別のディスクに障害が発生すれば、ボリューム・データは失われてしまう。
再構築作業が終了すると、「再同期中」が「正常」に変わり、次のようにボリュームが復元されているはずである。
なお、障害発生に伴ってボリュームやドライブ名まで失われた場合は(diskpartのcleanコマンドで障害を起こしたような場合)、この後、手動でドライブ文字の割り当てなどを行ってボリュームを復旧させる必要がある。
ところで修復が完了しても、管理ツールの一番下に「不足」「ダイナミック」という名付けられた仮想的なドライブが表示されていることがある(上の画面の(3))。だがこれは、障害があったことを表している名残(というのか?)なので、そのまま右クリックして、ポップアップ・メニューから[削除]を選択して消しておく。
Copyright© Digital Advantage Corp. All Rights Reserved.