SR-IOV

The following are the mainstream network I/O virtualization technologies:

In October 2007, PCI-SIG released the PCI-SIG Single Root I/O Virtualization (SR-IOV) specification, which details how multiple VMs share a single I/O device.

SR-IOV provides the following functions:

Figure-1 SR-IOV mechanism

 

After SR-IOV is enabled in the PF, the PCI configuration space of each VF can be accessed by the PF's bus, device, and function number. Each VF has a PCI memory space for register set mapping. The VF device drivers operate on the register set to enable its functionality and the VF appears as an actual PCI device. After a VF is created, you can assign it directly to an I/O domain, which allows VFs to share physical devices and perform I/O without the CPU and hypervisor software overhead.

A physical NIC integrated with the SR-IOV functionality can be virtualized into multiple VFs, each of which has its own virtual PCIe channel. The virtual PCIe channels of the VFs share the PCIe channel of the physical NIC. A VM can use one or multiple VFs and directly access its own VFs without the intervention of the hypervisor, which greatly improves the network throughput performance.

As a new technology, SR-IOV still has imperfections: