Hyper-V Cluster with Storage Spaces

I was recently discussing the topic of using Microsoft Storage Spaces in conjunction with Hyper-V and failover clustering. The Hyper-V cluster with Storage Spaces architecture has been around for a couple of years. Storage Spaces was introduced in Windows Server 2012 and was improved in Windows Server 2012 R2. There are many great resources available on the topic so I will not cover the details here. If you would like an overview of the architecture here are some great places to start.

Aidan Finn’s Blog – http://www.aidanfinn.com/2013/07/yes-you-can-run-hyper-v-on-your-storage-spaces-cluster-sofs/ – This talks about the architecture I am following. He also has a ton of additional information on Hyper-V, Storage Spaces, and other Microsoft virtualization topics.

TechNet is always a great place to start as well as the Microsoft blogs. Here are some links I found useful.

Failover Clustering – https://technet.microsoft.com/en-us/library/hh831579.aspx

Hyper-V and Failover Clustering – https://technet.microsoft.com/en-us/library/Cc732181(v=WS.10).aspx

Storage Spaces – https://technet.microsoft.com/en-us/library/hh831739.aspx

Microsoft Clustering and High Availability Blog – http://blogs.msdn.com/b/clustering/archive/2012/06/02/10314262.aspx

Now on to the primary point of this post. A couple colleagues of mine said they would like to see a demo of this architecture and in particular a successful failover of a virtual machine. I have seen some videos with parts of the configuration of Hyper-V failover clustering and also Storage Spaces. However, I was not able to find any demonstrations of the failover process. I decided to setup a cluster and create a demo video.

First I will explain the lab environment I used. It is a basic cluster-in-a-box using a virtualized Hyper-V failover cluster on ESXi 5.5. Hyper-V on Server 2012 R2 does not support nested virtualization, but Microsoft says it’s coming in Windows Server 2016. VMware ESXi 5.5 does support nested virtualization with a few small tweaks which you can read about on Derek Seaman’s Blog. Here is the basic setup I used.

Here is the VMware configuration of each Hyper-V virtual host.

There are a couple of items to call out here. The clustered disks use a different SCSI controller from the OS disks which are set to allow SCSI bus sharing for the virtual disks. Hard Disk 2 is used as a disk witness for the cluster quorum and Hard Disks 3-8 are used for the Storage Spaces pool and virtual volume. This volume becomes the clustered shared volume for virtual machine storage. The screenshots below show this configuration.

The Hyper-V failover cluster is running one Windows 7 virtual machine. In the demo video below, I will show the failover process for this VM by simulating the loss of the active cluster host.

One aspect of this configuration, which has some real benefits is a low cost and highly available virtualization solution that does not require and additional software other than Windows. While the cluster configuration in VMware is still more simplified it requires the use of VCenter and the additional cost.