I/O virtualization (input/output virtualization or IOV) is the abstraction of upper layer protocols from physical connections or physical transport.
Virtualization and blade server technologies have enabled a generation of consolidated computing devices capable of cramming extraordinary computing power into smaller form factors. But the increased processing power per square inch has brought about a new input/output (I/O) problem: The pipes can't move data fast enough to keep up with today's processors. To address that problem, new I/O virtualization products and standards are emerging to extend PCI Express (PCIe) pathways to separate I/O devices. This allows multiple physical servers and virtual machines (VMs) to share I/O resources.
The PCI Special Interest Group (PCI-SIG) has offered up two I/O virtualization specifications to help standardize I/O virtualization implementations, but vendors -- for the most part -- are developing products independent of the standards. The Single Root (SR-IOV) standard specifies how multiple guests on a single server with a single PCI Express (PCIe) controller or root can share I/O devices without requiring a hypervisor on the main data path. Multiple Root IOV (MR-IOV) extends the concept to allow multiple independent systems with separate PCIe roots to connect to I/O devices through a switch. Both SR-IOV and MR-IOV require specific support from I/O cards.
The general IOV approach that most current products take is to connect the local host servers into a top-of-rack unit that holds a variety of network, storage and graphics adapters that can act as a dynamic pool of I/O connectivity resources. The top-of-rack device acts as an I/O fabric for the servers in the rack -- and can communicate with other servers in the rack or can connect to end-of-row switches for more distant resources.