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.

KVM

KVM is the Kernel-based Virtual Machine, and it is a virtualization
technology that's fully open source and integrated into Linux. Ubuntu
ships its distribution to be KVM-ready out of the box, and several
other distros do as well. KVM isn't quite as simple as the other two
products...yet, but it is very capable.

Ease of Installation

KVM isn't as easy as VirtualBox or VMware to install. First, you must
ensure that your hardware is compatible with KVM. Although VirtualBox and
VMware will install on most machines with x86 processors, KVM
requires that the processor support Intel-VT or AMD-VT extensions, and
that those extensions are enabled in the BIOS. Once that's confirmed,
you need to install some packages. Because my host machine is Ubuntu
9.04, I just run apt-get:

The default network configuration in KVM is NAT. If you want to use
a bridged interface, you need to perform the additional step of
manually setting up a br0 device on the host machine. (See Resources
for a link to how to do this on an Ubuntu host.) You may need to do several
more steps, depending on what you're
trying to achieve.

Ease of installation score: 1. Compared to VMware and VirtualBox, KVM
requires way too much work. Setting up bridged networking should be
a drop-down in a dialog box and not require part of its own wiki page.

Administrative Tools

KVM's administration tool on Ubuntu is called virt-manager (Figure 5).
In order for virt-manager to address things like bridged interfaces correctly,
it should be run as root. virt-manager is fairly nice and easy to use,
and it presents you with a wizard-based interface for virtual machine
creation. Unfortunately, only the basics are supported for virtual machine
creation and configuration. KVM also allows you to get a console on the
virtual machine via the virt-manager tool, but it doesn't provide you
with headless RDP or VNC abilities like the others. To enable some of
the more-advanced features on your guest machines, you need to edit the
XML definitions for those VMs.

Figure 5. virt-manager in Action

Administrative tools score: 1. If it were possible to give a 1.75,
I would. The tools are adequate for the task but still need
a bit of work before I'd call them average.
However, KVM is a rapidly developing target,
so things most likely will improve with time.

Capabilities

KVM's capabilities aren't yet on a level with the other two packages
in this shootout. The framework for the functionality may be there,
in some cases, but it may be hard to configure and use. KVM doesn't
implement virtual USB ports or some of the other hardware that VMware
and VirtualBox do. The lack of a headless capability also limits its
usefulness in certain situations, such as a collocated environment.

Capabilities score: 2. KVM is adequate for most virtualization tasks, but
it doesn't particularly shine at any of them due to the current limitations
on what it can virtualize. The ability to have virtualized USB ports
and headless connection options would beneficial.

Licensing

KVM's shining point is its licensing
model. It's completely open
source—most parts are GPL or LGPL licenses. This means it's truly free (as in speech),
and your favorite Linux distributions are free to package it and ship
it as a ready-to-run feature.

Licensing score: 3. It's hard to beat open source.

KVM total score: 7.

Conclusion

And the winner is...VirtualBox! The combination of ease of installation,
its excellent feature set, top-notch admin tools and flexible licensing
nudged this contender ahead of the rest. Of course, any of these three tools
probably will meet your virtualization needs, but if you're starting
off fresh, give VirtualBox a try. You'll be pleasantly surprised, and
who knows...you may just start virtualizing everything!

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.