After having such disappointing performance on our trustworthy PowerEdge 2850 running Xen on top of CentOS 5.5, I decided to see if things looked better on the other side of the VM fence with VMware's ESXi server. I have to say things are running much better.
I had a PowerEdge 1850 that hasn't been tasked yet and figured that would be a good place to start. This machine is anemic compared to the 2850 (Which is no powerhouse either)
|Processor||2 x 3.2 GHz Xeon 2MB Cache||1 x 2.8 GHz Xeon 2MB Cache|
|RAM||6 GB||3 GB|
|Disk(s)||5 x 73 GB SCSI, RAID 5||2 x 73 GB, RAID 1|
Granted, neither of these machines would be running a high transaction SQL database as a dedicated server, let alone virtualized, these are only for development and to run some internal, non-critical, services for the office. The glaring difference is that the 1850 represents half the resources that the 2850 does.
Because the 2850 was running 64 bit versions of CentOS and VMware would only support 32 bit operating systems on this hardware, I needed to create a standard template server of CentOS in 32 bit. This is where things were looking better before I really started. The install of VMware ESXi and the first instance of CentOS took an hour all told, that includes the host and first geust OS. I don't recall how long it took when I first built the Xen system, but it wasn't anywhere that quick.
The major differential in time is from the installation of the host OS. In the case of Xen you are installing a full blown install of CentOS with the associated overhead. In the case of VMware the initial host install takes about five minutes.
I then migrated the websites on the 2850 over to the 1850 with backups and restores under Virtualmin. Once again, quick and painless. At this point both servers were configured in the same fashion. The bottom line was that the sites running under ESXi responded several times faster than those under Xen.
I decided to push my luck and wanted to try a migration of some machines that were running under Microsoft Virtual Server. I had an old instance of Fedora Core 6 and Windows Web Server 2003 that were perfect candidates. I ran the process of migration using VMware's vCenter Converter Standalone software and started those VMs on the 1850 as well and still the 1850 running ESXi out-performed the 2850 running XEN. As an aside, Xen does not have a comparable function allowing the migration of an exiting system to a vitualized environment.
Granted, this was far from a scientific evaluation, but in this environment I've moved all the VMs created on the 1850 back over to the 2850 running ESXi and haven't looked back. As an added benefit, because these servers don't support hardware virtualization, Xen could only run paravirtualized VMs, which meant no Windows servers, whereas the VMware host on this hardware will support native virtualization. The other side of the coin is that VMware ESXi doesn't support 64 bit OSs without hardware virtualization support.
There still are some things that Xen does that still makes it a strong contender. First and foremost, in its community version you still get the ability transactiontionalize the VMs and become fully fault tolerant and support hot migration of VMs, that's where VMware starts charging money.
Either platform, virtualization is saving space, electricity, hardware, and time which all translates to money.