Something I've come across a few times over the last couple of weeks is people asking for a Hyper-V cluster because management are demanding HA and 100% uptime.
The problem is that a Hyper-V cluster will only provide HA for the physical hosts that make up the cluster and not for the VM's that are running on the nodes in the cluster. If a VM crashes, gets corrupt or has some other fault then it's down. All the host level clustering in the world won't help that.
I'd even go further and say that a Hyper-V cluster harms the requirement to have HA as a cluster needs to have the VM's hosted on shared storage. This then put's the company in the strange position of having HA on the hosts but not the on the storage. When I've raised this, I've been told "The SAN won't break, it's a SAN".
Sorry, SAN's can and will break. They are just bits of hardware that run bits of software. Normally they are very reliable bits or hardware with very reliable bits of software but still software with bugs in. I've even had the situation where management are too scared to upgrade the SAN because it contains data that is just too important to lose. By choosing this route, you really are choosing to put all your eggs in one basket.
Yes, you've got HA, at the hypervisor level but you have nothing for the VM's and nothing for the storage. You're still down if the SAN has a bad day or if the VM crashes. You're really not in the place you want to be in as you don't have HA at the guest level. So, how do we have HA for the guests?
Like anything, there are costs involved and the less downtime you want then the more you have to spend out. Today, a lot of the applications have HA in some form available inside the software itself. For example, SQL has always on availability groups, Exchange has Database Availability groups, AD is built to be fault tolerant anyway and for file storage you've got DFS. All you need is to split these workloads between two hypervisors running on local storage and you have guest level HA. Take a host out and you're still working.
What about other workloads? In this case there is nothing wrong with a cluster. Build a two node cluster in a VM and use a witness share on a NAS somewhere so that you've got quorum and you've then got HA for those applications as well. Again, as long as the workload is split across two or more physical hosts you're good to go. You've also got Hyper-V's ability to replicate a VM from one host to another which, as long as the bandwidth is there, gives you a nice DR option.
Hyper-V also supports shared nothing live migration. You don't even need a SAN to migrate a VM from one host to another. Add in Veeam for backups (following the 3-2-1 rule of course) and you've got yourself a fairly decent setup.
In summary, as more applications have some level of application aware HA and as the list of features in Hyper-V and tools like veeam, grow, I don't see a need to ever cluster Hyper-V servers as it's not like clustering them adds in features that we see with a VMWare cluster. Maybe one day they will but I cannot see it.