Virtualization Outside the Box

I’ve posted many an article on virtualization, but I felt it was a good time to post just an overview of the choices for virtualization along with a short blurb on each.

Obviously, the operating system you choose and the hardware you have will greatly limit the choices you have in making a virtualization decisions.  Also, you should consider how you intend to use virtualization (and for what).

Microsoft VirtualPC (Windows and a very outdated PowerPC Mac version) – it’s free, but that doesn’t really offset the fact that VirtualPC is aging technology, it’s slow, and it had been expected to die (but was used ad the basis for Windows 7 virtualization).

Microsoft Hyper-V (Windows Server 2008, “bare metal”) – you can get a free Hyper-V server distribution, but you’ll find it hard to use without a full Server 2008.  Hyper-V is greatly improved over VirtualPC, but it implements a rather dated set of virtual hardware, and it really doesn’t perform as well as many other choices and it will only run on hardware that supports hardware virtualization (I-VT or AMD-V).

VMware (Windows, Mac, Linux) – I’ll lump all of their product into one and just say it’s over-priced and held together by chewing gum and band-aids.  I’d recommend you avoid it — even the free versions.

VirtualBox (Windows, Mac, Linux, bare metal) – Sun (now Oracle) produces a commercial and open source (community) edition of an extremely good virtualization solution.  Primarily targeted at desktops it implements a reasonably modern virtual machine, and will run on most any hardware.

Parallels (Windows, Mac, Linux, bare metal) – a very good virtualization solution, but it’s expensive — and it will continue to cost you money over and over again (upgrades are essential and not free between versions).  You can do much better for much less (like free).

QEMU (Windows, Linux, etc) – this is one of the oldest of the open source projects, and the root of many.  It’s simple, it works, but it’s not a good solution for most users.

Kernel-based Virtual Machines (KVM — don’t confuse it with Keyboard/Video/Mouse switches, the TLA is way overloaded) – this is the solution that Ubuntu (and other Linux distributions) choose for virtualization (though Ubuntu recommends VirtualBox for desktop virtualization).  KVM makes is moderately complicated to setup guest machines, but there are GUI add-ons as well as other tools that greatly simplify the tasks.

Xen (Linux) – an extremely good hypervisor implementation (the architecture of Hyper-V and Xen share many of the same fundamental designs), it will run Xen enabled (modified) kernels efficiently on any hardware, but requires hardware assisted virtualization for non-modified kernels (like Windows).

XenSource (bare-metal [Linux]) – this is a commercial product (though now available at no cost) acquired by Citrix which also includes a number of enterprise tools.  All the comments of Xen (above) apply with the addition that this package is ready (and supported) for enterprise applications and is cost effective is large and small deployments.

My personal choice remains VirtualBox for desktop virtualization on Windows, Mac, and Linux, but if I were setting up a virtual server I’d make sure I evaluated (and would likely choose) XenSource (it’s definitely now a much better choice than building a Hyper-V based solution).

Originally posted 2010-05-03 02:00:58.