Like my previous posts on tuning CPU, memory and network resources, this post is intended to cover the corresponding VCAP-DCA objective, this time focusing on host storage configuration. The main topic I want to cover here is Storage IO Control.
Storage IO Control
Storage IO Control (SIOC) can help ensure that the performance of your critical virtual machines is not affected by other virtual machines when there is contention for your storage resources. Prior to SIOC (introduced in vSphere 4.1), disk shares could be set at the virtual machine level. SIOC controls storage resources at the datastore level, so that all hosts and virtual machines requiring access to the datastore are considered when prioritising access to the storage resource.
There are a few things to bear in mind:
- Storage IO Control is disabled by default. It is enabled on a per-datastore basis.
- Like with other shares methods, SIOC only kicks in when a threshold has been exceeded
- The default latency threshold is 30ms.
- SIOC uses disk shares to prioritise access to resources.
- Storage IO Control is supported on Fibre Channel, iSCSI and NFS connected datastores, but cannot be used with RDMs.
- SIOC doesn’t support datastores with multiple extents.
To enable SIOC on a datastore, right click the datastore and click properties:
To enable SIOC for the datastore, click the ‘Enabled’ tick box. The Congestion Threshold can be changed from the default of 30ms by clicking the ‘Advanced…’ button.
Once SIOC has been enabled on your datastore(s), the next step is to configure disk shares (and/or IOPS limits) for your virtual machines. This is done in the settings window for the virtual machine:
The default shares value for a virtual disk is 1000, which is the ‘Normal’ setting. You can set the shares level to High, Normal or Low, or select a custom value. In addition to setting shares, you can also limit the amount of IOPs for a virtual disk by setting a custom value in the ‘Limit – IOPs’ column.