Virtualization Shootout: VMware Server vs. VirtualBox vs. KVM

A comparison of three virtualization solutions: VMware Server, VirtualBox and KVM—each has its strengths and weaknesses.

Virtualization is a buzzword that's been making its way around the
corporate IT circles for a few years. On paper, virtualization sounds
great—you can make full use of those unused CPU cycles, leverage
a particular machine to its fullest potential, and save power and space
at the same time. Many people think virtualization is good only in the
corporate data center; however, several software packages
run just fine on desktop- and laptop-class Linux machines, as well as
servers. In this article, I put three of them through their
paces: VMware Server, VirtualBox and KVM.

“But wait!” you may exclaim, “Why aren't you evaluating
Xen too?” The
answer is simple. Xen, although extremely powerful, is more of an
enterprise-class virtualization solution and may be overkill for the
average Linux user. If you're going to be building a data center or
a service that will be exposed to customers on the Internet, that's
when you should consider Xen. This is one of the reasons Ubuntu
officially supports KVM, rather than Xen, as its open-source
virtualization solution, and I follow that reasoning here.

First, I should define a couple terms for the purposes of this article.
A host is a physical machine running one of the virtualization
solutions. A guest, virtual machine or VM is the virtual machine
running inside the virtualized container provided by the host.

Because this is a shootout, I assign point values to categories,
and the product with the most points wins the shootout. The values
range from 1 to 3, with 1 being poor, 2 being average and 3
being excellent. All of the virtualization packages are installed
on an Ubuntu 9.04 host. The categories are as follows:

Ease of installation.

Administrative tools.

Capabilities.

License.

VMware Server

VMware has been providing virtualization solutions for ten years, and as such,
is the virtual 800-pound gorilla in the marketplace. With at least six
virtualization products that span both the desktop and server markets,
VMware has a package that will fit your needs. The product I review here
is VMware Server 2.0. It's free (as in beer) and is very
feature-rich.

Ease of Installation

VMware Server ships as a 507MB Windows executable, a 465MB RPM or
a 466MB tarball. Because I'm installing on an Ubuntu machine, I use
the tarball. Kicking off the installation is fairly straightforward on
Ubuntu. Simply ensure that you've got the build-essential package installed,
along with the headers for whatever kernel you're running. Then, untar
the tarball and run ./vmware-install as root, and follow along with the
prompts. The installer will prompt you for the paths to where you want to
install various things. It's acceptable to choose the defaults, as
the installer chooses fairly sane locations.

One thing to note is that due to VMware's “free as in beer” license,
you must get a serial number from the VMware site before you can run
it. Make sure you have registered on the VMware site and have your serial
number handy, as the installer will ask you for it near the end of the
installation process.

Ease of installation score: 2. This is mostly due to VMware requiring
some packages and asking many questions in the installer. It works well
once you get it installed, and you can take the defaults on just about
every question, but it is a little tedious.

Administrative Tools

If you've used VMware Server 1.0 and haven't looked at 2.0 yet, you're
in for a surprise. The 2.0 version of the product uses a Web-based
administrative panel, compared with the “fat client” approach that
the 1.0 product used (Figure 1).

Figure 1. VMware Server Administrative Console

Everything in the admin console is easy to use. Creating a virtual
machine is a simple matter, thanks to VMware's excellent form-based
wizards. Simply fill in the blanks, and VMware will create an appropriate
VM and get it ready for its first boot. VMware Server provides a virtual
console via its Web interface to the virtual machine as well (Figure 2).
It requires installing a Firefox plugin, but the console works well and doesn't
require a fat client. Unfortunately, the plugin doesn't work on the Mac
version of Firefox.

Figure 2. PXE Menu via the VMware Virtual Console

VMware also allows you to console to the machine remotely via VNC. This
requires adding the lines RemoteDisplay.vnc.enabled =
"TRUE" and
RemoteDisplay.vnc.port = 5900 to the virtual machine's configuration
file (named <hostname>.vmx in the virtual machine storage directory).

In short, the VMware administrative console is excellent. The Web-based
GUI is easy to navigate, and the tools work well on Linux or Windows. The
ability to enable VNC access to a virtual machine's console without
using the Web GUI could prove invaluable in certain administrative cases.

Administrative tools score: 3. VMware's experience in the field shows
here, and VMware Server's historical connections to the GSX commercial
product mean that the tools are best of breed.

Capabilities

VMware Server is an extremely capable virtualization platform.
Its ancestor is VMware's first-generation commercial server product,
VMware GSX, so it has a great pedigree. VMware Server's key features include:

The ability to run on standard x86 hardware, with or without hardware
virtualization extensions.

Two-processor Virtual SMP, allowing a single virtual machine to span two
processors.

A snapshot feature, allowing you to capture the state of a VM and then roll
it back to that state.

64-bit support, on both the host and guest operating systems.

Support for bridged, NAT and host-only network interfaces.

Support for USB devices and controllers.

All these features mean that VMware Server is a great platform for
personal experimentation or light business use. I've personally had a
VMware Server host with a couple guest machines running continuously
since 2007.

Capabilities score: 3. VMware has been building its feature set for
years, and it shows here.

Licensing

VMware Server has a proprietary license with appropriate EULA for this
software. Although it's technically free, it's “free as in
beer”, meaning
that though it costs nothing, you can't actually modify it. VMware does make
some source code available, but it's not the entire source tree, only
the parts that are GPL that VMware modifies. In order to use the software,
you need to register on the VMware Web site and get a serial number in
your name. Although this is available at no cost, it isn't
“free” in the
open-source sense.

