vSphere SR-IOV 支持依赖于网卡端口虚拟功能 (VF) 和物理功能 (PF) 之间的交互以提高性能,依赖于 PF 驱动程序和主机交换机之间的交互以实现流量控制。

在主机中,如果在 SR-IOV 物理适配器上运行虚拟机流量,则虚拟机适配器将直接联系虚拟功能以传递数据。但是,能否配置网络基于虚拟机所在端口的活动策略。

在没有 SR-IOV 的 ESXi 主机上,虚拟交换机通过主机上的相应端口发送流出或流入相关端口组的物理适配器的外部网络流量。此外,虚拟交换机也会将网络策略应用于受管数据包。

图 1. vSphere SR-IOV 支持中的数据路径和配置路径

在 vSphere 中,SR-IOV 支持的数据路径和控制路径涉及不同的组件。

数据路径直接将虚拟机与网卡上的虚拟功能连接。控制路径包括虚拟交换机和虚拟机上的活动策略。

SR-IOV 中的数据路径

将虚拟机网络适配器分配给某一虚拟功能后,客户机操作系统中的 VF 驱动程序会使用 I/O 内存管理单元 (IOMMU) 技术访问必须通过网络才能接收和发送数据的虚拟功能。VMkernel(尤其是虚拟交换机)不会处理数据流,这缩短了已启用 SR-IOV 的工作负载的整体延迟时间。

SR-IOV 中的配置路径

当客户机操作系统尝试更改映射到 VF 的虚拟机适配器的配置时,如果与此虚拟机适配器关联的端口上的策略允许此更改,则将执行更改。

配置工作流程包括以下操作:

  1. 客户机操作系统请求更改 VF 的配置。
  2. VF 通过邮箱机制将该请求转发至 PF。
  3. PF 驱动程序向虚拟交换机(标准交换机或 Distributed Switch 的主机代理交换机)确认配置请求。
  4. 虚拟交换机根据与已启用 VF 的虚拟机适配器关联的端口上的策略验证配置请求。
  5. 如果新的设置符合虚拟机适配器的端口策略,则 PF 驱动程序将配置 VF。

    例如,当 VF 驱动程序尝试修改 MAC 地址时,如果端口组或端口的安全策略不允许更改 MAC 地址,则该地址将保持不变。客户机操作系统可能会显示更改已成功完成,但日志消息将表明此操作失败。因此,客户机操作系统和虚拟设备保存的 MAC 地址不同。客户机操作系统中的网络接口可能无法获取 IP 地址并进行通信。在这种情况下,必须重置客户机操作系统中的接口,以从虚拟设备获得最新的 MAC 地址并获取 IP 地址。