Virtualization software recommendations for servers and desktops

I’ve been sharing my thoughts about various virtualization solutions a lot over the last few weeks. Several people have asked me for my opinions on the strengths and weaknesses of various products. I’ve also commented online about these issues. I’ve decided to list some of my observations in order to have something to refer to, for myself and others. I’ve listed options separately for servers and desktops and by order of aptitude to those roles.

Virtualization on the Server

Xen

Xen is my virtualization software of choice on the server. There are a few weaknesses though. The toolset is not nearly as advanced as other products. The lack of even basic ACPI support in the hypervisor means the processors will always run at full speed rather than save energy and reduce heat when possible. Xen also has restrictions about what guests can be used with paravirtualization and the requirement for hardware virtualization support for all other guests. However, with Xen guest support now built into recent Linux kernels and smart system builders and buyers requiring hardware virtualization support in their purchases this presents fewer concerns than it once did.

VMware

VMware is likely to be chosen in situations where a better set of GUI tools are needed, such as building virtual servers for clients without the skills to manage a Xen server. Although VMware is neither free nor open source like Xen, many businesses are willing to pay for the additional ease of use and hence I consider it an option for the server.

OS-level Virtualization

Products such as Linux-Vservers, OpenVZ, FreeVPS, FreeBSD jails, and Solaris Zones are solutions that lack a level of flexibility. There are system designs where these products are appropriate, for example where large numbers of virtual machines are desired for some reason or system RAM is limited. However I’ve rarely found that even these scenarios cannot be addressed by a better system design. All of these require 1 kernel and that can be a problem as soon as you attempt to run different distributions or have a virtual machine that requires different kernel functionality. While it’s wise to consider these options I have not employed them for some time.

QEMU, KVM, VirtualBox

All of these products are lacking in infrastructure that is useful for servers. KVM might be interesting to try on a server but it is not the optimal choice.

Virtualization on the Desktop and Laptop

KVM and QEMU

KVM and QEMU are now my virtualization software of choice for my desktop and laptop systems. KVM can only be used with processors that support hardware virtualization but because KVM and QEMU share much of the same code one can run QEMU (albeit slowly) and then use KVM on an upgrade. Additionally QEMU can always act as a fallback for KVM. I’ve been using Qemulator as a front-end for KVM and QEMU and I find it has all the GUI niceness I need.

VirtualBox

VirtualBox is a great way for people to start playing with virtual machines. It’s great handicap at the moment is a lack of support for 64-bit guests. This is why I chose to look elsewhere. With the predominance of 64-bit systems this is really a serious fault that I hope will be addressed in the near future. However, for people with 32-bit systems (I have a 32-bit laptop for example), VirtualBox seems to offer somewhat better performance than QEMU and is very easy to use.

Xen

I would not recommend Xen on a desktop, and especially not on a laptop where the power saving features of the laptop would be disabled. While sometimes I wonder about running my main system as a Dom0 under the Xen hypervisor and whether it would offer more advantages than disadvantages. For software issues, for example, I wonder if I’d always have to consider whether the problem lies with the Xen setup. While I can understand people choosing Xen I think there are better choices.

VMware

I would recommend against VMWare on the desktop. The tools are good but Qemulator and VirtualBox are perfectly adequate. I might consider it as an option in a business environment that had already bought into VMware for their servers to keep the tools consistent but for most other uses I’d say there are better options.

OS-level Virtualization

I really can’t see this being useful on a desktop. There is a very low overhead but the restriction to 1 kernel really limits the nice features of virtualization such as using it for testing and trying out different operating systems (that have a different kernel than the one being run on the host system).

Conclusions

I doubt anyone would be surprised that with the large number of virtualization solutions that inevitably some would be better suited to certain tasks than others. I feel that Xen is a great pick for the server but a relatively poor pick for the desktop. KVM is almost the reverse as a great pick for the desktop but not the best pick for the server. I feel that VMware still has its niche in businesses. I would like to see VirtualBox gain 64-bit support to make it a better recommendation. Even though I’ve run a number of servers with OS-level virtualization I’m seeing that as a weaker choice compared with more flexible solutions.

Of course the host system hardware is an important consideration. An older system may only be able to support OS-level virtualization and of course KVM and Xen are both greatly enhanced by the presence of hardware virtualization technologies. Instead of running virtualization products on older hardware it may be worth considering replacing the hardware with something that can run the older system or systems through virtualization.

Trackback URL for this post:

http://hightechsorcery.com/trackback/125
Creative Commons License Except where otherwise noted, content on this site is licensed under a Creative Commons by-nc-sa 3.0 License