前回は、Hyper-Vを動作させる物理PCのRAMを効率よく活用する、Dynamic Memory機能について取り上げた。仮想マシンに過大なRAMを固定的に割り当てないで、負荷状況に応じて動的にRAM割当量をコントロールすれば、搭載しているRAMの有効利用とパフォーマンスの確保、さらに(うまくいけば)同時に動作させる仮想マシンの増加を期待できる。

そうなると仮想化環境をさらに活用したくなるのだが、そこで問題になるのが既存の物理PCを仮想化環境に移転する作業だろう。今回は、そういった場面で役に立ちそうなユーティリティ、Disk2VHDを紹介しよう。

執筆者紹介

井上孝司(INOUE Koji)


マイクロソフトの開発部門に7年間在籍した後、フリーライターに転身。Windows Serverをはじめとしたマイクロソフト技術に詳しく、著書も多数残している。また、軍事分野にも精通しており、最近では「軍事研究家」としての執筆も行っている。

近著に「戦うコンピュータ2011」(光人社)がある。本誌では現在、「にわか管理者のためのWindowsサーバ入門」、「『MSDN』の歩き方」、「ビジネス視点で防衛産業ウォッチング」を好評連載中。

物理PCを仮想化環境に移転する方法

仮想化環境が登場する前は、「サーバの台数=物理PCの台数」だから、用途の数だけサーバがある。その中には負荷が高いものもあれば、負荷が低いものもある。負荷が低いサーバであれば、まとめて仮想化環境に収容することで物理PCの削減を図れそうだ。

ところが、単純にファイルをコピーすればよいというものではないので、既存の物理サーバを仮想化環境に収容するのは簡単ではない。同じ設定のものをHyper-V上でセットアップし直す方法も考えられるが、いくら設定内容をメモしておいたとしても環境再構築にはかなりの手間がかかる。それに、環境再構築だけでなく、Windows UpdateやService Packの再適用という手間もかかる。

できれば、既存の物理PCで動作している環境をそのままゴッソリと仮想化環境に持って行きたいところだ。HDD同士をコピーするためのユーティリティならいろいろと市販されているが、今回のケースでは片方が仮想HDD(*.VHDファイル)になるので、その手のユーティリティは使えない。

といったところで登場するのが、マイクロソフトが無償配布しているユーティリティ「Disk2VHD」だ。これは、物理HDDの内容をまるごと、Virtual PCやVirtual Server、あるいはHyper-Vで使用している仮想マシン用の仮想ハードディスクファイル(VHD : Virtual Hard Disk)に変換してくれるツールだ。利用可能なOSはWindows XP SP2以降とWindows Server 2003 SP1以降で、x64版でも使える。

Disk2vhd v1.63
http://technet.microsoft.com/en-us/sysinternals/ee656415.aspx

Virtual PCだとVHDのサイズに127GBの上限があるが、Hyper-Vではこのことは問題にならない。なお、Windows 7やWindows Server 2008 R2ではVHDファイルをdiskpartコマンドで直接マウントすることもできるので、Disk2VHDで作成したVHDからファイルを取り出すこともできる。

DIsk2VHDを使ってみよう

Disk2VHDは、前述したWebページで「Download Disk2vhd」とあるリンクをクリックするとダウンロードできる。ファイルはZIPアーカイブになっているので、そこから「disk2vhd.exe」を取り出せばよい。

おそらく、Windows Server 2003のように世代が古いOSを動作させていたコンピュータでは、64bit版Windows Server 2008とHyper-Vの動作に必要なシステム要件を満たしていないだろう。すると、作成したVHDをHyper-V環境に持って行く手段が必要になるはずだ。そのため、VHD化の対象となるドライブとは別に、VHDを書き出すためのドライブを用意しておく方が良いだろう。たとえば、USB接続の外付けHDDがよい。

ともあれ、ダウンロードしてきた「disk2vhd.exe」をダブルクリックして実行すると、以下のGUI画面を表示する。ここでVHDに変換したいドライブについてチェックをオンにして、上のテキストボックスでファイル名を指定してから[Create]をクリックすると、VHDへの変換を開始する。

DIsk2VHDのGUI画面。ここでVHD化するドライブとVHDのパスを指定して[Create]をクリックする

なお、Virtual PCとの互換性を確保するために[Prepare for use in Virtual PC]というチェックボックスがある。これは、Virtual PCではVHDのサイズが127GBに制限されているためだが、Hyper-Vにはそうした制約はないし、利用可能な論理プロセッサの制限もVirtual PCより緩い。だから、このチェックボックスをオンにする必要はない。

ちなみに、Disk2VHDはコマンドラインで操作することもできる。その場合、「disk2vhd [ドライブ名] <VHDのファイル名>」と入力すればよい。たとえば、すべてのドライブを「D:\foo.vhd」に変換するのであれば、「disk2vhd * D:\foo.vhd」となる。

いずれにしても、VHDに変換している最中にコンピュータの操作を行ってディスクの内容が変化するとトラブルの原因になるので、変換が完了するまで何も触らないようにしよう。