Everyone knows that Hyper-V is a great platform for running your Linux workloads — as long as the distribution you need just happens to be the ONE that Hyper-V supports. Yes, someday there will be two… patience, patience.
You have probably also heard over and over about Hyper-V and High Availability (HA) virtual machines. And please, don’t forget — HA is free!
Should one conclude that a supported Linux VM on Hyper-V would be fully functional in an HA configuration?
No, one should not.
Hyper-V HA is based on Microsoft’s general purpose Failover Clustering — originally designed for applications like Exchange and SQL Server. If you can say one thing about MSCS, it tries very hard to keep managed services online. Sometimes too hard.
In fact, without tight integration between Clustering and the protected services, it’s especially difficult to stop things in an orderly fashion. System Center Virtual Machine Manger 2008 has this integration, and stopping an HA VM with the SCVMM Administrator Console will normally initiate a proper shutdown. But, in order to do that, guest operating systems need to have integration components that offer the “Operating system shutdown” service .
Linux integration components for Hyper-V do not offer this service, and the following error is seen when attempting to shut down a Linux VM via SCVMM:
The next thing to try is shutting down the Linux VM from the Failover Cluster Manager UI — one of the many other “single panes of glass” needed to manage your Microsoft virtualization infrastructure.
Evidently, this approach does not perform the same validation as the SCVMM interface — there is no error and the guest OS actually does not shut down cleanly — the VM is simply stopped. It turns out that, like physical machines, virtual machines don’t really enjoy being abruptly powered off. Here you can see this poor filesystem being repaired during the next boot:
It appears that the only option for shutting down a Linux VM on Hyper-V is through the guest interface itself.
Unfortunately, when the VM shuts down, Failover Clustering notices immediately and assumes there has been a failure. One restart, coming up…
With Hyper-V you can run HA virtual machines and you can run Linux virtual machines, but you can’t run HA Linux virtual machines.
The only hypervisor that offers full functionality for both Windows and Linux guest operating systems is VMware ESX.