Tuesday, April 10, 2012

Storage I/O Control (SOIC)

Storage I/O Control (SIOC) is a new feature introduced in vSphere 4.1 to provide I/O prioritization of virtual machines running on a cluster of ESX servers that access a shared storage pool. It extends the familiar constructs of shares and limits, which have existed for CPU and memory, to address storage utilization through a dynamic allocation of I/O queue slots across a cluster of ESX servers. When a certain latency threshold is exceeded for a given block-based storage device, SIOC will balance the available queue slots across a collection of ESX servers to align the importance of certain workloads with the distribution of available throughput. It can reduce the I/O queue slots given to virtual machines that have a low number of shares in the interest of providing more I/O queue slots to a virtual machine with a higher number of shares.

SIOC provides a means of throttling back I/O activity for certain virtual machines in the interest of other virtual machines getting a more fair distribution of I/O throughput and an improved service level. In Figure 1 the two business-critical virtual machines (online store and MS Exchange) are provided more I/O slots than the less important (data mining) virtual machine.

For SIOC to engage in optimizing I/O to a given datastore there are two things that must be present.
1. The datastore must have this feature enabled. This is done by changing a property setting of that datastore.
2. There must be a sustained average latency detected across the hosts (ESX servers) that share that datastore. The default threshold is 30ms and can be modified through the advanced setting options for the datastore properties.

Once both of those conditions are met, SIOC engages in proactively managing the I/O queues across all ESX servers that share the datastore. It evaluates the percentage of I/O shares each virtual machine has relative to the total number of shares of all virtual machines accessing the datastore and will assign a relative number of I/O queue slots to ensure that high-priority virtual machines get more throughput and less latency than the lower-priority virtual machines. SIOC will throttle back the I/O slots on one ESX server in which a low-priority virtual machine might be the only workload running, to free up I/O queues on another server that might have several virtual machines running.

SIOC provides a dynamic allocation mechanism that adjusts to changing conditions of a mixed workload. It leverages the I/O shares, which are set on the Virtual Machine Properties for each virtual disk, to distribute available I/O slots to ensure a quality of service is enforced not just at the host level, but across the collection of hosts that are sharing that datastore. This feature provides a new means for the vSphere administrator to achieve higher levels of consolidation with the confidence that shared resource pools will not result in low-priority workloads limiting the performance of higher-priority workloads. SIOC also benefits your virtual environment by providing I/O distribution fairness even when all virtual machines running on a cluster of ESX servers sharing a datastore have equal or default I/O shares.

SIOC works only with block-based datastores and datastores that reside on a single extent and are managed by one vCenter management server. (vSphere 5 supports NFS now)

No comments:

Post a Comment