Just a few questions about Hyper-V virtual machines and clustering

You may want to break this up into a series of more-specifically-targeted questions.

  1. If you are looking for seamless, app-transparent failover then you need to use either Failover Clustering or AlwaysOn Availability Groups. AOAG will only be an option if you are using SQL 2012 Enterprise. Mirroring will provide you with simple (manual) failover; if you want automatic failover you'll have to add a witness server to the mix, but even then your application will have to be failover-aware because it will need to use a new IP/name to connect to the secondary server, unlike with a failover cluster/AOAG. In fact, Microsoft intends Availability Groups to replace traditional mirroring going forward, so for the sake of future-proofing I recommend not using mirroring for new deployments if possible.

  2. SQL Server 2012 on Windows 2012 does not absolutely require a clustered MSDTC, but if you need one it is as simple as adding the DTC clustered role: Add clustered DTC

  3. For a failover cluster you need some type of external storage for the DB. This can be SAN, DAS, or (if you have SQL 2012) NAS. If you are not going to use external storage, you should use AlwaysOn Availability Groups as it will replicate your data for you while providing cluster-like failover capabilities. This still requires a Windows cluster but SQL itself will not be clustered.

  4. Clustered file servers are designed to work with shared storage at the back end, much like clustered SQL instances. Another option would be to use DFS Replication with DFS Namespaces to provide a highly-available file share without clustering.


One "low tech" option would be to implement Hyper-V Replica between the two hosts. If you don't have shared storage for them and you're unable to configure (or finance) shared storage and application level failover (SQL Server Enterprise Edition for AOAG) then Hyper-V Replica can be used to replicate a VM from a source host to a destination host and keep the two VM's in sync. You can enable application consistent replication by using the VSS option of Hyper-V Replica.

The downsides to Hyper-V replica is that it can't be used between hosts in the same failover cluster and there is no automatic failover.