Today, “Virtual machine” seems to be a magic words in the computer industry. Why? Simply stated, this technology promise better server utilization, better server management, better power efficiency, and, oh yes, some other random pick of better things! The obvious question is if virtual machines technology really provide this better experience. In short: yes. While it has its set of problems and complications, when used correctly this technology can really please you with some great advantages over the one-operating-system-for-one-server paradigm vastly used in the x86 arena.
But, assumed that virtual machines make sense in your environment, what is the best virtualization software to choose? There are many virtualizer and paravirtualizer available today, and some once-commercial virtualization softwares are now freely released (for examples, think to VMware Server and Citrix XenServer). In the end, the choice can be very hard. As the remaining commercial, non-free virtualizator are designed for the upper end of the market (datacenters or large-sized corporates), this article will focus on available, free virtual machine softwares. So, be prepared to a furious battle between VMware vs Virtualbox vs KVM vs Xen!
To simplify the situation, let define three requirements that a good virtual machine software must satisfy, in relevance order:
it should met the required feature level
it should met the required performance level
it should be simple to manage
Speaking about the feature level, the choice is very straightforward: simply discard the virtualizers that do not meet your level. For example, do you need the capability to do many snapshots? Good, simply remove from the list the virtualizers who don't have it (anyone said VMware server?). Or you do you need live migration? Remove the incapable virtualizers from the list.
This is simply a check-the-features-list work and, as the virtual machine softwares are very actively developed and the supported features can vary rapidly, it should be really done against the latest released virtualizer version.
Regarding point n.3, the simplicity of management, it should be noted that for most environment most, if not all, the free virtualizers are equivalent: they very ofter provide a comfortable GUI and a well done CLI interface. One thing that not all provide, however, is a Web-based GUI: this can be a really useful feature as it enable basic guest management without the need to install a proprietary GUI client and/or messing around with the CLI. As above, that feature should be checked against the latest released software version.
The whole point of this article, however, is not to provide a detailed feature-driven analysis of the various virtual machine softwares: features vary very rapidly and always have a relative importance based on the specific environment needs.
This article will focus on point n.2 – performance level. This often overlooked point is crucial to select the right virtualizer software from the list of software that mets you feature level. However, please keep in mind that the order in which the virtualizers performances stack on each other can vary considerably based on the workload type. For example, a virtualizer can be faster that another in a network bound benchmark, but the latter can be faster in a CPU-heavy job.
So, this article have not the claim to elect the absolute better virtual machine software. No, it only present you a glimpse of the performances provided by some of the best developed virtualizers. Only you, the final customer, can finally do the right choice selecting the best-suited software to yours specific needs. I hope that this article can help you in the choice.
UPDATE: a recent article comparing KVM vs VirtualBox can be found here: http://www.ilsistemista.net/index.php/virtualization/12-kvm-vs-virtualbox-40-on-rhel-6.html