Licensing score: 1. VMware's proprietary license and EULA mean you can't
lift the hood and tweak it as you see fit, nor can you analyze the code
for vulnerabilities. You're at the mercy of VMware. If Free Software
is important to you, this license will give you fits.

Try running a windows XP guest on Ubuntu Karmic 64 bit. CPU on host machine will be at almost 100%.

Many people have this problem and their forums say everything from run a dummy machine at the same time,
switch 2 cores to one in VM manager, to many other fixes. Most do not work. Even XP running at 30% host CPU at idle sucks.
This is when it is working the best.

If I can't simply run win XP on Ubuntu Krmic with good performance, how is Virtualbox the winner? It's not just me, it's 100's of
people posting these issues.

Currently running Win7 Ultimate in VBox with 798MB RAM - mainly for Outlook 2007 and Visio 2007. Runs smoothly enough for everyday use with CPU usage around 20% on a Core 2 Duo 2.54GHz processor laptop.

Now and again I also need to boot XP Pro in VBox with 1GB RAM. CPU usage together with Win 7 is around 50% when using our Centra client for collaboration.

And just to top it all off, I also have Server 2008 with 1GB RAM for .Net development. All 3 running concurrently takes cpu usage to around 70%.

Used to use VMWare Workstation 4 and 5 for Linux then more recently VMWare Server for Windows. Stopped using VMWare when they moved to web based management console and found remote console performance too slow for my liking.

Did have real problems with VBox prior to v3 with networking. Was causing problems with our remote control app DameWare Remote running in XP. Version 3 resolved that issue so I'm happy.

For VM migration we use rsync to copy the currently running VM and config files to a spare server. When required we boot off the copy. Windows likes to perform a disk scan of the virtual disk on first use then runs happily afterward.

I've used VMWare (workstation) for years on XP host with Linux guests, since v1.0. It is outstanding. At my current employer, they're kind of cheap and opt for OSS tools whenever possible (good for the movement, bad for me ;-) ). So we use VirtualBox.

In general it's fine for running a LAMP development VM on my XP host. I notice no real issues. However, the VMWare networking seems to be flawless and everything works fantastic. Virtualbox, I can't seem to use a 'internal' mode (didn't try Host-only). My host can't connect to the VM. I have to use 'bridged'. Not such a big deal as it makes it easy for co-workers to connect to my VM too.

The biggest annoyance -- and it's a HUGE one -- is that you can't just zip up a directory of files like you can on VMWare. The virtual disks are separate from the virtual machines and all mapped in some XML file. ugh. This makes copying an entire VM from one machine to another a real PITA. I get some of the logic and flexibility of Sun's way, but honestly I think the pain isn't worth the benefit. Converting to .ovf isn't much help either. And ironically it seems to make a .vmdk file -- exactly what VMWare uses, so why not just do that in the first place!?

Overall VMware seems more polished, picture snapshots are great, recording video and screenshots are great. Multiple snapshots seems like a great idea, but honestly, I've never really used them much. They're too painfully slow to manage once you get a few. Deleting and consolidating is an exercise in patience and disk thrashing.

The one thing I WISH VMWare would do (or stop doing depending on how you look at it), is NOT load my XP up with 5 different services ALWAYS. They should load up when I launch VMWare, not sit there running and chewing up RAM/CPU when I'm not using a VM. It's stupid. I have a .bat script that I have to replace the icon launcher with every time I install it (which launches the services), and manually go tweak the services to stop running on startup.

Oh yeah, it would be great if BOTH of these guys would make the .vmdks (or .vdi for that matter) SHRINK too. It sucks that they only GROW LARGER. I want them to be more intelligent/dynamic. If I delete 5 GB worth of stuff from the VM, then my disk image should shrink by 5GB. Instead it stays the same! LAME. You have to jump through all these hoops to manually shrink them. And if you're using a Linux guest, then it's extremely cumbersome -- often times requiring setting up a new VM image and dd or tar or something into the new image. Grrrr.

In any event Virtual Machines are simply a modern miracle. It blows my mind every time I use one.

I believe that VirtualBox supports something called Shared Folders. This is a functionality to "share" folders between the host and the guest, so directories from the host can be modified on the guest and vice versa. To transfer files from the guest to the host and back, it is as easy as copying and pasting into some folder.

I had high hopes for VirtualBox but was dissapointed by several things. VirtualBox is unusable for anything as serious as a simple LAN server deployment because they keep steaming ahead with fancy new features like OpenGL while in their "stable" release basics such as snapshotting don't work (maybe that's fixed now, it wasn't the only thing). They just need a Debian-style release cycle. It's not helping that they rename all the commands and syntax so often and there is insufficient documentation for them. Doing anything beyond the basics--e.g. networking--is just far too much effort. And even if you get it working, I can't trust it is going to be stable the way they release it, therefore I can't deploy it except on my desktop. The licence model of free vs. OSE is misleading and makes installs and maintenance annoying. Last I checked Sun isn't offering any support yet. Don't mean to be a Negative Nellie on VBox but it can't be taken very seriously yet; I hope they can sort some of their issues out soon to provide a real alternative to VMWare which is still the only realistic choice.

The review seemed biased even to someone like me who has very limited experience with virtualization. It almost seemed like a VirtualBox promotional campaign. I fail to see why VBox got more points than VMWare. Though I would like to see KVM mature quickly to something more substantial but before that, after trying both products, I cannot see VBox preferred over VMWare.

You article suggests that Virtualbox is not in the standard Ubuntu repositories. In fact, the Open Source Edition (OSE) *is* in the standard repo's (it's in the "universe" section). I use VB-OSE to run Winders, when I have to.

But if you need USB support, you'll have to download the package from Sun.