VMware Storage I/O Control applies limits to IOPS with Storage Policy-Based Management through the use of vSphere...
APIs for I/O Filtering. Basically, you create a policy and an IOPS limit for reservations and shares and apply these to the VMs you want to include in the policy. Changes to the policy alter the settings for all VMs that the policy includes. This is important because these limits prevent storage bottlenecks, which can reduce VM performance to a sluggish pace.
Each VM that accesses a data store has a certain number of shares. All VM shares are set to normal (1,000) by default, with unlimited IOPS. You can change these limits as you see fit. If the data store's device latency exceeds the specified threshold, Storage I/O Control (SIOC) kicks into gear, allocating I/O resources to VMs consistent to their shares.
Take a look at this brief primer on SIOC and vSphere APIs for I/O Filtering (VAIO) to find out what they are and how to use them.
VAIO in brief
VMware VAIO is a set of policy-driven APIs with which end users create and configure policies to apply to VMs, just like any other storage policy. In VAIO, data services surface through a storage policy-based management control plane, such as Virtual Volumes or Virtual SAN (vSAN), and VAIO enables users to govern with per VM or per virtual machine disk file (VMDK) granularity on those services.
In my opinion, per VM granularity is fine, but per VMDK granularity is better because you usually have to apply a policy per application level. Some examples of this are a database that sits on a volume that needs to perform at a high level or a VM that you don't want to exceed a certain threshold.
Put SIOC to good use
To enable SIOC, select a data store in the vSphere Web Client inventory and click the Configure tab. Go to General in the menu on the left and, under Datastore Capabilities, tick the box marked Enable Storage I/O Control.
To create a new storage policy, locate VM Storage Policies in the Navigator menu on the left. Under the VM Storage Policies tab, click the icon shown in the image below to create a new VM storage policy.
Give your policy a meaningful name and, under Policy structure > Common rules, click the Add component button to add a custom SIOC policy structure. You can customize the values for IOPS limit, IOPS reservation and IOPS shares. Note that a -1 value for the IOPS limit is equivalent to unlimited.
SIOC is powerful and can increase consolidation ratios on the storage side, which enables more VMs per data store. VMware vSphere 6.5 includes an updated version of SIOC, though it supports the original version of SIOC, as well. This updated version of SIOC is an I/O filter that uses Storage Policy-Based Management to apply storage I/O control at the VM level. VSphere 6.5 supports SIOC with VMs that run Virtual Machine File System and Network File System data stores.
VSAN has a quality of service control called IOPS limit for object. Even though it works via policy and enables you to set IOPS limits on a per object basis, such as virtual disks and VMDKs, it isn't the same thing as SIOC. Instead, IOPS limit for object guarantees that an object will not exceed the IOPS values specified with a policy, and is more useful for VMs that consume more than they should.
Optimize workloads with Storage I/O Control
Eliminate I/O bottlenecks in the hybrid cloud
VSphere 6.5 brings improvements to SIOC