As part of the Windows Server Technical Preview released a few weeks ago, we announced the evolution of the Storage Quality of Service (Storage QoS) feature. Now, in addition to that TechNet page with an overview, we released the Storage QoS Step-by-Step Guide.
An Overview of Storage QoS
Storage Quality of Service in Windows Server Technical Preview provides a way to centrally monitor and manage storage performance for virtual machines using Hyper-V and the Scale Out File Server roles. The feature automatically improves storage resource fairness between multiple virtual machines using the same file server and allows specific Minimum and Maximum performance goals to be configured in units of normalized IOPs.
Windows Server 2012 R2 had the ability to enforce an IOPS maximum on a single Hyper-V host. With the Windows Server Technical Preview, this is extended to enforce both minimum and maximum IOPS on a set of Hyper-V hosts that share a Scale-Out File Server as their storage solution.
Note: Please keep in mind that this is an early pre-release build. Many of the features and scenarios are still in development and the experiences are still evolving. At this stage, Windows Server Technical Preview and Storage QoS are not intended for production environments, only for introductory evaluation.
Scenarios for Storage QoS
With this new solution, you will be able to address the following scenarios:
- Noisy neighbor mitigation – By default, Storage QoS ensures that a single virtual machine cannot consume all storage resources and starve other virtual machines of storage bandwidth.
- Deploy at high density with confidence – Storage QoS policies define performance minimums and maximums for virtual machines and ensures they are met. This provides consistent performance to virtual machines, even in dense and overprovisioned environments.
- End to end storage monitoring – As soon as the virtual machines stored on a Scale Out File Server are started, their performance is monitored. Performance of all VMs running on the Scale Out File Server cluster can be viewed from a single location.
Storage Quality of Service is built into the Microsoft Software-Defined Storage solution provided by Scale Out File Servers and Hyper-V. The Scale Out File Server exposes file shares to the Hyper-V servers using the SMB3 protocol. A new Policy Manager has been added to the File Server cluster, which provides the central storage performance monitoring.
As Hyper-V servers launch virtual machines, they are monitored by the policy manager. The Policy Manager will communicate the Storage QoS policy and any limits or reserves back to the Hyper-V server, which will control the performance of the virtual machine as appropriate.
When there are changes to Storage QoS policies or to the performance demands by virtual machines, the policy manager will notify the Hyper-V servers to adjust their behavior. This feedback loop ensures that all virtual machines perform consistently according to the Storage QoS policies defined.
Last but not least, here is the link to the guide and some other useful resources:
- Windows Server Technical Preview Storage QoS Guide (Microsoft Download Center)
- TechNet Forum for Windows Server Technical Preview (Provide feedback, ask questions)
- Windows Server Technical Preview – Storage Survival Guide (Blog post with links to articles, blogs, downloads)
Thank you in advance for evaluating Storage QoS and providing your feedback.
We will continue to post more content and news as the release cycle evolves.
A Nod to Microsoft Research
It's important to mention that this new feature implemented in Windows Server Technical Preview would not be possible without the incredible work done by Microsoft Research in this space.
Eno Thereska and his fellow researchers have been working on this QoS problem for years now. If you want to understand the Computer Science behind what Hyper-V implemented, you can access the MSR page about the Predictable Data Centers (PDC).
There you can find a few papers on the subject and a particularly relevant one is "IOFlow: A Software-Defined Storage Architecture", presented about a year ago at the 24th ACM Symposium on Operating Systems Principles (SOSP'13).