SR-IOV 合成数据路径
启动 Hyper-V 子分区且来宾操作系统正在运行时,虚拟化堆栈将启动网络虚拟网络客户端 (NetVSC) 。 NetVSC 公开虚拟机 (VM) 网络适配器,该适配器为来宾操作系统中运行的协议堆栈提供微型端口驱动程序边缘。
NetVSC 还与 Hyper-V 父分区的管理操作系统中运行的 Hyper-V 可扩展交换机通信。 可扩展交换机组件作为网络虚拟服务提供商 (NetVSP) 运行。 NetVSC 和 NetVSP 之间的接口提供称为 合成数据路径的软件数据路径。
下图显示了 SR-IOV 网络适配器上的合成数据路径的组件。
如果基础 SR-IOV 网络适配器为 PCI Express (PCIe) Virtual Functions (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。