Windows Server 2016 introduces many new features related to storage capabilities and performance. One of the new features, that is available in Windows Server 2016 is an enhanced version of Storage Quality of Service (QoS).
Especially related to Hyper-V, Windows Server 2016 provides a centralized way to monitor and manage storage performance for virtual machines running on top of Hyper-V environments. This new enhanced Storage Quality of Service functionality in Windows Server 2016 is called Distributed Storage QoS. The enhanced Distributed Storage QoS improves upon the Storage Quality of Service functionality found in Windows Server 2012 R2 where storage QoS was applied per VHDX. This functionality worked well in single Hyper-V host environments, however not so much for clusters.
Let’s take a deeper dive into Windows Server 2016 Hyper-V Distributed Storage QoS and what advantages this enhanced Storage Quality of Service functionality brings to organization’s Windows Server 2016 Hyper-V environments.
What is new in Windows Server 2016 Storage QoS?
There are some really great new enhancements that come with the Distributed Storage QoS found in Windows Server 2016. As mentioned, the Storage Quality of Service in previous Windows Server versions worked effectively only in single Hyper-V host deployments. However, with Windows Server 2016 Storage QoS, organizations can centrally monitor end-to-end storage performance and create management policies applied to Hyper-V clusters utilizing Cluster Shared Volumes (CSVs).
Windows Server 2016 Storage Quality of Service now stores the storage QoS policies in the cluster database which allows assigning them to one or more virtual disks on Hyper-V virtual machines. This provides the following benefits:
- Policies created can configure a minimum and maximum value to virtual machine IOPs
- You can utilize PowerShell or VMI to create, enumerate, assign, and monitor policies on a CSV cluster
- If multiple hard disks share the same policy, performance is fairly distributed to meet demand within the parameters configured via the storage policy
Windows Server 2016 Storage Quality of Service provides the ability to manage minimum reserves, monitoring of storage flows of all virtual disks across the CSV cluster, and provides a centralized policy-based management that was not found in previous Windows Server versions.
Overview of Distributed Storage QoS in Windows Server 2016:
- Improving storage “fairness” between multiple virtual machines living on the same storage
- Mitigating noisy neighbor issues – Storage Quality of Service ensures that single virtual machines cannot flood storage systems bandwidth which would affect the performance of other virtual machines
- Defining Storage QoS policies – This allows for defining policies which can be applied to Hyper-V virtual machines based on the particular business needs related to each individual Hyper-V virtual machine
- This allows for much denser implementations of virtual machines per storage environment and overprovisioning effectively for production workloads
All of the new features found in Windows Server 2016 Storage Quality of Service make it a much more powerful and efficient platform for running Hyper-V virtual machines. The new policy-based management features allow much more powerful and granular control of virtual machine performance so as to better align with business needs.
Windows Server 2016 Storage QoS Requirements
There are two configurations that are supported with Storage QoS and Windows Server 2016.
- Hyper-V using a Scale-Out File Server – This requires both a storage cluster that is a scale-out file server and a compute cluster that serves as the Hyper-V compute cluster. This is also known as the disaggregated configuration for a Hyper-V cluster.
- Hyper-V using Cluster Shared Volumes (CSVs) – This configuration requires a compute cluster running Hyper-V connected to a Cluster Shared Volumes storage system.
Storage Quality of Service is utilized with the software-defined storage solution that is contained in the scale-out file server and Hyper-V. The scale-out file server presents file shares using the SMB3 protocol.
Configuring Windows Server 2016 Storage Quality of Service Policy
With Policy-based management using the Distributed Storage QoS found in Windows Server 2016, you can create storage policies that help to ensure performance service levels for virtual machine workloads. For instance, you may have a tiered approach for various performance level SLAs. For example, some organizations may have a gold, silver, or bronze level performance tiering. Applications such as Microsoft SQL Server typically demand very low latency and high-performance storage solutions that enable high-performance databases backing the classic three or two-tier application architecture to perform adequately.
Instead of having dedicated storage systems simply for high-performance database servers such as Microsoft SQL Server, organizations can utilize the same storage system for different performance requirements. With the policy-based approach, Windows Server 2016 Hyper-V allows making the best use of hardware and delivering the desired performance across the board for all production workloads.
Let’s look at an example of configuring a Windows Server 2016 Storage Quality of Service policy to apply to Hyper-V storage. Below, we configure a new policy that is named Silver and has minimum and maximum IOPs defined. Then, we apply the policy to the virtual disks of a virtual machine named FileServer1.
$CimSession = New-CimSession -ComputerName Cluster-HyperV
New-StorageQosPolicy -Name Silver -MinimumIops 75 -MaximumIops 175 – CimSession $CimSession
Get-VM -Name FileServer1 -ComputerName HVCluster |Get-VMHardDiskDrive |Set-VMHardDiskDrive -QoSPolicyID (Get-StorageQosPolicy -Name Silver
PowerShell Commandlets to Utilize with Windows Server 2016 Storage Quality of Service
There are a number of very useful PowerShell commandlets to interact with the Storage Quality of Service resource in a Hyper-V cluster. Let’s look at a few.
- Get-ClusterResource – This allows view the status of the Storage QoS Resource in a Hyper-V Cluster
- Get-StorageQosFlow – This allows viewing the current storage performance metrics based on flows
- Get-StorageQosVolume – Enables viewing performance for a volume
- New-StorageQosPolicy – creates a policy on the Scale-Out File Server
Microsoft Resources for Learning about Storage Quality of Service
There are many great resources provided by Microsoft to learn how to configure as well as troubleshoot Storage Quality of Service. Take a look at the following links to learn more about Storage Quality of Service in Windows Server 2016.
Storage Quality of Service – https://docs.microsoft.com/en-us/windows-server/storage/storage-qos/storage-qos-overview
What’s New in Windows Server – https://docs.microsoft.com/en-us/windows-server/storage/whats-new-in-storage
Storage Quality of Service for Enterprise Workloads – https://www.snia.org/sites/default/files/TomTalpey_Storage_Quality_Service.pdf
Windows Server 2016 provides some really amazing new functionality related to storage that allows organizations to have even more performance and better utilizing of existing hardware in the enterprise datacenter. With Storage Quality of Service, Microsoft has made a major step in the right direction, allowing administrators to control performance in a granular and software-defined way.
Storage Quality of Service allows utilizing the same storage hardware and providing differing levels of performance to multiple virtual machines located on that hardware. This allows organizations to effectively implement a tiered performance architecture approach when configuring Hyper-V production workloads and allows providing theunlimited performance to mission-critical virtual machines perhaps running latency and bandwidth sensitive applications like Microsoft SQL Server.
While previous Windows Server versions such as Windows Server 2012 R2 contained the Storage Quality of Service functionality, Windows Server 2016 provides a significantly more robust implementation of this technology and is the first version to make storage policy in the Hyper-V context a relevant solution. By making use of Storage Quality of Service in Windows Server 2016, this helps to further allow organizations to be abstracted away from the underlying hardware and essentially moves the control, monitoring, and configuration up to the hypervisor level.