一、背景
SR-IOV(Single Root I/O Virtualization)是由PCI-SIG组织定义的PCIe规范的扩展规范《Single Root I/O Virtualization and Sharing Specification》,目的是通过提供一种标准规范,为VM(虚拟机)提供独立的内存空间、中断、DMA 数据流,当前最新版本为1.1。
IO虚拟化有软件模拟、基于virtio的半虚拟化和设备直通三种方式,见图1.1,其中设备直通实现了数据面加速,允许物理 PCIe设备可以直接访问虚拟机的GuestOS中运行相应驱动分配的物理地址(GPA)。
图1.1
SR-IOV的出现,支持了单个物理PCIe设备虚拟出多个虚拟PCIe设备,然后将虚拟PCIe设备直通到各虚拟机,以实现单个物理PCIe设备支撑多虚拟机的应用场景,如图1.2。