Hyper-V の概要

Hyper-V は、x64 バージョンの Windows Server 2008 以降のバージョンの Windows Server 用のハイパーバイザー ベースの仮想化テクノロジです。 ハイパーバイザーは、複数の分離されたオペレーティング システムが 1 つのハードウェア プラットフォームを共有できるようにする、プロセッサ固有の仮想化プラットフォームです。

Hyper-V では、個別のパーティションを使用した分離がサポートされています。 パーティションは、オペレーティング システムが実行されるハイパーバイザーによってサポートされる分離の論理単位です。 仮想化スタックは、Hyper-V 親パーティションの管理オペレーティング システムで実行され、ハードウェア デバイスに直接アクセスできます。 その後、管理オペレーティング システムによって Hyper-V 子パーティションが作成され、その中でゲスト オペレーティング システムが起動されます。

パーティションは物理プロセッサにアクセスすることも、プロセッサの割り込みを処理することもありません。 代わりに、プロセッサの仮想ビューがあり、各ゲスト パーティションにプライベートな仮想メモリ アドレス領域で実行されます。 ハイパーバイザーは割り込みをプロセッサに処理し、それぞれのパーティションにリダイレクトします。 Hyper-V は、プロセッサによって使用されるメモリ管理ハードウェアとは別に動作する I/O メモリ管理ユニット (IOMMU) を使用して、さまざまなゲスト仮想アドレス空間間のアドレス変換を高速化することもできます。 IOMMU は、物理メモリ アドレスを子パーティションで使用されるアドレスに再マップするために使用されます。

また、子パーティションは、他のハードウェア リソースに直接アクセスすることはできません。 代わりに、子パーティションには、仮想デバイスと呼ばれるリソースの仮想ビューが表示されます。 仮想デバイスへの要求は、仮想マシン バス (VMBus) またはハイパーバイザーを介して、デバイス要求を処理する親パーティション内の管理オペレーティング システムにリダイレクトされます。 VMBus は論理パーティション間通信チャネルであり、親パーティションと子パーティション間の通信用に個別のチャネルが割り当てられます。

管理オペレーティング システムは、子パーティションからのデバイス アクセス要求を処理するために、VMBus 経由で通信する仮想サービス プロバイダー (VSP) をホストします。 子パーティション上のゲスト オペレーティング システムは、VMBus を使用してデバイス要求を管理オペレーティング システムの VSP にリダイレクトする仮想サービス クライアント (VSC) をホストします。

子パーティションへのネットワーク アクセスの場合、ネットワーク VSC (NetVSC) はゲスト オペレーティング システムで実行されます。 ネットワーク要求とパケットは、管理オペレーティング システムで実行される各 NetVSC とネットワーク VSP の間で送信されます。 NetVSC は、ホスト コンピューター上の物理ネットワーク アダプターの仮想化ビューも公開します。 この仮想化されたネットワーク アダプターは、「合成ネットワーク アダプター」と呼ばれます。

注: Hyper-V では、エミュレートされたネットワーク アダプターと呼ばれる、効率の低いもう 1 つの仮想化ネットワーク アダプターもサポートされます。 エミュレートされたネットワーク アダプターは Intel ネットワーク アダプターを模倣し、ハードウェア エミュレーションを使用して NetVSP との間でパケットを転送します。

次の図は、合成ネットワーク アダプター経由の Hyper-V のネットワーク データ パスを示しています。

Diagram that shows synthetic networking device data paths in Hyper-V.

これらのデータ パスは、仮想マシン キュー (VMQ)、シングル ルート I/O 仮想化 (SR-IOV)、Hyper-V 拡張可能スイッチ インターフェイスなどの NDIS 仮想化ネットワーク インターフェイスを使用して拡張されます。 たとえば、SR-IOV インターフェイスをサポートする物理ネットワーク アダプターの仮想関数 (VF) に接続するように NetVSC を構成できます。 この場合、NetVSC は、VMBus 経由ではなく基になる物理アダプター経由でパケットを直接送受信します。

Hyper-V の詳細については、「Hyper-V」を参照してください。