SR-IOV データ パスの概要
Hyper-V 子パーティションが開始され、ゲスト オペレーティング システムが実行されている場合、仮想化スタックはネットワーク仮想サービス クライアント (NetVSC) を起動します。 NetVSC は、ゲスト オペレーティング システムで実行されるプロトコル スタックにミニポート ドライバー エッジを提供することで、仮想マシン (VM) ネットワーク アダプターを公開します。 さらに、NetVSC には、基になるミニポート ドライバーにバインドできるプロトコル ドライバー エッジが用意されています。
NetVSC は、Hyper-V 親パーティションの管理オペレーティング システムで実行される Hyper-V 拡張可能スイッチとも通信します。 拡張可能スイッチ コンポーネントは、ネットワーク仮想サービス プロバイダー (NetVSP) として動作します。 NetVSC と NetVSP の間のインターフェイスは、合成データ パスと呼ばれるソフトウェア データ パスを提供します。 このデータ パスの詳細については、「合成データ パス SR-IOV」を参照してください。
物理ネットワーク アダプターが単一ルート I/O 仮想化 (SR-IOV) インターフェイスをサポートしている場合は、1 つ以上の PCI Express (PCIe) 仮想関数 (VFs) を有効にすることができます。 各 VF は、Hyper-V 子パーティションにアタッチできます。 この場合、仮想化スタックは次の手順を実行します。
仮想化スタックは、ゲスト オペレーティング システムの VF のネットワーク アダプターを公開します。 これにより、ゲスト オペレーティング システムで実行されている PCI ドライバーが VF ミニポート ドライバーを起動します。 このドライバーは、SR-IOV ネットワーク アダプターの独立したハードウェア ベンダー (IHV) によって提供されます。
VF ミニポート ドライバーが読み込まれて初期化された後、NDIS は、ゲスト オペレーティング システムの NetVSC のプロトコル エッジをドライバーにバインドします。
注 NetVSC は VF ミニポート ドライバーにのみバインドされます。 ゲスト オペレーティング システム内の他のプロトコル スタックは、VF ミニポート ドライバーにバインドできません。
NetVSC がドライバーに正常にバインドされると、ゲスト オペレーティング システムのネットワーク トラフィックは、VF データ パス経由で発生します。 パケットは、合成データ パスではなく、ネットワーク アダプターの基になる VF 経由で送受信されます。
VF データ パスの詳細については、「VF データ パス SR-IOV を参照してください。
次の図は、SR-IOV ネットワーク アダプターでサポートされているさまざまなデータ パスを示しています。
Hyper-V 子パーティションが開始され、VF データ パスが確立される前に、ネットワーク トラフィックは合成データ パスを経由します。 VF データ パスが確立された後、次の条件に該当する場合、ネットワーク トラフィックは合成データ パスに戻すことができます。
VF は Hyper-V 子パーティションから切り離されます。 たとえば、仮想化スタックでは、1 つの子パーティションから VF をデタッチし、別の子パーティションにアタッチできます。 これは、基になる SR-IOV ネットワーク アダプターに VF リソースよりも多くの Hyper-V 子パーティションが実行されている場合に発生する可能性があります。
VF データ パスから合成データ パスにフェールオーバーするプロセスは、VF フェールオーバー と呼ばれます。
Hyper-V 子パーティションは、別のホストにライブ マイグレーションされています。
VF フェールオーバーとライブ マイグレーションの詳細については、「SR-IOV VF フェールオーバーとライブ マイグレーション」を参照してください。