子パーティション:ハイパーバイザー対応のゲスト

 本連載第1回 図1の2番目のパーティションは、子パーティションで実行されるハイパーバイザー対応型のゲストOSを示している。子パーティションは「仮想マシン」と言い換えることができる。

 ハイパーバイザー対応型のゲストとは、Hyper-Vのハイパーバイザー上で実行されていることを、ゲストOS自身が認識できるOSのことであり、ゲストOSに組み込まれた、Hyper-Vに最適化された仮想マシンインターフェイスが使用される。このタイプのゲストOSでは、基本的にデバイスのエミュレーションは不要だ。Windows Server 2008以降およびWindows Vista SP1以降は、ハイパーバイザー対応型のゲストOSであり、プロセッサに対してハイパーバイザーコールを使用して直接命令を出すことができる。

 その他のWindowsのバージョン、たとえば、Windows Server 2003 R2以前なども、ハイパーバイザー対応型のゲストとして分類される。ただし、部分的にである。このタイプのOSは、ハイパーバイザーを認識しないが、デバイスのI/Oについて、完全なハイパーバイザー対応型のゲストと同じ仕組みが提供される。また、プロセッサが備えるハードウェア仮想化支援機能により、ハイパーバイザーを認識しなくても、高速なプロセッサ処理が可能だ。

 ハイパーバイザー対応型のゲストOSにおいて、カーネルモードで実行されるのがVSC(Virtual Service Client:仮想サービスクライアント)である。VSCは、親パーティションのVSPに対応する「クライアント」コンポーネントであり、VSCとVSPのペアはデバイスの種類ごとに1つずつ存在する。VSCは、ポイントツーポイントのパーティション間バスである仮想マシンバスを通じて要求をVSPに送信し、ホストOSのデバイスドライバーやファイルシステムを通して、物理デバイスにアクセスしたり、仮想ストレージに書き込みを行う(図3)。デバイスのエミュレーションとは異なり、ドライバー処理が二重に介在することがないため、高速なI/Oが可能だ。VSP/VSCアーキテクチャーに対応したデバイスのことを、「統合デバイス(Synthetic Device)」と呼ぶこともある。

図3●仮想マシンバスは、ホストOSとゲストOSの両方に存在し、ホストOSのVSPとゲストOSのVSC間の通信バスとなる。画面奥はホストOSの、画面手前は仮想マシンのゲストOSのデバイスマネージャーである
図3●仮想マシンバスは、ホストOSとゲストOSの両方に存在し、ホストOSのVSPとゲストOSのVSC間の通信バスとなる。画面奥はホストOSの、画面手前は仮想マシンのゲストOSのデバイスマネージャーである
[画像のクリックで拡大表示]

 ハイパーバイザー対応型のWindowsゲストに対しては、ネットワーク、ビデオ、入力デバイス、ストレージ(SCSIおよびブートデバイス用のIDEフィルター)の各デバイスに対応したVSCとVSPのペアが提供される。ゲストOSでは、「統合サービス」と呼ばれるゲストコンポーネントをインストールすることで、VSCを利用できるようになる。WindowsServer 2008 R2および Windows 7には、最新の統合サービスが標準で組み込まれており、仮想マシンにインストールした直後からVSCを利用可能だ。それ以外のWindowsについては、エミュレーション環境で統合サービスをインストールすることで、ハイパーバイザー対応型のゲストOSとして動作するようになる。なお、Windows Server 2008にも統合サービスが標準で組み込まれているが、これはHyper-V1.0、それもプレリリース版のものであるため、仮想マシン接続ウィンドウの[操作]メニューから[統合サービスセットアップディスクの挿入]を実行して、最新の統合サービスにアップグレードする必要がある。