The Stuff
I have the following components to work with:
- two rooms
- two beefy Dell R510s, one in each room
- two EMC VNXe storage devices, one in each room.
The goal
Ensure that if one server room goes down, VMs can continue to come back up & function.
Thinking:
- install Hyper-V on these two boxes
- have one box failover to the other
- abstract the two storage units away into one visible path so that if one goes down, the other can seamlessly fail over
- take advantage of server 2012 to accomplish this
The questions
- Can I use cluster shared volumes (CSVs) to accomplish this?
From my reading, it seems like I should be able to do the following:
- install server 2012 on both boxes
- create cluster shared volume comprised of an iSCSI locations on both EMC units
- create
Apologies for the format; on mobile, will clean t up later.
In order to support automatic failover of the VM's from one Hyper-V host to the other in the event of a host failure, you need to install the Failover Cluster feature on each Hyper-V host and create a cluster with these two hosts. Each host needs access to the VM storage for the VM's that you want to failover automatically. This is commonly done via iSCSI and Cluster Shared Volumes. How you would set that up with both storage arrays is a question for the storage vendor. If you can live without automatic failover then you could use Hyper-V Replica to handle the replication of the VM's from one host to another without using shared storage. You would set up one host in a single node cluster and leave the other host as a standalone Hyper-V host or you can create two independent Hyper-V clusters. The reason is because Hyper-V Replica works between cluster hosts and non-cluster hosts or between cluster hosts in different clusters. It does not work between hosts in the same cluster. Note that Hyper-V Replica doesn't support automatic failover for unplanned outages. If a host fails you'll have to manually failover to the VM's on the remaining host.
I spoke to EMC and they said this strategy should work, though they haven't officially written docs that support it yet.
Though I haven't put it into practice yet, the game plan is the following:
I'll update this answer with the exact process when it's completed.