「バーチャルマシンソリューション Virtual PC 2004を使う 前編」レガシーアプリケーションを使ったり、ソフトウェア開発作業をスピードアップ複数のオペレーティング システムを同時に実行できるメリット
Microsoftから発売されているVirtual PC 2004(http://www.microsoft.com/japan/windows/virtualpc/default.mspx)の名前を聞いたことがある人は少なくないと思う。一言でまとめれば、「仮想のPCを複数台、Windows環境下で稼動させられるソフトウェア」である。最近、CPUの世界でもVirtualization(仮想化)というキーワードが何かと登場するようになってきているが、このVirtualizationをソフトウェアだけで実現できるのがVirtual PC 2004である。
後編「用途別に仮想環境をつくることで一歩進んだ仮想環境づくりを提言」12/8アップ
Virtual PC 2004のメリットその1:複数環境の共存    ではどんな用途でVirtual PC 2004を使うメリットがあるか? 一番大きいのは「複数環境の共存」である。例えばソフト開発のシーンを考えた場合、動作環境がWindows 9x/Me/2000/XP/...と複数なものは未だに多い。当然テストやデバッグの過程で、これらの環境を全部構築して保持しておかなければならない訳だが、環境の数だけPCを物理的に用意するのは大変だし、なによりそれを常時使えるようにするのは大変である。最近はキーボード/CRTの切り替え器とかもあるが、それを使っても管理は面倒だし、あるいはリムーバブルタイプのHDDを使ってOSを入れ替えてテストというのも煩雑である。
 
Photo01:左上より時計回りにWindows XP Professional Edition Service Pack 2, Windows 98 Second Edition, Windows Server 2003 Standard Edition Service Pack 1, Windows 2000 Service Pack 4の各環境が同時に稼動していることがわかる。

Photo02:この例ではホスト(Virtual PC 2004を稼動させているOS。この例ではWindows XP Professional Edition)の「マイドキュメント」フォルダを、各仮想マシンのE:ドライブに割り当てている。

Photo04:2つの仮想マシンを動かし、片方はWindows XP、片方はRed Hat 8.0を動かしている図。8.0であることにはさして意味はなく、単に手元にすぐあったからである。後で最新のFedora Core 4をインストールしてみたが、こちらも問題なく動作した。

Photo04:これはあくまで開発者向けのリリースで、一般のユーザーが試せるのは来年以降のRC1からになる。

 こうした問題は、Virtual PC 2004を使うことで一挙に解決する。Virtual PC 2004を使うことで、複数の仮想マシンを稼動させ、各々で異なったOS環境をインストールして同時に実行できるから(Photo01)、物理的に1台のマシン(=開発用マシン)で全ての環境のテストが可能である。

 さらに、「共有フォルダ」の機能を使うとさらに作業は便利になる(Photo02)。これを使えば、全ての仮想マシンが同じフォルダを共有できるようになるから、例えばホストOS上でプログラムのビルドが終ったら、それを共有フォルダに放り込んでおけばよい。すると全ての仮想マシンのE:ドライブに、今ビルドしたプログラムが見えるといった具合だ。プログラムのビルドが終るたびに、FDD(や、最近だとUSBメモリ)を使ってプログラムのコピーを行ったりする手間はもうかからない。

 ちなみにVirtual PC 2004上で動作するのはWindows系OSだけとは限らない。MS-DOSやLinuxなどOpenSource系OSやOS/2など、x86上で動くOSであれば基本的には何でも動作する。もちろんVirtual PC 2004はあくまでもソフトウェアのエミュレータなので、特定のハードウェアを要求するようなものは動作させるのが難しいが、それ以外はほぼ大丈夫である。実際Linuxなどをいくつか動かしてみたが(Photo03)、全く問題なく動作した。クロス環境での開発とか、あるいはWindows系とオープンソース系の両方をターゲットとするような開発にも十分使える。

 また、β版の評価にも大変便利だ。βというからには当然完成度が製品ほど高いわけもなく、むしろ問題の洗い出しが主目的であるからトラブルが出て当然なのだが、従って開発環境とは分離して環境を作らねばならない。こうしたケースでもVirtual PC 2004は活躍する。仮に問題があってクラッシュを引き起こしても、それはあくまで仮想マシンの中の話であって、開発マシン全体がクラッシュするわけではない。実際、Virtual PC 2004の中でWindows VistaのBeta2すらも動作するほどだ(Photo04)。さすがにAEROまでは動作しないものの、プログラムの動作検証にはとりあえず差し支えないレベルで動作しており、Virtual PC 2004の高い互換性を物語っている。

Virtual PC 2004のメリットその2:複数マシンの仮想的構築  
 
Photo05:2つの仮想マシン上でWindows XP Professional Editionを動かして、pingの対向テストを行っている例。

 例えばクライアントサーバモデルのアプリケーション構築の際に、様々な理由でマシンを分けないと上手くテストができないケースがある。もちろんパフォーマンスの確認とか、ネットワークトラフィックの確認といった作業では、これは物理的にマシンを分けざるを得ないが、開発中やデバッグなどでは、同一マシン上にサーバーとクライアントを置くことで、開発をスムーズに進行させることが可能だ(Photo05)。Virtual PC 2004を使わずにサーバとクライアントを同一マシンで動かす場合、どうしてもIPアドレスに127.0.0.1を指定することになるが、これだと振る舞いが変わってしまう場合がある。また、サーバーとクライアントでOSが別といった場合には、これまでだとマシンを分けざるを得なかった。こうしたケースで、Virtual PC 2004が高い威力を発揮することがおわかりいただけよう。

 これをちょっと応用すると、負荷テストで1台のサーバーに複数のクライアントがアクセスするようなシミュレーションをVirtual PC 2004を使うことで効果的に実現できる。サーバーに負荷をかけるため、クライアントを何十台も並べるのはそれだけでも手間が掛かる。ところがクライアントにVirtual PC 2004をインストールし、この上で仮想マシンを複数台稼動させれば、用意すべきクライアントの台数を大幅に減らすことが可能になる。もちろん、クライアント側に高い処理能力を必要とするケースでは、この案はうまくいかないだろうが、ある種のベンチマークや結合テストなどのシーンでは簡単にクライアントの負荷を調整できるから効果的であろう。

Virtual PC 2004のメリットその3:簡単な環境作成  
 
Photo06:こんな風にバーチャルマシンのメニューから随時マウントが可能だし、設定メニューで選ぶことも可能。

 Virtual PC 2004のメリットは、インストール時にも発揮される。通常、OSのインストールといえばCD-ROMなりDVD-ROMを使ってのインストールであるが、Virtual PC 2004を使うとisoイメージをそのまま仮想CD-ROMとしてマウント可能である(Photo06)。MSDN(Microsoft Developer Network)のサブスクリプション会員(*1)ならば、WindowsのインストールCD-ROMのisoイメージを入手できるし、Linuxを初めとする多くのOSがisoイメージで配布されているから、これは大変に都合がよい。まずCD-Rなどにisoイメージを焼く必要がないし、HDD上のisoイメージの読み込みは、CD-ROMドライブなどから読み込むよりも遥かに高速であるから、OSのインストール時間自体も短い。またWindows XP以前のOSでは大容量HDDのフォーマットにかなりの時間を要していたが、Virtual PC 2004が提供するVirtual HDDではこの処理も迅速に終了する。

 また、複数台の仮想マシンを同じOSで動かしたい、なんていう場合はちょっとした裏技もある。

 (1) まず普通に1台、OSをインストールする。
 (2) インストールが終ったら、一旦仮想マシンを終了する。
 (3) インストールが終った仮想マシンのVirtual HDD(.vhdファイル)を別の名前でコピーする
 (4) コピーしたVirtual HDDを指定して別の仮想マシンを作る
 (5) 別の仮想マシンを立ち上げる。

以上で、同じOSで動く別のマシンができ上がりである。ただこのままだと同じマシン名になるので、立ち上げたらまずマシン名の変更が必要になるが、それでも大した手間ではない。多くの仮想マシンで同じOSを動かしたい、なんていう場合にはぜひ覚えておきたい方法である。

(*1) Visual Studio 2005 with MSDN Subscription会員、及びMSDN Operating System Subscription会員が可能となっている。詳しくはhttp://www.microsoft.com/japan/msdn/howtobuy/vs2005/subscriptions/を参照。

Virtual PC 2004:開発者には欠かせないツール  

 無駄にPCの台数を増やすことなく、柔軟に環境を構築できるVirtual PC 2004は、開発の現場やサポートの窓口では欠かせないツールと言ってよい。もちろんソフトウェアエミュレーションだから、性能そのものは単独のPCには劣るのは仕方がないし、エミュレーションするハードウェアが最新のものとは言えないから、例えばVirtual PC 2004でバリバリの3Dゲームのテストやデバッグをしようというのはちょっと無理である。また、Virtual PC 2004は高い完成度を誇るものの、完璧に同じ振る舞いをするとまでは保証しきれない。なので、例えばVirtual PC 2004の上で動くOSに何かトラブルがあったからといって、そのOSのサポート窓口にクレームをつけるのは筋違いである。特に古いOSの場合、Virtual PC 2004上の動作は考慮していないからだ。このあたりを踏まえた上で、上手く用途を選んで使うのが正しい付き合い方と言える。

 Virtual PCを気持ちよく使用するコツは、潤沢なメモリである。これはVirtual PCで構築した仮想PCが動作するために、それぞれかなりのメモリを必要とするからだ。256MBを必要とするOSを2つ動かすためには、「メモリの空き」が512MBないといけない。この場合、もともとのホストOSの分まであわせると、768MB〜1GB程度のメモリが現実問題として必要になる。「仮想記憶は何のためにあるのだ?」という向きもあろうが、仮に仮想マシンの使うメモリがスワップアウトされてしまったりすると、動きが極端に遅くなって実用に耐えないからだ。従って大量に仮想マシンを動かしたい場合、とにかく目一杯メモリを搭載することをお勧めする。

関連情報  

マイクロソフト
http://www.microsoft.com/japan/

Microsoft Virtual PC 2004 製品情報
http://www.microsoft.com/japan/windows/virtualpc/default.mspx

 

関連記事  

マイクロソフト、仮想PCソフト「Virtual PC 2004」(PC Watch)
http://pc.watch.impress.co.jp/docs/2004/0419/ms.htm

マイクロソフト、仮想マシン「Microsoft Virtual PC 2004」の体験版を公開(窓の杜)
http://www.forest.impress.co.jp/article/2004/04/20/virtualpc2004.html