仮想化技術 Hyper-Vを製品テストで利用する

サーバーの統合や動的データセンターの実現などITインフラとしての活用が期待される仮想化技術 Hyper-Vですが、テストや開発への応用もコアシナリオとして想定されていることをご存知でしょうか?

Visual Studio開発チームでも先日リリースされたRTM版をテストチームで活用する試みを進めています。

Hyper-VはWindows Server 2008 に付属するハイパーバイザーベースの仮想化技術で、OSより下位のレベルで稼働するハイパーバイザーの調停により1台の物理マシン上で複数のOSを並列に走らせることができます。Virtual PCなどの非ハイパーバイザーベースの技術ではゲストOSはホストOS上のアプリケーションとして稼働しますが、Hyper-VではゲストOSとホストOSはそれぞれ独立したOSとして並列に稼働します。高度な仮想化によりVirtual PCでは実現できなかった64bit ゲストOS(32bitとの混在を含む)やマルチCPUの割り当てが可能になっており、テスト環境としての信頼性も大きく向上しています。

Hyper-Vを導入するためにの基本要件は次のとおりです。

ソフトウェア要件:

  • Windows Server 2008 RTM (製品版)Standard, Enterprise, Datacenter の x64 版

Windows Server 2008 RTM x64版にはBetaバージョンのHyper-Vが付属していますので、以下の更新プログラムを適用してRTM版に更新する必要があります。

 

ハードウェア要件:

  • x64ベースのプロセッサ(Intel EM64T, AMD64)
  • ハードウェアによる仮想化 (Intel VT, AMD-V)
  • データ実行防止(DEP)

近年ではデスクトップ用のメインストリーム向けCPUでもこれらの要件を満たす製品が安価に入手できますで、さほどハードルは高くないと思います。ライセンス等、その他の要件とHyper-Vの製品情報はこちらをご確認ください。

さて、テストや開発に応用するには次のような機能を活用することが考えられます。

仮想ハードディスク

VirtualPCと同様にHyper-VではホストOSからみると単一のファイル(.vhd)として扱える仮想ハードディスクを採用しています。様々なOSのインストールイメージをvhdファイルとして保存し、必要に応じて切り替えることができます。これは開発中のアプリケーションが多くのOSに対応する必要がある場合に便利です。単一のHyper-Vサーバー内で切り替えることも、複数のHyper-Vサーバー間でvhdファイルを移動することも可能です。

スナップショット

稼働中のゲストOSの任意の時点の実行状態をスナップショットとして保存できます。これはハードディスクだけでなくメモリおよび実行コンテキストも同時に保存されるため、後からスナップショット取得時の実行環境に戻ることができます。たとえばテスト中にバグを発見した場合に、バグの再現環境を丸ごと保存してからにテストを続行できます。すべてのテストが終了したあとでバグの再現環境に戻ってじっくり調査を行うことが可能になります。

また、製品のインストールテストのようなシナリオではOSのクリーンインストールイメージをスナップショットとして保存しておけば、システムを常にクリーンな状態に戻してからインストールの様々なオプションをテストすることができます。スナップショットは非常に高速に動作するので驚かれるかもしれません。OSをクリーンに戻すのにかかる時間は私の環境では10秒程度です!(もちろんハードウエアやOSイメージの内容によって時間は変わります)

仮想ネットワーク

仮想ネットワークには外部・内部・プライベートのオプションがあり、それぞれ外部ネットワークへの接続、ホストOSとゲストOSからなるネットワーク、ゲストOSのみのネットワークを構築できます。

サーバー・クライアント アプリケーションのシナリオではサーバーマシン、クライアントマシン、プロトコル解析用のマシンなどを1台のHyper-V内に構築したプライベートネットワーク上に配置し、テストやデバッグに活用することが考えられます。

最後にいくつかの制約もお伝えしておきます。

物理メモリ

同時に稼働するすべてのOSのメモリの合計はシステムの物理メモリの容量を超えることはできません。多くのOSを同時稼働させるには、より多くの物理メモリを搭載する必要があります。

CPUの数

各OSには物理的に搭載するCPUコアの数のCPUをアサインすることができますが、物理コア数を超えることはできません。たとえばゲストOSで4CPU環境を実現するには物理的に4CPUを搭載する必要があります。

OSのサポートレベル

Hyper-V の RTM 版でサポートされるゲストOSはWindows XP、Vista、Windows Server、一部のLinux Distributionが挙げられます。これらの情報は今後変更される可能性がありますので、こちらをご確認ください。

ここでサポートされているOSにはHyper-Vの性能を最大限に引き出す統合サービスドライバが提供されます。その他のOSもHyper-V 上で動作する可能性もありますが、サポートは提供されません。

実マシンとの違い

高度に仮想化されているHyper-Vですが、やはり実際のマシンとは違うことを意識しなければなりません。パフォーマンス、I/Oデバイス(ビデオ、ネットワーク、ディスクなど)のデバイス依存テストなどのシナリオは実際のマシンで行うべきでしょう。