SR-IOV(Single Root I/O virtualization) is a technique that allow a PCIe devices to appear as a multiple isolated physical devices.
SR-IOV is the extension to PCIe specification which allows the devices such as network adapter to access separately the resources among various PCIe network function.
While using the operating system like Window Server 2012 with Microsoft Hyper-V virtualization, SR-IOV can be used for virtualization of throughput-sensitive applications and also can be used to reduce the network latency. For the organization that implements virtualization over their infrastructure, it is very crucial to reduce the I/O latency and minimize the processor utilization for various task carried out. This all goals can be achieved by using the SR-IOV introduced by the Peripheral Component Interconnect Special Interest Group (PCISIG).
SR-IOV can be used in virtualized environment with Microsoft Hyper-V hypervisor.
A specific standard called PCI-SIG SR-IOV that provide I/O resources to virtual machine which could possibly reduce latency. SR-IOV enabled PCI Express can allow up to 64 VM function per 10 Gigabit Ethernet(10GbE) port.
Intel support both SR-IOV standard and 10GbE server adapters. These adapter make make use of memory translation features from Intel® Virtualization Technology for direct I/O.
2 SR-IOV Overview
SR-IOV makes use of two functions. They are physical and virtual functions. Physical function(PF) are treated as full feature PCIe function and like other PCIe devices, it could be maintained, managed and manipulated. The VFs are "lightweight" functions that could not be configured, because that could possibly result in change of underlying PF. So the VFs can’t be treated as full-featured PCIe device. The hypervisor that is presently running on the hardware platform should support SR-IOV. the support for SR-IOV is also required in BIOS as well as in operating system.Physical functions (PFs) and virtual functions (VFs) are the two fundamental ideas based on which the SR-IOV works. PF are lightweight, PCIe function of network adapter that supports the single root I/O virtualization space. PF miniport driver loaded in management operating system are responsible for hardware and software support for VFs and managing the resources on network adapter that multiple VF make use of. Once the resources occupied by multiple VFs are freed, PF miniport driver is halted.
Unique Requester ID (RID) associated with each PCI Express are assigned to both PF and VF which allows the memory management unit (IOMMU) for classifying the traffic streams thus allowing the traffic streams to be delivered to relevant Hyper-V parent and child partition.and memory translation between PF or VFs.
3 Network Interface Card (NIC) Switch
NIC switch is a essential hardware component of network adapter for supporting SR-IOV interface which forwards the traffic physical port on adapter and virtual ports (VPorts) which are either attach to either the PF or a VF.
Vport is an internal port on NIC switch of SR-IOV enabled network adapter which delivers the packet from and from a PF or VF to which the port is attached.
The physical port is a component of SR-IOV supported network adapter that provide the interface on adapter to the external networking medium.
4 Virtualizing server with SR-IOV
They are assigned to VMs thus allowing direct I/O to be supported with one adapter port,switch port and cable for multiple VMs. We can assign multiple VFs to one VM and each user can access VF. The most common purpose of SR- The most common use of SR-IOV is to virtualize the server. While working with SR-IOV, VFs IOV is to allow the VF to be mapped in guest operating system address space. Thus allowing the guest OS to enjoy better I/O performance and reduced CPU utilization.