Posted by Scott Knowlton on December 16th, 2012
Virtualization technology essentially componentizes a computer system into the following:
- Physical System: The computer hardware, e.g. processors, disk drives, memory, etc.
- Virtualization Intermediary (VI): The VI abstracts the details of the physical resources, isolates them and then maps them into virtual resources, while managing their allocation in the system. Since the VI is creating and managing the virtual resources, it can create multiple virtual resources for each of the physical resources, while providing isolation between them.
- Virtual System: The set of virtual resources required to run a system image is referred to as a Virtual System.
- System Image (SI): The software component consisting of the operating system and applications that are assigned to run on a specific virtual resource. The system image only needs to know the details of the Virtual System they are assigned to.
PCI Express with Single Root I/O Virtualization (SR-IOV) enables some of the virtualization to be done in hardware for the I/O devices instead of software, thereby streamlining the Virtualization Intermediary. Of course, hardware runs faster than software for the same function, so PCI Express with SR-IOV helps improve the overall system performance of a virtualized system.
To understand the benefits of PCI Express with SR-IOV, you can watch SolarFlare’s demo that was videotaped in the Synopsys booth at the Intel Developer’s Forum (IDF) conference in 2011 (shown below). The demo utilizes two servers running Citrix XenServer 6 to showcase the 3x in performance achieved when utilizing PCI Express 2.0 with SR-IOV virtualization technology. By incorporating DesignWare PCIe IP with SR-IOV, SolarFlare’s Dual Port SFP+ 10GbE Server Adapters were able to support hundreds of virtual PCIe functions and thousands of virtual NICs, thus reducing total hardware costs and power consumption, while increasing performance.
It’s tough to explain such complex technology in a blog posting, but in a nutshell, PCI Express with SR-IOV enables virtualization of a single physical I/O device to masquerade as multiple virtualized I/O devices, one for each virtual machine and with complete independence from each other. You can learn more about how virtualization benefits PCI Express by reading this whitepaper: