As organizations look to reduce branch office costs by replacing their physical appliances with virtual ones, they also have to confront the growing problem of resource sharing. Loading multiple virtual machines onto a single ESX server can be a good way to guarantee that none of the VMs perform at their best as they contend for I/O resources. With the introduction of vSphere 4.1, VMware addresses this issue by making significant improvements to how the hypervisor controls I/O storage and network access.
In vSphere 4.1, administrators set controls to manage storage and network I/O resources according to business policy. This isolates the flows from one another so that one flow should not dominate during congestion. It also allows vSphere to guarantee service levels when flows compete with one another. "This gives the IT admin the ability to set network QoS parameters of VMs from within the vSphere management interface," says Peter Kirkpatrick, CTO of Aprius, an I/O virtualization provider. "The resource manager would then take these QoS priorities into account when setting up and allocating vSwitches and may even make recommendations for the physical switches."
Each network flow can be described by limits and shares. Limits specify the maximum amount of bandwidth that can be consumed by a flow exiting the host. They are assigned for the entire team of flows associated with an application. Shares specify the relative importance of the flow on a given virtual NIC, or put more simply, they specify the minimum amount of bandwidth allocated to an individual flow.
Take an instance where an iSCSI and VM are competing for access to a 1 Gb/s link. The iSCSI is set with 100 shares and the VM traffic with 25 shares. The available bandwidth on the link is about 890 Mb/s. The iSCSI would receive about 710 Mb/s (100/125 * 890 Mb/s) and the VM would receive 180 Mb/s (20/125 * 890 Mb/s). None of these QoS settings are limited to a specific hypervisor. I/O sharing and limit policies are enforced across all virtual machines accessing a datastore, regardless of their host machine.
Similarly, vSphere administrators can ensure that the most important virtual machines get adequate I/O resources even in times of congestion. This way, for example, an organization can ensure that a virtualized online store receives preferred treatment even when a virtualized data mining application might be very active. More specifically, with 4.1, administrators can set shares for CPU and memory resources for each VM.