当一个 Hyper-V 子分区启动并且来宾操作系统正在运行时,虚拟化堆栈将启动网络虚拟服务客户端(NetVSC)。 NetVSC 公开虚拟机(VM)网络适配器,该适配器为在来宾操作系统中运行的协议堆栈提供微型端口驱动程序接口。
NetVSC 还与在 Hyper-V 父分区的管理作系统中运行的 Hyper-V 可扩展交换机通信。 可扩展交换机组件作为网络虚拟服务提供商(NetVSP)运行。 NetVSC 和 NetVSP 之间的接口提供了一个称为 综合数据路径的软件数据路径。
下图显示了 SR-IOV 网络适配器上合成数据路径的组件。
如果基础 SR-IOV 网络适配器为 PCI Express(PCIe)虚拟函数(VF)分配资源,则虚拟化堆栈会将 VF 附加到 Hyper-V 子分区。 附加后,子分区中的数据包流量将通过硬件优化的 VF 数据路径而不是合成的数据路径发生。 有关 VF 数据路径的详细信息,请参阅 SR-IOV 数据路径。
如果满足以下条件之一,虚拟化堆栈仍可能为 Hyper-V 子分区启用综合数据路径:
SR-IOV 网络适配器没有足够的 VF 资源来容纳已启动的所有 Hyper-V 子分区。 在网络适配器上的所有 VF 都附加到子分区后,其余分区将使用合成数据路径。
从 VF 数据路径故障转移到合成数据路径的过程称为 VF 故障转移。
VF 已附加到 Hyper-V 子分区,但现已分离。 例如,虚拟化堆栈可以将 VF 与一个子分区分离,并将其附加到另一个子分区。 当运行 Hyper-V 子分区比基础 SR-IOV 网络适配器上的 VF 资源更多时,可能会出现这种情况。
Hyper-V 子分区正在实时迁移到其他主机。
尽管 SR-IOV 网络适配器上的合成数据路径不如 VF 数据路径高效,但仍然可以进行硬件优化。 例如,如果配置并附加了一个或多个虚拟端口(VPorts)到PCIe物理功能(PF),则数据路径可以提供类似于虚拟机队列(VMQ)接口的卸载功能。 有关详细信息,请参阅 非默认虚拟端口和 VMQ。