Windows TIPS
[System Environment] |
仮想ハードディスクを圧縮する(Virtual Server 2005 R2編)
→ 解説をスキップして操作方法を読む
デジタルアドバンテージ 打越 浩幸
2006/05/20 |
|
対象ソフトウェア |
Virtual Server 2005 SP1 |
Virtual Server 2005 R2 |
|
|
 |
■ |
仮想ディスク・ファイル中の未使用領域を解放して、サイズを縮小するには「仮想ディスクの圧縮」を行うとよい。 |
■ |
圧縮を行う前に、デフラグや、事前圧縮ユーティティによる未使用領域への0データの書き込みを行っておくとよい。 |
■ |
仮想ディスク・ファイルの読み取り属性を解除しておかないとエラーとなり、圧縮できない。 |
|
|
TIPS「仮想ハードディスクを圧縮する(Virtual PC 2004編)」では、Virtual PC 2004 SP1の仮想ディスク・ファイル(.VHDファイル)を圧縮する方法について解説した。
仮想ディスクの圧縮とは、可変長サイズの仮想ディスク・ファイルのうち、未使用部分を解放(除去)して、そのサイズを小さくすることを指す。ゲストOS上でファイルの作成や削除、デフラグ操作などを繰り返すと、仮想ディスク・ファイル中には未使用の領域(ブロック)が増え、実際にゲストOSで使用している以上に仮想ディスク・ファイルのサイズが増大する。だが、その未使用領域が自動的に解放されることはない。このような無駄な領域を見つけ出し、仮想ディスク・ファイル中から取り除くことを仮想ディスクの「圧縮(compaction)」という。
本TIPSでは、Virtual Server 2005 SP1/Virtual Server 2005 R2(以下VS2005)における、仮想ディスクの圧縮方法について解説する。ただしVS2005環境では、仮想ディスクのパフォーマンスを最大にするため、可変長ではなく、固定長サイズの仮想ディスク・ファイルを使用する場合も少なくない。その場合は圧縮を行う必要はなく、通常のデフラグ操作だけで十分である。
手順1―ゲストOS上でのデフラグ
仮想ディスク・ファイルを圧縮するためには、最初にVS2005上で対象となる(.VHDファイルをマウントした)ゲストOSを起動し、ファイル・システムをデフラグしておくとよい。デフラグすると、使用領域が集中化するので、アクセス効率の向上が望める。またデフラグの前に、不要なファイルの削除やごみ箱を空にするといった操作も行っておくとよい。
手順2―未使用領域への0データの書き込み
仮想ディスクの圧縮では、ディスクの未使用領域(ファイル・データが書き込まれていない領域や、ファイルを削除済みの領域)に対して、0データを書き込んでおく必要がある。このために利用するのがVS2005に付属の「バーチャル・ディスク事前圧縮ユーティリティ(virtual disk precompactor。コマンド名はprecompact.exe)」である。このツールを実行すると、新しいファイルを次々と作成しながら、その内容として0データを書き込む。空き領域いっぱいにファイルを作成し、最後にそれらがすべて消去されると、結果的に未使用領域の内容はすべて0になる。
このツールは、VS2005のインストール・フォルダ(デフォルトでは「C:\Program Files\Microsoft Virtual Server」)の中にある「Virtual Machine Additions」というフォルダ中に「Precompact.iso」という.ISOファイルとして用意されている。これはCD-ROMイメージのファイルなので、ゲストOSに仮想CD-ROMとしてマウントする。
 |
仮想CD-ROMのマウント |
仮想マシンの[構成の編集]画面を開き、[CD/DVD ドライブのプロパティ]で.ISOイメージ・ファイルをマウントする。 |
|
 |
ゲストOSの実行中は、構成の変更はできないが、イメージをマウントすることはできる。 |
|
 |
これを選択して、.ISOファイルを指定する。 |
|
 |
.ISOファイルへのフル・パスを指定するか、上のドロップダウン・リストから選択する。 |
|
 |
これをクリックすると、仮想マシンにCD-ROMイメージがマウントされる。 |
|
仮想CD-ROMをマウントすると、自動的に実行するかどうかを聞いてくるので、[はい]を選択し、事前圧縮ユーティリティを起動する。
 |
事前圧縮ユーティリティの実行 |
仮想CD-ROMが自動起動に設定されていると、事前圧縮ユーティリティが起動する。VS2005に付属の事前圧縮ユーティリティは、サーバ用途のためか、メッセージは英語版のままである。 |
|
 |
これをクリックして事前圧縮ユーティリティを実行する。デフォルトでは全ドライブを事前圧縮する。 |
|
特定のドライブだけを圧縮したり、自動起動を無効にしたりしている場合は、手動で実行してもよい。この仮想CD-ROMの中にはprecompact.exeというファイルが入っているので、ダブルクリックすれば起動する(あらかじめこのファイルだけをコピーして抜き出しておき、ゲストOS上へコピー後、実行してもよい)。特定のドライブだけに対して事前圧縮を行うには、コマンド・プロンプト上で実行してもよい。「-SetDisks:<ドライブ名>」で、(複数の)任意のドライブに対して実行することができる。ヘルプは「precompact -?」で表示される。
C:\>d:
D:\>precompact -setdisks:ce ……ドライブC:とE:に対して実行する例 |
手順3―圧縮ツールの起動
以上で事前圧縮は終了である。ゲストOSをシャットダウンし、次はVPC2004の管理画面で圧縮操作を行う。ゲストOSを起動したままでは(仮想ディスクが使用中では)、圧縮することはできない。
VS2005で仮想ディスク・ファイルを圧縮するには、VS2005のWeb管理画面で、左側のメニューから[バーチャル ディスク]-[検査]というメニューを起動する。
 |
ディスク圧縮ツールの起動 |
VS2005の管理画面から、仮想ディスクの検査メニューを起動する。 |
|
 |
これをクリックする。 |
|
次に編集対象の.VHDファイルを指定する。差分ディスクや復元ディスクは指定できないので、必要ならば(元のファイルと結合して)容量可変の仮想ディスクに変換しておく。なお、ファイルに読み取りのみ(書込み禁止)の属性が付いているとエラーになるので、読み取りのみの属性は外しておく。
 |
圧縮対象のファイルの指定 |
圧縮対象の仮想ディスク・ファイルを指定する。 |
|
 |
仮想ディスク・ファイルのフルパス名を指定するか、上のドロップダウン・リストから選択する。 |
|
 |
これをクリックして先へ進む。 |
|
次のステップでは、[バーチャル ハードディスクを圧縮する]を選択する。
 |
圧縮の選択 |
ウィザードでは、ファイルを圧縮するか、ほかの種類に変換するかを選択できる。 |
|
 |
ほかの種類に変換するにはこれをクリックする。 |
|
 |
圧縮するにはこれを選択する。 |
|
以上で設定は終わりである。次の画面の[圧縮]ボタンをクリックすると、ファイルの圧縮が行われる。圧縮結果は、別の一時的なファイルに出力されるが、正しく圧縮作業が終了すると、元のファイルに対して上書きされる。
 |
圧縮の実行 |
圧縮の確認画面。[圧縮]ボタンをクリックすると実際の圧縮作業が始まる。圧縮後は、元のファイルは削除されるので、必要ならば自分でバックアップを取っておく。 |
|
 |
これをクリックする。 |
|
圧縮作業が終了したかどうかは、Web管理画面のトップページにインジケータやイベント・ログが表示されるので、それで確認できる。
Windows Server Insider フォーラム 新着記事