SR-IOV VF データ パス
物理ネットワーク アダプターがシングル ルート I/O 仮想化 (SR-IOV) インターフェイスをサポートしている場合は、1 つ以上の PCI Express (PCIe) 仮想関数 (VFs) を有効にすることができます。 各 VF は、Hyper-V 子パーティションに接続できます。 この場合、仮想化スタックは次の手順を実行します。
VF のリソースが割り当てられると、仮想化スタックは、ゲスト オペレーティング システムの VF のネットワーク アダプターを公開します。 これにより、ゲスト オペレーティング システムで実行されている PCI ドライバーが VF ミニポート ドライバーを起動します。 このドライバーは、SR-IOV ネットワーク アダプターの独立したハードウェア ベンダー (IHV) によって提供されます。
注: VF を Hyper-V 子パーティションに接続する前に、PCIe 物理機能 (PF) のミニポート ドライバーによって VF のリソースを割り当てる必要があります。 VF リソースには、NIC スイッチの仮想ポート (VPort) を VF に割り当てることが含まれます。 詳細については 「SR-IOV 仮想関数」 を参照してください。
VF ミニポート ドライバーが読み込まれて初期化された後、NDIS は、ゲスト オペレーティング システムのネットワーク仮想サービス クライアント (NetVSC) のプロトコル エッジをドライバーにバインドします。
注: NetVSC は VF ミニポート ドライバーにのみバインドされます。 ゲスト オペレーティング システム内の他のプロトコル スタックは、VF ミニポート ドライバーにバインドできません。
NetVSC がドライバーに正常にバインドされると、VF データ パスを介してゲスト オペレーティング システムのネットワーク トラフィックが発生します。 パケットは、ソフトウェア ベースの合成データ パスではなく、ネットワーク アダプターの基になる VF 経由で送受信されます。 合成データ パスの詳細については、「SR-IOV 合成データ パス」を参照してください。
次の図は、SR-IOV ネットワーク アダプター上の VF データ パスのコンポーネントを示しています。
VF データ パスを使用すると、次の利点があります。
すべてのデータ パケットは、ゲスト オペレーティング システムのネットワーク コンポーネントと VF の間を直接流れます。 これにより、Hyper-V の子パーティションと親パーティションの間でデータ パケットが流れる合成データ パスのオーバーヘッドが解消されます。
合成データ パスの詳細については、「SR-IOV 合成データ パス」を参照してください。
VF データ パスは、Hyper-V 子パーティションからのパケット トラフィックにおける管理オペレーティング システムによる関与をバイパスします。 VF は、接続先の子パーティションの独立したメモリ領域、割り込み、DMA ストリームを提供します。 これにより、仮想化されていない環境とほとんど互換性のあるネットワーク パフォーマンスが実現されます。
VF データ パス経由のパケットのルーティングは、SR-IOV ネットワーク アダプターの NIC スイッチによって実行されます。 パケットは、アダプターの物理ポートを介して外部ネットワーク経由で送受信されます。 パケットは、VF が接続されている他の子パーティション間でも転送されます。
注: VF が接続されていない子パーティション間のパケットは、NIC スイッチによって Hyper-V 拡張可能スイッチ モジュールに転送されます。 このモジュールは Hyper-V 親パーティションで実行され、合成データ パスを使用してこれらのパケットを子パーティションに配信します。