第12回 Windowsのディスク管理をマスターする(中)仮想PCで学ぶ「体当たり」Windowsシステム管理(1/3 ページ)

複数のディスクを組み合わせて使うストライプ・ボリュームとミラー・ボリューム。その作り方や障害時の対応方法は?

» 2011年01月06日 00時00分 公開
[打越浩幸,デジタルアドバンテージ]
仮想PCで学ぶ「体当たり」Windowsシステム管理
Windows Server Insider


「仮想PCで学ぶ『体当たり』Windowsシステム管理」のインデックス

連載目次

 仮想化ソフトウェアを利用すれば、実機ではなかなかできないようなことでも簡単に行える。前回は、仮想環境におけるディスク関連の話題について取り上げた。Windows OSにおけるディスク管理の基礎や、サポートされている仮想ディスクの最大数、最大サイズ、ファイル・システムの制限などについても見てきた。今回は、ストライプやミラー・ボリューム、および障害の発生したミラー・ボリュームの復旧方法などについて見ていく。

ストライプ・ボリュームを作成するには?

 ストライプ(ストライピング)は、別名RAID-0とも呼ばれ、複数のディスクに対して同時にアクセスしてアクセス性能を高める技術である。前回解説したスパン・ボリュームと似ているが、ストライプ・ボリュームの場合、構成する複数のディスクに対して同時にアクセスして、読み書き速度を高めている。例えば4台のディスクで構成されたストライプ・ボリュームに1Mbytesのデータを書き込んだ場合、それぞれのディスクに対して256Kbytesずつ同時に書き込み、書き込み速度を向上させている。読み出し時も同時にアクセスするので、ただ1台のディスクにアクセスする場合と比べて、理論上は最大4倍の高速化が行える。これに対してスパン・ボリュームの場合は、先頭のディスクから順番にボリュームに割り当てていくため、アクセス速度は向上しない。

 もっともこの高速化は、物理ディスクでストライプ・ディスクを利用する場合の話である。ストライプ・ボリュームを構成する複数の仮想ディスクを同じ物理ディスク上に配置すると、ディスクの並列化による速度向上がまったく期待できないばかりか、物理ディスクでヘッド・シークが頻繁に生じるため、仮想ディスク1台のときよりも遅くなる可能性がある。だが機能的には仮想環境上でもほぼ同様に動作するので、ストライプやミラーなどのテストをすることは可能である。

 ストライプ・ボリュームを利用するためには、2台以上の仮想ディスクを作成し、それを仮想マシンに接続する。スパン・ボリュームの場合と同様に、2台以上、最大32台までのディスクを1つのストライプとして設定できる。仮想ディスクのサイズは最大2Tbytesまでなので、32台でストライプ・ボリュームを作成すると、最大で64Tbytesのボリュームが作成できる。ただしスパン・ボリュームの場合と同様に、NTFS形式でフォーマットしても、作成できるファイルの最大サイズは(現在のところ)16Tbytesまでである(詳細は前回の記事参照)。

ストライプ・ボリュームのサイズ指定画面
これはWindows 7のストライプ・ボリューム作成ウィザードの例。16Gbytesのディスク上にストライプ・ボリュームを作成しようとしている。プライマリ・パーティションやシンプル・ボリュームと違って、ストライプやミラー、RAID-5ボリュームは、一度作成するとサイズ変更(拡大や縮小)は不可能なので、慎重にサイズを決めること。
 (1)利用可能なディスクの一覧。
 (2)左からディスクを選んでこれをクリックすると、右側へ移動する。
 (3)ボリュームの作成に利用するディスク。
 (4)ボリューム・サイズの合計。
 (5)利用可能な最大ディスク・サイズ。
 (6)各ディスクから確保するサイズ。すべてのディスクから同じサイズが確保される。

 それぞれのディスクに同時にアクセスするため、各ディスクからは同じサイズだけ領域が確保される。ディスクのサイズが異なっていたり、すでにほかのパーティションなどが存在していたりする場合は、一番小さい空き領域サイズに合わせてストライプ・ボリュームの最大サイズが決定される。

 以下に作成したストライプ・ボリュームの例を示す。3台のディスクにまたがって、すべて同じドライブ名が割り当てられていることが分かるだろう。

