A common question in virtualization, which option is better.
We’ll take a look at the top options. (HyperV and KVM aside because quite honestly they suck). Sorry if you’re using either of those as a virtualization solution — but HyperV is bloated and based on windows… and KVM by nature is very insecure. On somewhat of a sidenote, it’s quite unfortunate that there are so many people in the world that get “sold” by gimmicks, bulleted lists and various other hyped up garbage.
Lets start off with a basic comparison on XenServer vs Xen. Both of which are free. Xen is opensource, while XenServer is based upon Xen, it’s owned by Citrix. (It may be useful to point out that XenServer is similar to ESXi, where as Xen is quite a bit different from both).
Xen (opensource) requires a base operating system (Dom0). So for instance you would install Ubuntu or CentOS first, having a fully operating desktop machine. On top of that you would install opensource Xen and a virtual maching manager tool. You are then able to create virtual machines on top of your host OS. (While you don’t necissarly need to install the x-windows system on Dom0, it still requires a base OS as such).
The opensource Xen solution is probably a good solution for your home network. I used open source Xen on my single desktop machine (3TB HD, 4GB ram, Quad Core Processor). Which allowed me to keep my base Ubuntu installation for development, web browsing, and various other things I do on my home desktop. But also allowed me to create a media server for streaming music and videos to my PS3, a VOIP server to manage calls, a ZoneMinder server to monitor IP cameras and create a new test server when I needed to play around with other applications in a server environment.
Now looking at XenServer (citrix) and ESXi (VMware), both of which are “free” and have extra licenses you can purchase for several thousand (to several hundred thousand) dollars in order to open up some pretty cool “enterprise” features. While both can server a production environment quite well in their free versions, having used both, XenServer is a better solution. Both are a barebones/baremetal type hypervisor and take about 10-15 minutes to install. (Unless of course you run across some hardware incompability issues). But that may only be a problem with very old hardware or perhaps very new cutting edge technology.
XenServer itself has more free features out of the box, and is all around a better implemntation. One of the biggest features (though actually small), is that XenServer uses IPtables!! I can easily setup firewall rules on the hypervisor itself, helping keep my server SECURE. Where as with ESXi, the command console is VERY limited. I had to create an additional virtual machine firewall appliance, then connect my management console to the virtual machine and setup port forward rules from the virtual machine to the management interface. (So if the VM crashed, I was pretty much SOL).
Another great feature of XenServer is the ease of clustering up to 16 physical servers together! This allows for High Availability failover and high workloads to be distributed to other servers in the cluster. It’s as simple as point and click, as well as a simple drag/drop to move one VM to another physical machine. (In HA mode, a failed server automatically migrates the VM’s to another machine). Though I believe HA requires an enterprise license.
ESXi itself doesn’t have much in terms of “cool” features, I found it kind of boring actually. I guess the only thing notable about ESXi is that you can run unmodified guests without too much “performance loss”. (Though I did find ESXi painfully slow compared to XenServer with the same Virtual Machines running).
Another thing I found is that with ESXi, creating VM’s was pretty easy; but duplicating a VM was time consuming. I/O operations are very sluggish on the system itself. XenServer allows you to template a VM so they can be duplicated quickly and easily once you had created the initial install of one VM. XenServer saves hours of time when it comes to this feature.
I guess it’s becoming pretty aparent that XenServer (citrix) is just better. On two identical physical servers (Dual Quad core processors, 16gb of ram), XenServer (besides having better management features) performed much better in comparison to the same VM installations on the ESXi host.
All VM’s were linux (CentOS) based. I don’t run windows for anything aside from the odd desktop machine here and there (if that). Though running windows hosts on ESXi is (i believe at the moment) easier then XenServer.