Hi everyone, Sujeet Kumar here. I’m a Senior Software Engineer here on the System Center VMM team and today I’d like to talk about Storage Quality of Service (QoS) and Virtual Machine Manager 2016 TP4. Windows Server 2016 (WS 2016) introduces the Storage Quality of Service (QoS) feature which enables you to create QoS policies for VMs, and in this post I discuss the configuration and assignment of this feature using VMM 2016 TP4.
The “noisy neighbor” problem is a common problem in virtualized environments. When two virtual machines (VMs) share a resource, say a disk, there is always a chance that one VM’s usage of the resource exceeds that of the other. This might impact the performance of application running on the VM that could not get adequate usage of the resource.
To solve this problem, WS 2016 and VMM 2016 introduce the concept of QoS policies. These policies allow the admin to define the number of Minimum IOPS, Maximum IOPS and Maximum Bandwidth in MB/s. Minimum IOPS is the minimum performance that is guaranteed at any given point in time, whereas Maximum IOPS and Maximum Bandwidth is the performance limit in terms of IOPS and MB/s that is permissible. There is also the policy type which defines whether the policy is applicable for a set of VHDs or an individual VHD.
VMM 2016 TP4 builds on top of this feature to give you the capability to create and assign QoS policies to VHDs that are stored on SOFS FileShares. In the near future, we will also be enabling support for assigning QoS policies to VMs that have VHDs that reside on Spaces Direct storage.
When creating a VM with a default VHD, or when adding a new VHD, the VMM UI Create VM wizard lists the QoS policies that are in scope of SOFS File Share while setting the destination path for the VHD during VM creation. Here are the steps involved in creating a VM with guaranteed storage IO:
WS 2016 is required to support the Storage QoS feature. VMM 2016 provides the support for creating and managing the Storage QoS policies.
1. Create the Storage QoS Policy:
2. Assign policy to a SoFS volume:
3. Set the Storage QoS policies for VHDs:
Storage QoS policies are linked per VHD, so an admin can choose to assign or not assign any QoS policy to the VHD. As described earlier, a Storage QoS policy can only be a scope in the SOFS and all the shares created into that SOFS cluster are eligible to assign one of the many QoS policies that the admin may choose to create. The admin can choose to create one or many policies for a SOFS cluster, or create one and make the scope apply to many SOFS clusters. Both the combinations are allowed.
While creating a virtual machine, once the placement rating is fetched for each host or cluster, if the machine chosen for placement of the VHD happens to be on one of the SOFS share which have one of many QoS policies created, all the respective QoS policies are listed in a drop down. The admin can choose to assign one of those policies, or choose to not assign any of them at all. This can be done for each VHD that is part of this virtual machine. Once policies are attached, these QoS policies can later be seen and modified by going into the Advanced settings of each VHD. Also, a particular QoS policy can be assigned to one or many VHDs and handled by Hyper-V and Storage cluster to throttle during the runtime.
WS 2016 and VMM 2016 make it easy to set storage Quality of Service (QoS) policies on VMs ensuring that the applications running on the VMs get the performance they require.
Sujeet Kumar | Senior Software Engineer | Microsoft