米国シアトルで開催されている「WinHEC(Windows Hardware Engineering Conference) 2006」で,次期サーバーOS「Windows Server Longhorn」(開発コード名)に実装される仮想化機能のアーキテクチャが明らかになった。既存の仮想マシン・ソフト「Virtual Server 2005 R2」を利用したときのようなホストOS-ゲストOSといった関係が,Windows Server Longhornではなくなる。ホストOSに相当するOSも,Windows Server Longhornでは仮想マシン上で動作することになる。
図1は,Windows Server Longhornに実装される仮想化機能の概念図である。AMD Virtualization(AMD-V)やIntel Virtualization Technology(VT)といった仮想化機能が実装されたCPU上で,「Windows Hypervisor」を動かし,その上の仮想マシンで各種OSを稼働させる。Windows Hypervisorはハードウエアを仮想化する仮想マシン。モニターである。
Windows Hypervisor上で動作するOSは,親(Parent)パーティションと子(Child)パーティションに分けられる(ハードディスクの「パーティション」とは無関係なので注意)。親パーティションはこれまでのホストOSに相当し,仮想マシン全体を管理する。仮想マシンの管理ツールとして,「System Center Virtual Machine Manager」(開発コード名「Carmine」)が提供される。子パーティションはこれまでのゲストOSに相当する。
より詳細なWindows Server Longhornが備える仮想化機能のアーキテクチャを示したのが図2である。ハードウエアの上で動作するWindows Hypervisorは,いわゆるOSの機能の外(下)にある。親パーティションと子パーティションのいずれも,カーネル・モード(x86のリング0)とユーザー・モード(同リング3)のそれぞれで動作するコンポーネントを備える。つまり,Windows Hypervisorはソフトウエアながら,リング0の下にある。これから推測できるのは,Windows HypervisorはIntel VTの「VMX root」モードで,親パーティションおよび子パーティションは「VMX non-root」モードで動作するだろうということだ。
一方,親パーティションと子パーティションは,「VMBus」で接続されている。これにより,子パーティションのハードウエア構成を動的に変更できるという。例えば,基調講演でデモがあったように,ネットワーク・インターフェース・カードを追加したり,メモリー容量を増加したりすることが,子パーティションで動作するOSをシャットダウンすることなく可能になる。Windows Server Longhornの子パーティションは最大8CPUまで対応し,子パーティションに割り当てるCPUの数も動的に変更可能である。
また,親パーティションのユーザー・モードでは「WMIプロバイダ」が動作する。Windows Server Longhornでの仮想環境の管理も,WMI(Windows Management Instrumentation)を利用する。