Virtualization for Linux (VMware vs VirtualBox vs KVM vs ...)? [closed]

I'm trying to decide on which of these to use. The ones I know about are:

  • VMware (various flavours);
  • VirtualBox;
  • KVM.

Now ideally I'd like the following features:

  • Ideally to be able to boot a real partition rather than a file representing a virtual hard disk (so it's readable and writable by the host OS);
  • Have good networking support (for example, setting up virtual interfaces for KVM such that they can use DHCP to get a "real" IP address was painful);
  • Has good performance, using the VT hardware support where available;
  • Supports 64-bit guests;
  • Has a good graphical administrator tool; and
  • Has good support for scripting guest creation.

Solution 1:

Virtualbox, VMWare Workstation/Player/Server, QEMU, User-mode-linux etc fall into one category of VM - they're hosted within an existing OS, such as windows or linux.

Xen, KVM, VMWare ESX, fall into a different category - they're hypervisor based virtualisation stacks. They still have an OS that gets booted first, but they operate at a fundamentally different layer.

As to which one suits you best, it depends on what want to do with them. If you want to run VMs on your workstation, for development or testing purposes, then one of the hosted platforms (Virtualbox, VMWare Workstation etc), is ideal.

If you actually want a dedicated server environment for production systems, then you should be looking at the second category of systems, as they offer more advanced features which you may want down the line (server pooling, shared storage, live migration, high availability)

Solution 2:

I'm pretty sure VirtualBox fits the bill for all of your criteria.

Solution 3:

Try Citrix XenServer (it's free!). We use it at work and it does the job really well. I've found it much faster than VMWare.

The only requirement from your list it doesn't fulfill is that you need a separate machine as a VM server. Then you can connect to the machines over the network using XenCenter admin console, which is very similar to VMWare one. The console is available for Windows, don't know about linux as I use Windows as a client.