[Solved] The everlasting question: What hypervisor should you choose?

Seriously, for days I am trying to find any significant (and recent) resources that show the differences between KVM and Xen Hypervisors.

There is hundreds of sites, blogs, articles etc. that compare them in one or two sentences along with ESXi and Virtualbox (because we are already at it and it inflates the article nicely without providing anything you can’t read on Wikipedia).

Then we have the benchmarks that are useful but not so much if you consider that they are ALL made around the time of 2009. That is almost a decade ago and drivers should have drastically improved by now… at least I hope so. Then most of them didn’t bother to compare para-virtualized drivers which I intend to use so these are of no interest to me.

But the best part is when you finally find something that has been published in 2016/17 and it’s nothing but a company’s admin telling you that their KVM implementation is the best and Xen is among the least efficient hypervisors. And 5 minutes later you find an article stating that Xen performs better than KVM in most cases.

I don’t know what to believe anymore. May someone be so kind and enlighten me what’s keeping both hypervisors around and if one of them is in fact better in certain scenarios and if yes, which ones?

Thank you!

They both work well for different applications. All hypervisors are byzantine, complicated pieces of software with different advantages, flaws and limitations. Which one is best for you all depends on your use-case, hardware, and other individal circumstances.

The problem is how am I supposed to validate the optimal hypervisor for my use case if there is no up-to-date information to find?

Do I really need to sit down and test them all in a row?

Yep. That’s the case for most enterprise tech.

Then how can a sys-admin claim that Xen is among the least efficient hypervisors when others state it outperforms KVM in many scenarios?

Different use-cases and experiences, as well as levels of experience, most likely.

Conclusion:

I highly advise you to do your own research (since standards change over time) however, for those who can’t figure out which hypervisor to use and so happen to find this thread, this article has helped me to make a rather quick decision on what to use. Summarized in bullet points:

  • It’s all about management tools and ease of use; a well designed GUI like ESXi has it might seal the deal for you
  • ESXi is backed by VMware and therefor proprietary
  • KVM is open-source; it’s backed by RedHat and built into the Linux mainline kernel since 2.6.x therefor it’s going to remain relevant
  • KVM has no consistent GUI though; you either love or hate the use of Virsh and Virt-Manager or use one of the many front-ends
  • Xen is still around just because Amazon AWS and Rackspace depend on it; they don’t see why they should invest again just to switch to a more efficient hypervisor (if it ain’t broke, don’t fix it)
  • Citrix XenServer’s sources have been published while there is a plethora of proprietary addons like virtualizing single applications or entire desktops (cool stuff but it’s meant for enterprise usage)
  • Xen does not support MSI interrupts which might be a dealbreaker for you as you will likely need it for stutter-free GPU passthrough + audio; ESXi 6.0+ and KVM do support it
  • Nobody gives a crap about Hyper-V unless you are bound to using Windows Servers

So, what to choose?

Go through the points above and evaluate if there are any dealbreakers for you. I came to the conclusion that KVM fits best for me. It’s easy to set up, future prove and comes with everything I need. If you are going to pass through a GPU you may use the well documented ArchWiki. In 2017 KVM is the way to go.

You may like ESXi for its GUI. PCI-Passthrough works here as well but I haven’t tested it myself. Chances are you will run into Nvidia’s infamous error code 43 without being able to solve it. But if you are just looking for a hypervisor to deploy lots and lots of virtual servers it will provide a much more consistent experience compared to the sheer endless list of KVM front-ends.

Xen also works but the initial setup can be troublesome on Arch Linux due to incomplete documentation (at the time of writing). There are many indicators that it has fallen behind KVM by now and only kept alive for the sake of its stakeholders. Other recent reports about Xen: article 1, articles 2
Citrix’s lineup may be interesting to you though but under the assumption you are building servers for the enterprise. In that case you probably already know what you want.

Again, do your own research! By the time you are reading this it’s likely to be out of date again.