When managing and maintaining a VMware vSphere environment, keeping an eye on storage and storage I/O is extremely important. In most virtualization environments where shared SAN storage is in place, it is not uncommon to see storage I/O resources exhausted before CPU and in many cases memory. In many cases, a higher than expected number of I/O intensive VMs sharing the same datastore will become active at the same time requested I/O operations. This can lead to contention as those active VMs compete with each other as well as with VMs running low priority workloads. Having an automated mechanism especially in virtualized environments that keeps one virtual resource from overrunning a storage array and taking all the available I/O present is essential. Way back in vSphere 4.1 a feature called Storage I/O Control was introduced that provides this automated mechanism that dynamically allocates portions of the host’s I/O queues to VMs. However, it is a great feature that still, many do not utilize or even know about. Let’s take a look at how to Setup and Configure VMware vSphere 6.5 Storage I/O Control.
New Features of Storage I/O Control in vSphere 6.5
Storage I/O control has remained unchanged for a long while since its inception in vSphere 4.1. However, in vsphere 6.5 it has received an upgrade. It is now “policy driven”, implemented with the VAIO framework (vSphere APIs for IO). This makes the feature more powerful and tweakable, tailored to specific requirements of the environment.
When you enable Storage I/O Control (SIOC) on a datastore, the VMware ESXi host begins to monitor the device latency that is observed when communicating with the datastore where SIOC is enabled. When device latency is more than the configured threshold, vSphere views the datstore as congested and each VM that is accessing the SIOC enabled datastore is allocated I/O resources in proportio to their shares.
When you enable Storage I/O Control (SIOC) on a datastore, the VMware ESXi host begins to monitor the device latency that is observed when communicating with the datastore where SIOC is enabled. When device latency is more than the configured threshold, vSphere views the datstore as congested and each VM that is accessing the SIOC enabled datastore is allocated I/O resources in proportion to their shares. Shares are setup per virtual machine based on policy settings.
vSphere 6.5 Storage I/O Control Requirements
Below are requirements to consider before implementing vSphere 6.5 Storage I/O Control:
- Datastores must be managed by a single vCenter Server
- It is supported on all VMFS and NFS datastores – Fiber Channel, iSCSI, NFS. Raw Disk Mapping (RDM) is not supported. Also, datastores with multiple extents are not supported.
- Be careful not to simply enable Storage I/O Control on any SAN that has automated tiering. Be sure to verify your SAN with tiering functionality is certified as compatibile with SIOC before enabling
Setup and Configure VMware vSphere 6.5 Storage I/O Control
To enable Storage I/O Control on a datastore, we simply navigate to the the Home button >> Storage >> right click on the datastore >> Configure Storage I/O Control. We are then presented with the following box to Enable Storage I/O Control. Check the box to enable it. By default it is set to Percentage of peak throughput 90%. This can also be changed to the next radio button for a manual ms setting.
Create a VM Storage Policy for Storage I/O Control
To create a VM Storage Policy for use with Storage I/O Control, navigate to Home >> Policies and Profiles >> VM Storage Policies. Then we want to Create VM Storage Policy.
This launches the Create New VM Storage Policy wizard. We begin by naming the policy.
Under the Policy structure >> Common rules check the box and click the Add component button.
Now we select the Storage I/O Control menu and we see we have the default options to set Low, Normal, or High IO Shares allocation.
Below as shown, the Default Storage Policy Components that are configured out of the box.
After setting the Normal shares option.
If we select the Custom option, we can manually define the IOPS limit, IOPS reservation, and IOPS shares.
Click Finish to finalize the new Storage I/O Control VM Storage Policy.
Assign the Storage I/O Control VM Storage Policy to a Virtual Machine
Now that we have our new Storage I/O Control VM Storage Policy defined, we can apply it to a virtual machine. Right-click the virtual machine and select the Edit VM Storage Policies.
Now we select the new VM storage policy we defined from the dropdown menu. Click the Apply to all to apply the policy to all the VM files and click OK.
Notice how the VM Storage Policy now has changed for the VM files.
Monitoring VMware Storage I/O Control
Monitoring VMware Storage I/O Control can be done from the Storage >> <Datastore > >> Monitor >> Performance, Performance View dropdown. You will see the following windows measuring Storage I/O Control:
- Storage I/O Control Normalized Latency
- Storage I/O Control Aggregate IOPs
- Storage I/O Control Activity
Thoughts – Setup and Configure VMware vSphere 6.5 Storage I/O Control
Storage I/O Control is a great technology that many may not fully utilize in vSphere storage environments. The process to Setup and Configure VMware Storage I/O Control is not difficult and easily helps to maximize the storage performance of a SAN environment with high I/O workloads. The technology has been enhanced in vSphere 6.5 Storage I/O control by now utilizing the VAIO framework for more powerful policy driven control of storage I/O performance. Also, a great resource for learning more about the Storage I/O control is the official vSphere Resource Management document.