A quick distinction before getting into the real post:
There is something called Xen and something called Xen Server. Xen is a virtualization platform that is similar to KVM, and I still think that it is amazing. Xen Server is a product by Citrix that builds upon Xen to be more user-friendly. This post is only referring to Xen Server the product, not Xen.
Now For the Actual Post
Up until recently, I used Xen Server to run all my virtual machines that were going to exist for more than I few moments while testing something. For example, it’s how I hosted a Mattermost server for the Southern California EmComm network. The combination of Xen Center (it’s management interface on Windows) how lightweight it is compared to competitors, and general ease of use compared to other hypervisor options made Xen Server quite appealing. That is, until version 7.3 was dropped.
The way that Citrix has handled licensing for Xen Server is that most features are free, but some require that an enterprise license be purchased. For example, when making a pool of servers, a user could have up to X amount of servers for free, but then had to buy a license after that. In my mind, doing it this way is fair, since the cutoffs made sense.
As of version 7.3, however, there are new restrictions on the free version. The worst of which, in my opinion, is that the free version no longer allows GPU passthru, which is pretty standard for all virtualization platforms and is quite important to me. But with their new policy change, I would need to pay $800 in order to allow a VM to use the GPU I have in the server.
Because of this, I have to decided to move my infrastructure over to either Proxmox, a Debian based hypervisor that makes use of KVM, or setting up Fedora server with oVirt. Both options will provide several other benefits that Xen Server lacked (these are more minor complaints to me, given what I was doing before).
My More Minor Gripes with Xen Server
The Kernel Does Not Support Network Bridging
The kernel that ships with Xen Server does not having network bridging built into it. This means that setting up an internal network within your virtual machines is basically impossible, unless you recompile the kernel from source to add the needed modules. But by the time you complete that, you may as well have just installed base CentOS 7 and added Xen on top of it. The only thing missing from doing that would be Xen Center (which might work with normal Xen, I’m not sure. And if it doesn’t, Xen Orchestra provides a nice web interface that can do the same things).
Xen Server Blocks Yum from Working
As I just mentioned, Xen Server is built on CentOS, which should be pretty cool. Yum is a nice package manager, and older versions of Cent are supported for a more time than other server operating systems. The problem is that Citrix made neither of those things matter, because they disable every single RPM repo, so
yum update doesn’t work. And if you manually reenable them, updates fail anyway because of custom packages. I assume this is to make it so that the patches Citrix releases are the only updates that happen to the server. Which can become a pretty major issue when something like Meltdown is discovered and they take a month to release a patch (and I’m not even sure if it did anything for Meltdown, I just know that that’s how long afterwards it was before Xen Center notified me about a new update).
No USB Passthru
This is my most minor complaint. It’s not even something that came up often, it’s just something that I think is nice to have in a hypervisor. I don’t need ESXi’s ability to pass a remote USB to a VM over the internet using VMware Workstation or anything like that. But being able to pass my host machine USB device to a VM is nice to be able to do every once in a while.
An addendum on USB passthru:
Xen does support USB passthru, and while it is not as simple as a few clicks and boom you’re good, it is still simple enough. Xen Server does not officially support this, and I was never able to successfully do it using the Xen method. The combination of these two things makes me feel that my comment about Xen Server not having it is valid.
What I am Using Instead
I briefly said above that I am switching to either Proxmox or KVM/oVirt to be my new hypervisor. I have used KVM on my personal computer and enjoyed the experience of it (until I broke it by throwing Kimchi into the mix. Either Debian and Kimchi don’t like each other, or I did something wrong). I have not used Proxmox before, but have heard good things about it and like that it makes use of KVM. After I have used whatever I decide upon long enough to give a fair review of it, I will most likely write one and will end a link to it at the bottom of this post.