单根 I/O 虚拟化(SR-IOV)是 PCI Express(PCIe)规范的扩展,可提高虚拟化环境中的网络性能。 SR-IOV 允许设备(如网络适配器)在各种 PCIe 硬件功能之间单独访问其资源,从而在 Hyper-V 虚拟机中实现近本机网络性能。 这些函数包括以下类型:
PCIe 物理函数 (PF) 。 此函数是设备的主要特性,宣传设备的 SR-IOV 功能。 PF 与虚拟化环境中的 Hyper-V 父分区相关联。
一个或多个 PCIe 虚拟函数(VFs)。 每个 VF 都与设备的 PF 相关联。 VF 与设备上的 PF 和其他 VF 共享设备的一个或多个物理资源,例如内存和网络端口。 每个 VF 都与虚拟化环境中的 Hyper-V 子分区相关联。
为每个 PF 和 VF 分配一个唯一的 PCI Express 请求者 ID (RID),该 ID 允许 I/O 内存管理单元(IOMMU)区分不同的流量流,并在 PF 和 VF 之间应用内存和中断转换。 这允许将流量流直接传送到相应的父分区或子分区 Hyper-V。 因此,非特权数据流量从 PF 流向 VF,而不会影响其他 VF。
SR-IOV 使网络流量能够绕过 Hyper-V 虚拟化堆栈的软件交换机层。 由于 VF 分配给子分区,因此网络流量直接在 VF 和子分区之间流动。 因此,软件仿真层中的 I/O 开销会减少,并实现与非虚拟化环境中几乎相同的网络性能。
相关内容
SR-IOV 体系结构 - 了解物理函数和虚拟函数的交互方式。
SR-IOV 数据路径 - 了解网络流量如何流经 SR-IOV。