第7章 Windows 8の機能とソフトウェア - 後方互換性の維持に使えるか? 「クライアントHyper-V」 その1
Windows 7では、仮想化ソフトウェアであるWindows Virtual PC(バーチャルPC)と、Windows XP Service Pack 3のイメージファイルをセットにした「Windows XP Mode」を、同Professionalなどの上位エディションに無償提供していた。しかし、実用的なパフォーマンスに至っていないのは、実際に触れた読者が承知のとおりだが、Windows 8では、このWindows XP Modeは提供せず、「Hyper-V(ハイパー・ブイ)」という仮想化機能を提供することになった。
そもそもHyper-Vとは、ハイパーバイザ型の仮想化システムであり、一台のコンピューターで複数の仮想マシンを実現する機能である。サーバー向けOSであるWindows Server 2008用として提供され、最新のWindows Server 2008 R2ではパフォーマンスや機能拡張を行ったHyper-V 2.0を用意していた(Hyper-Vに対して、バージョン番号を割り当てていないが、ファーストバージョンと区別するために本稿では1.0、2.0……という番号で紹介している)。
もともとMicrosoftは、仮想化技術に関するリソースを持ち合わせおらず、2003年に買収した米Connectixの仮想化ソフトウェアであるVirtual PCを取得。そこから得た技術でクライアント型のMicrosoft Virtual PCを、仮想サーバーを構築するMicrosoft Virtual Serverを発売した。
ここからMicrosoftの仮想化ソフトウェアに対する歴史がスタートする。そしてWindows 8に搭載されたHyper-V 3.0は、同社の技術資料によると「クライアントHyper-V」と説明されている。これは文字どおりサーバーOSに搭載されたHyper-Vと機能差が生じているために付けられたものだが、詳しくは後述しよう。
まずは仮想化技術に関して簡単に解説する。Windows Virtual PCはホスト型と呼ばれる仕組みを用いているが、Hyper-Vはハイパーバイザ型として動作する。ハイパーバイザ型は物理的なハードウェアの上に、同名の仮想化レイヤーが作成され、その上で仮想マシンを実行。そのため、ホスト型のようにホストOSに割り当てるリソースが軽減されるので、仮想マシン(ゲストOS)のパフォーマンス向上が見込めるという利点を備えている(図528)。
この機能を使用するには64ビット環境が必須となり、プロセッサもIntel-Vに代表されるハードウェア仮想化支援機能が必要。Intel EPTやAMD RVIなどゲストマシンのページング処理を高速化するSLAT(Second Level Address Translation)をサポートするプロセッサが欠かせなくなっている。現在お使いのコンピューターがIntel Core iシリーズであれば問題ないが、数世代前のコンピューターをお使いの場合は買い換えなどが必要かもしれない(図529)
自身の環境がクライアントHyper-Vの動作環境を満たしているか確認するには、いくつかのポイントがある。一つ目がコントロールパネルなどから起動する「システム」。こちらの「システムの種類」を確認し、「64ビット~」と記載されていれば、64ビット版Windows 8を使用中ということになる。もう一つがプロセッサの機能確認。Sysinternalのツール「Coreinfo」をインストールし、「coreinfo -v」と実行してみよう。「VMX」「EPT」に「*」マークが付いていれば使用可能だ(図530~531)。
クライアントHyper-Vを有効にするには、コントロールパネルの「プログラムと機能」から起動する「Windowsの機能の有効化または無効化」から関連コンポーネントをインストールする必要がある。「Hyper-Vプラットフォーム」「Hyper-V管理ツール」にチェックを入れてコンポーネントの追加を行うと、コンピューターの再起動を経て使用可能になる。なお、「Hyper-V管理ツール」のみインストールする場合、再起動は不要だ。
スタート画面には、仮想マシンの設定やゲストOSを管理する「Hyper-Vマネージャー」と、他のコンピューターで稼働中のHyper-V上の仮想マシンに接続する「Hyper-V仮想マシン接続」という二つのタイルが加わった(図532~534)。