本文介绍单根 I/O 虚拟化(SR-IOV)体系结构、其关键组件,以及 SR-IOV 如何实现高效的网络虚拟化以提高性能。
下图显示了 Windows Server 2012 中从 NDIS 6.30 开始的 SR-IOV 组件。
SR-IOV 接口由以下组件组成:
Hyper-V 可扩展交换机模块
可扩展交换机模块在 SR-IOV 网络适配器上配置 NIC 交换机,以提供与 Hyper-V 子分区的网络连接。
注释
Hyper-V 子分区称为虚拟机(VM)。
如果子分区连接到 PCI Express (PCIe) 虚拟函数 (VF),可扩展交换机模块不会参与 VM 与网络适配器之间的数据流量。 相反,数据流量直接在 VM 与附加的 VF 之间传递。
有关可扩展交换机的详细信息,请参阅 Hyper-V 可扩展交换机。
物理函数 (PF)
PF 是支持 SR-IOV 接口的网络适配器的 PCI Express (PCIe)函数。 PF 包括 PCIe 配置空间中的 SR-IOV 扩展功能。 此功能允许你设置和管理网络适配器的 SR-IOV 功能,例如启用虚拟化和公开 VF。
有关详细信息,请参阅 SR-IOV 物理函数(PF)。
PF 微型端口驱动程序
PF 微型端口驱动程序负责管理一个或多个 VF 使用的网络适配器上的资源。 因此,在为 VF 分配任何资源之前,PF 微型端口驱动程序将加载到管理作系统中。 释放为 VF 分配的所有资源后,PF 微型端口驱动程序将停止。
有关详细信息,请参阅 编写 SR-IOV PF 微型端口驱动程序。
虚拟函数 (VF)
VF 是支持 SR-IOV 接口的网络适配器上的轻型 PCIe 函数。 每个 VF 表示网络适配器的虚拟化实例,并具有自己的 PCI 配置空间。 每个 VF 还与 PF 和其他 VF 共享网络适配器上的一个或多个物理资源,例如外部网络端口。
有关详细信息,请参阅 SR-IoV 虚拟函数(VF)。
VF 微型端口驱动程序
VF 微型端口驱动程序安装在 VM 中以管理 VF。 VF 小型端口驱动程序执行的任何操作都不会影响同一网络适配器上的任何其他 VF 或 PF。
有关详细信息,请参阅 编写 SR-IOV VF 微型端口驱动程序。
网络接口卡 (NIC) 开关
NIC 交换机是网络适配器的硬件组件,支持 SR-IOV 接口。 NIC 交换机在适配器上的物理端口与内部虚拟端口(VPorts)之间转发网络流量。 每个 VPort 都连接到 PF 或 VF。
有关详细信息,请参阅 NIC 开关。
虚拟端口 (VPorts)
VPort 是一个数据对象,表示支持 SR-IOV 接口的网络适配器的 NIC 交换机上的内部端口。 与物理交换机上的端口类似,NIC 交换机上的 VPort 向/从端口连接到的 PF 或 VF 传递数据包。
有关详细信息,请参阅 NIC 开关。
物理端口
物理端口是支持 SR-IOV 接口的网络适配器的硬件组件。 物理端口将适配器连接到外部网络介质。