ストライプ・ボリュームの例
これはWindows 7 Ultimateでのストライプ・ボリュームの作成例。16Gbytesのディスク3台で、48Gbytesのボリュームを作成している。奇数台のディスクでもストライプ・ボリュームは作成できる。ただし同じ物理ディスク上に各仮想ディスク・ファイルを保存しているので、性能的なメリットは期待できない。たとえ仮想ディスクの置き場所を分けても、スナップショットなどを作成すると同じ物理ディスク上に差分ディスクが作成されるので、結局アクセスは1カ所に集中することになり、性能向上は望めないだろう。
 (1)ストライプ用ディスク1。16Gbytesの仮想ディスクをIDEインターフェイス経由で接続している。
 (2)ストライプ用ディスク2。
 (3)□ストライプ用ディスク3。
 (4)ストライプ・ボリュームを作成するには、スパン・ボリュームの場合と同様、ダイナミック・ディスクが必要になる。Windows 7の場合は、必要ならば自動的にベーシック・ディスクからダイナミック・ディスクに変換される。

ストライプ/スパン・ボリュームを構成するディスクに障害が発生するとどうなる?

 それでは、いま作成したストライプ・ボリュームやスパン・ボリュームの1つに障害が発生したらどうなるか実験してみよう。現実のコンピュータでは、ディスクが壊れることはよくあるので、その状況を体験しておくのは重要だからだ。

 とはいえ、仮想マシン環境で再現可能なディスク・システムの障害は現実のものとは異なり、かなり限定されている。例えば一部分のセクタが読み書きできない、シーク・エラーになる、だんだん不良セクタが増える、いくつかのコマンドに応答しなくなる、応答速度が極端に遅くなってエラーを返す(現実のディスクでは不良セクタに遭遇すると何回かリトライし、最後はエラーを返す)、などといった症状は再現できない。せいぜい、まったくアクセスできなくなるか(ディスクを取り外した状態にするか、オフラインにする)、書き込まれているはずのデータがなくなる(ゼロ・データで上書きする)といった状態にしかできない。

 今回は簡単にテストできるように、ディスクの先頭部分(ブート・セクタやパーティション・テーブル、パーティションの先頭部分)をゼロ・クリアするという障害を発生させてみる。具体的には、diskpartコマンドでディスクを選択し、cleanコマンドで先頭部分を消去してみる(前回の記事や、TIPS「diskpartのcleanコマンドでディスクの内容を消去する」参照)。実行すると次のようになる。

ストライプ・ボリュームに障害が発生した場合の例
ストライプ・ボリュームには冗長性がないため、1台でもディスクが故障すると、ボリューム全体がアクセス不可能になるし、データも失われる。
 (1)エラー・ボリュームとなった。
 (2)このディスクの内容をクリアした。
 (3)元の情報は失われ、初期化されていない、新しいディスクとして認識されている。
 (4)これはストライプの2番目のディスク。ボリュームとして認識できないので、「失敗」という状態になっている。
 (5)これはストライプの3番目のディスク。
 (6)これは物理ディスク(この場合は仮想ディスク)ではなく、障害が発生したディスクやボリュームの情報である。何らかの障害が見つかった場合に表示される。これを右クリックすると、このようなポップアップ・メニューが表示される。
 (7)[ボリュームの再アクティブ]を選択しても、ボリュームを復旧できない。このメニューは、一時的に取り外していた(データの無事な)ディスクを再接続し、ボリュームを再認識させるような場合に利用する。
 (8)ボリュームを削除したい場合はこれを選択する。

 一番下に障害が発生したディスクやボリュームの情報が表示されているが、これはストライプを構成するディスクの1つが見つからないというエラーを表している(スパン・ボリュームの場合も同様に表示される)。

 ストライプ・ボリュームやスパン・ボリュームの場合、データに対する冗長性や訂正能力はないため、このような状態になったら、もうデータの復旧はあきらめるしかない。ボリュームの再生も不可能なため、ユーザーが可能な唯一の操作は、ボリュームの削除((8))だけである。削除後、またディスクを接続/初期化して、新たにボリュームを作成し直す。


       1|2|3 次のページへ

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。