- Silicon Valley's 19 Coolest Places to Work
- Is Windows 8 Development Worth the Trouble?
- 8 Books Every IT Leader Should Read This Year
- 10 Hot Hadoop Startups to Watch
Network World - This vendor-written tech primer has been edited by Network World to eliminate product promotion, but readers should note it will likely favor the submitter's approach.
Server virtualization is being deployed on an almost universal basis to reduce costs and fully utilize data center resources. With the progression to powerful multi-core servers, greater memory capacities and higher bandwidth network pipes, it has become necessary to rethink I/O optimization.
The result is several network technologies, including Single Root I/O Virtualization (SR-IOV). SR-IOV is a PCI-SIG standard that allows a PCI Express (PCIe) I/O device to appear as multiple physical and virtual devices.
Conventional virtual server hypervisors provide virtual machines (VMs) with a set of resources that emulate the functionality of a physical server, allowing each VM to run independently. For I/O, that means each VM uses a virtual I/O device that is presented by the hypervisor. Although this works well for virtualization, it's usually not efficient. This is especially true for received I/O.
With multi-core servers the hypervisor performs the following steps to process received I/O:
• One of the CPU cores is interrupted to inspect the packet and determine which VM should receive it.
• The core that's servicing the VM is interrupted and processes the I/O.
• The core that initially received the packet returns to its normal workload.
Each of these steps slows down I/O and uses significant CPU resources. SR-IOV streamlines this process by introducing the concept of physical and virtual functions:
• Physical function (PF) -- There is at least one PF for each physical port on an adapter. In some cases, adapters can be partitioned into as many as four ports per physical port. In this example, there could be four PFs per port, or a total of 8 PFs for an adapter with two physical ports. The key differentiation is PFs have full configuration capabilities. They are associated with the hypervisor and can be managed like physical devices.
• Virtual function (VF) -- VFs are associated with VMs and are limited to processing I/O streams, basically moving data. They don't support management of the physical device. The number of supported VFs will vary and will likely center around 64 VFs per physical adapter.
Although the SR-IOV standard applies to network and storage I/O, the current and expected implementations are for networking only. Performance concerns for virtual servers are focused on Ethernet traffic that typically creates the largest I/O demand and uses the largest amount of server resources. Storage I/O uses far less overhead and usually achieves full line speed.
One of the conventional solutions to improve VM performance is direct I/O (or pass-through), which requires an assignment of a unique physical port to each VM, bypassing the hypervisor. This method improves performance, but is limited by the number of physical ports that can be attached to the server.