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.
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?
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.
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.