Virtualization on the Linux Desktop
As a Linux power user, administrator and developer, I spend a lot of time working with Virtual Machines. Both at home and in the datacenter. I’ve experimented with most of the mainstream HyperVisors currently available (xen, kvm, virtualbox, vmware). In the datacenter, Virtual Iron was my preferred platform. A xen based hypervisor with a Java based set of Management Tools, and a great set of features at 1/2 the cost of VMware. Now that the evil empire of Oracle has acquired and crushed the product, we were left with little choice but to consolidate onto VMware. Oh sure, there was OracleVM, XenSource, and Red Hat’s new RHEV platform. we could have looked at Parallels or some other obscure new solution. But at the end of the day, the tried and true VMware is what all companies seem to choose based on brand recognition.
Most of the above mentioned Hypervisors are great for datacenter loads or server deployments with their expensive price tags, management tools, and optimization for servers. But what about the desktop user? While I love my Linode.com VM, its great for testing pre-production deployments and for testing scale of an application outside of the local workstation, but not cost effective when I want to have lots of RAM for a short period of time, or need more disc space on the fly. For Linux Desktop users, there are a few choices available. VirtualBox, KVM, XEN, and VMware Workstation.
Let me preface the remainder of this article by saying that I am approaching this topic from the perspective of the following criteria:
- User experience across any distribution
- Ease of Install and VM Creation
- Completeness of graphical interfaces
- Impact to Operating System as a whole (kernel drivers, package manager, etc)
VMware Workstation
I’ll start with VMware Workstation. This is a commercial product that does cost $$$, however, it has several advantages over its free version cousin (VMware Free Server – see vmware’s website for comparison). Updates are released relatively frequently to fix bugs and keep up with the changes in the vmware kernel drivers. Although easy to use and fast, VMware can be a challenge to manage depending on the Linux distribution you are using. On ArchLinux, the tarball based installer works fine, but due to the cutting edge nature of Arch, there comes a time when trying to stay current can break your VMware install or things start to get buggy. The same can be true with Ubuntu or its derivatives such as Linux Mint where one day a kernel upgrade happens and the vmware host tool files stop compiling. Typically a search on a set of Forums will find the answer, but its a hassle none-the-less. Other weird problems I have come across is issues with Keyboard such as not being able to type inside of the VM, or the caps lock being stuck or reversed between the Host and Guest OS.
Conclusion: Overall, VMware Workstation is a great product if you don’t mind paying for each major version that gets released. VMware as a company definitly understands Linux and even has open-source versions of the tools. Although annoying at times, it performs well, and has a great set of features and tools out the box.
VirtualBox
VirtualBox is probably my favorite. Its got a great set of tools, a complete GUI interface, Conversion Utility, packages for multiple distros, well documented, and best of all FREE. This was a great acquisition by Sun and even smarter to keep open-source. Lets hope the Oracle will keep their greedy destructive hands off this product. I have tested almost every OS on Virtual Box to ensure its compatibility. This includes (BeOSR5, WindowsXP, Windows2003, Windows2008, Linux (various distros), OS/2-warp, Ecomstation, Minix, HaikuOS, Plan9, HelenOS, etc…). Overall with positive results. I had only issues with OS/2 & Minix crashing either during boot or installation.
If running a distro such as Ubuntu or Mint that supports DKMS, then VirtualBox will try to keep its kernel updated during package updates of your system. There were easy instructions on the Virtual Box site on how-to install for each distribution where a binary is available. Although not configured out of the box, Bridge networking can be setup for your Guest VMs.
Conclusion: Best Desktop Virtualization solution for Linux Users.
XEN
Xen is a great Hypervisor. Another to fall into the large of a Corporation (Citrix). Although there are tools available to manage XEN VM’s, it seems there are no standards around it. There’s libvirtd, Virt-Viewer, Virt-Manager, oVirt, the list goes on. Of course there is also commercial versions available from Citrix, but not without a cost. My biggest complaint with XEN is that is a patch to the linux kernel. So unless your distro provides a pre-built xen kernel you might be spending time compiling a custom kernel.
Conclusion: XEN is great for datacenter purposes and the advanced linux user across the board. Distros that include XEN management tools such as SuSE or Fedora.
KVM
The latest entry into the Hypervisor realm for Linux. Introduced into the Mainstream vanilla linux kernel around 2.6.21, KVM is a KLM or kernel loadable module that may be inserted anytime to enable access to the Virtualization Extensions provided by a CPU. KVM was written by Quamranet, later acquired by Red Hat, as an answer to the XEN acquisition by Citrix. KVM is based around the QEMU emulator and the work done in the k-qemu project to merge an open-source virtualization driver into the Linux kernel. Many of the open-source tools that were written to work with xen have been updated to also work with KVM, such as Virt-Manager, Libvirt, Virt-Viewer, oVirt, and several others. KVM has accelerated drivers known as “virt-io” which provided better access/performance for block and network devices. KVM is compatible with almost all Linux distributions and most versions of Windows including Windows-7.
I recently tried to switch to using KVM fulltime after I encountered problems with my VMware workstation installation. Running on ArchLinux, I was unable to get the libvirt/virt-manager to work without crashing. So I instead wrote a set of scripts to start the Virtual Machines manually using a terminal window. This was a good experience as I was able to understand more about the command switches of the qemu-kvm commands, the differences in displays (cirrus, vga, vnc) as far as resolutions and emulation are concerned, and the challenges of getting virt-io drivers to install onto Windows-7. I have found Windows-7 to run very slowly on KVM. This conclusion is based on several different types hardware including workstation class Intel & AMD systems, and several laptops. I also run Virt-Manager on a Linux Mint 8 workstation and have no problems on that distro as far as the stability of the program or GUI is concerned. Linux runs extremely fast inside as a KVM Virtual Machine.
Conclusion: KVM is an excellent hypervisor with lots of potential for the desktop. More improvements in the area of graphics performance, and the desktop tools are needed. Red Hat recently launched the RHEV platform and is sponsoring an opensource project known as Delta Cloud. This commitment from Red Hat to develop KVM and push Virtualization on the server side will certainly lead to vast improvements for server workloads for windows server and linux server platforms.

