views:

523

answers:

3

What VM technologies exist for Linux, their pros and cons, and which is recommended for which application?

Since this kind of question can be asked for X other than "VM technologies for Linux", and since the answer changes with progress, I suggest to define a template for this kind of pages. Those pages will have the tag 'stateoftheart' and they will be revisited each month and each month there will be up-to-date list of technologies, up-to-date reviews and up-to-date recommendations.

A: 

2008 Oct

To be filled in at October to reflect the market status then.

2008 Sept

Products/services/technologies currently existing

  1. VMware
  2. Xen
  3. VirtualBox
  4. VServer
  5. ???

Comparisons

???

Recommendations for particular application areas

  1. Home multi-boot replacement
  2. Small business which has MS-Windows legacy applications
  3. Datacenter of multinational corporation
  4. ???
Omer Zak
I can't edit yet, so I'll comment on existing (no experience with them as yet):* QEMU* KVM (related to QEMU)* OpenVZ* VirtualBox/VirtualBox OSE
Michael Johnson
+4  A: 

This is a job for ... Wikipedia!

Now that the obvious stuff is out of the way...

Linux runs fine as a guest on every VM host I've used, so I'm going to assume that you're referring to Linux as the host operating system. I'm also going to assume x86 or amd64 hardware.

Platform virtualization breaks down into two major forms: Desktop virtualization and Server virtualization. Both types will allow you to load and run multiple OS instances as guests that virtualize their I/O through the host OS. Desktop virtualization concentrates on providing a highly interactive console experience for each of the guest VMs, while Server virtualization concentrates on maximizing computing performance, generally while sacrificing console services and more exotic devices (Sound cards, USB, etc.) Server virtualization implementations typically include either RDP or VNC for remote access to a virtual console.

On Linux, your choices for Desktop Virtualization include:

  • VMware Workstation -- it's commercial, somewhat expensive, mature, and provides the most hardware, device, and guest OS support of any solution.
  • VMware Player -- it's commercial (freeware) and only supports VMs that were created elsewhere. Available with Ubuntu.
  • Parallels Workstation -- it's commercial, somewhat expensive, and not up to par with VMware. Doesn't support 64-bit guests.
  • VirtualBox -- available in commercial (freeware) and community versions (GPL). Fedora's preferred solution.

On Linux, your choices for Server Virtualization include:

  • VMware Server -- it's commercial (freeware), mature, and provides the most hardware, device, and guest OS support of any solution. Available with Ubuntu.
  • Xen -- it's open source. A para-virtualization solution, it has only recently added hardware-virtualization, so Windows guest support depends upon specific CPU support.
  • Virtual Iron -- a commercialized version of Xen that adds native virtualization.
  • KVM -- it's open source. It depends upon QEMU for the last mile. Ubuntu's preferred solution.
  • Linux-VServer -- it's open source. It provides virtual jails based on the host OS kernel, so no Windows guests.

For myself, I stick with VMware Workstation (7+ years) and VMware Server for my Linux-hosted virtualization needs. At work, it's VMware Workstation (on Windows), VMware Server (on Windows), and VMware ESX (on bare metal). I'll probably have another look at Xen, KVM, and VirtualBox at some point, but for right now compatibility between work and home is paramount.

Craig Trader
Don't forget VMWare Server, which basically Workstation with the awesome cut out. You can still create and run VMs though, so it does most of what you need.
SCdF
I didn't forget it -- it's mentioned under Server virtualization.
Craig Trader
KVM is fine for desktops, so listing it only under "server virtualization" is misleading. (That said, its libvirt bindings along with all of KVM's flexibility make it exceptionally useful for automated-QA uses). Xen itself supports native virtualization, no addon needed.
Charles Duffy
Also, I strongly disagree that VMware Server "provides the most hardware, device and guest support". QEmu and its derivatives support non-x86 guests (though hardware acceleration is of course only available when guest and host are the same architecture), putting them in the lead by far.'
Charles Duffy
Remember the context of my response was x86/amd64 hardware.I was thinking of the ability to plug a USB device into the host and have it available in the VM. Does QEMU provide that?
Craig Trader
Yes, QEMU provides that, as do its derivatives such as KVM.
Charles Duffy
...further, KVM also has a PCI passthrough branch, allowing PCI cards on the host to be made directly available to the guest. Folks using Intel VT-d extensions have been able to get native performance with an Intel e1000 card when benchmarking this support.
Charles Duffy
A: 

W Craig Trader answer is great, but just to add there is also User-mode Linux (UML) which has been around for a while - it has been in the mainline kernel tree since 2.6.0 . Note that I haven't used it myself.

Ubuntu prefers KVM, and I believe Red Hat is moving to it over Xen now as well. Both KVM and Xen can be managed by libvirt, optionally through the virtual machine manager GUI. The virtual machine manager can manage remote instances through ssh connections.

In addition, a good comparison can be found here (pdf). Lots of performance tests done. The short version is that xen and linux-vserver were generally the best on performance grounds.

Hamish Downer