Once strictly the domain of software developers and QA engineers, personal and small-business virtualization products are now becoming an attractive solution for entry-level systems consolidation and foreign OS compatibility applications. These solutions run on host operating systems which do not require the overhead or usual high entry cost of professional hypervisor-based solutions, such as VMWare ESX Server, Microsoft Hyper-V, Virtual Iron, Citrix XenServer, Red Hat Enterprise Linux, SUSE Linux Enterprise Server, Oracle VM and Sun xVM Server, all of which with the exception of the first two are based on the open source Xen hypervisor.
The market leader in this SMB/Personal virtualization space has traditionally been VMWare, which released the very first commercial x86 desktop virtualization product, Workstation 1.0, in 1999. Version 6 of Workstation, which features a portable virtualization "engine" that is used in all of VMWare's host-based virtualization products, was released in late 2007, followed soon VMWare Fusion, a Macintosh version of Workstation. In 2006 VMWare released VMWare Player, a runtime distributable version which permitted any user on a Windows or Linux platform to run self-contained "virtual appliances" created in VMWare GSX Server, VMWare Workstation, or ESX Server. In 2006 VMWare also released Server 1.0 , a free version of its legacy VMWare GSX Server product, which used to be sold for approximately $1000 a copy.
The free personal/SMB virtualization landscape became further complicated with Microsoft's acquisition of Connectix Virtual PC, which later formed the basis of Microsoft's free Virtual Server product. In late 2007, SWSoft, the creators of the Virtuozzo enterprise container virtualization product, purchased Parallels, another independent virtualization product, and shortly after renamed the merged company as Parallels. This was soon followed in February 2008 by Sun Microsystems' purchase of Innotek, the creators of the VirtualBox host-based virtualization solution, in order to help fill out its xVM product line.second beta of VMWare Server 2.0. As both of these products are free and are addressing a similar market, we thought it would be a good idea to check both of them out and see how they stack up against each other.
Sun xVM VirtualBox 1.6
xVM VirtualBox has the clear advantage of being the only free personal/SMB virtualization product that runs on all the major computing platforms - Windows, Linux, Mac, and Solaris. This is due to the fact that many of its components are written in a cross-platform GUI development library, Nokia/Trolltech's Qt, which is best known for its use in the KDE Linux desktop and the Opera web browser. The interface is identical in all the environments and has a consistent look and feel, and all the virtual machines created in each platform independent version are compatible with each other. The software is also extremely light, weighing in at only a 22MB download.
We tested xVM VirtualBox 1.6 on both Windows and Linux systems. On Windows, setup is extremely easy, which involves clicking on a single .MSI file. Creating a virtual machine is wizard-based and involves creating a virtual disk file, choosing a boot medium (physical CD/DVD or .ISO file) selecting memory usage, enabling a network adapter, and choosing optional device support, such as USB and audio. The Linux setup is almost as easy, but requires downloading a version specific to your exact Linux distribution, and using the native package management format of your specific version of Linux. For our tests, we used Ubuntu Hardy Heron 8.04 as the host operating system. We downloaded the Ubuntu Hardy Heron version of VirtualBox and double-clicked on it in the GNOME interface to install it, and were prompted for the administrative password to confirm.
Overall we found VirtualBox xVM performance to be excellent, especially when loaded on a 64-bit machine with AMD or Intel virtualization acceleration enabled. However, even software-based virtualization on 32-bit systems running 32-bit virtualized OSes ran acceptably. While the software could run on as little on a system as little as 1GB of RAM running a single 512MB VM, we would recommend a minimum of 2GB on the host machine for predictable performance using 512MB or 1024MB VMs. Like VMWare, VirtualBox comes with its own set of integration tools which can be installed on the guest OSes to improve performance. VirtualBox also supports Virtual Machine formats of competitive products, such as Microsoft's Virtual Server and VMWare. Be advised that if you do port one of your older VMs over, you'll want to remove the "tools" (paravirtualized device drivers) from the guest OS install before running them in VirtualBox, or you will run into a number of compatibility problems.
While VirtualBox is primarily intended for Workstation use, it can be used in a "Server" role and GUI-less by running in a special command-line invoked mode. VirtualBox contains its own RDP server, so any client equipped with an RDP client -- that means anyone with the Windows Terminal Server client installed or the Linux "tsclient" program can access a Virtual Machine remotely. However, in order to be accessible to remote machines without doing complex port forwarding thru ipchains, VirtualBox has to run VMs in a "Bridged" network mode where each VM gets a unique IP address rather than the default "NAT" mode where the host interface is shared and the address for the VM exists behind a non-accessible network. In Windows, this is as easy as clicking on "add new host interface". On Linux, this is somewhat more complicated, as each Linux distribution handles interface bridging differently. You'll want to consult the very excellent PDF documentation that comes with the product if you want to get this feature to work properly on a Linux machine.
VMWare Server 2.0 Beta 2
VMWare Server 2.0 is a significant departure from previous versions of the Server product, in that everything in this version is entirely web-based. Once installed on a host system, absolutely everything from an administrative standpoint is performed thru a browser. For many of us who were used to the native VMWare Server Console for Windows and Linux in version 1.0 and were exposed to the first Server 2.0 beta, this was perceived as a particularly stupid move, as initial performance and usability was absolutely horrible. Some of us even called for the programmers to be thrown into a volcano and a return to the old ways of the Force, and vowed to never use the product again until they switched back to a more traditional interface. VMWare assured us at the time that they were listening to our feedback, and that performance would improve, and we would soon "get" what they were trying to do.
Enter Beta 2 of Server 2.0. As fate would have it, the product significantly improved. After reviewing a number of design flaws, the programmers decided to go with a hybrid approach, where the VM provisioning and management interface was web-based, but the actual console was native, as a browser-launched plugin module on Windows and Linux. Performance under 2.0 beta 2 is now as good or better than Server 1.0, and the decoupling of the native VMWare Server client and moving to a web interface (which appears to be programmed in Ajax) now allows for more flexibility and lighter client payload on the administrative side.
However, all this Web 2.0 goodness comes with a price -- heft. Server 2.0 beta 2 weighs in at a mammoth 450MB download, and requires a fairly serious box to run with good performance. For our tests, we used a dual-core Athlon 64 X2 5000 ASUS mainboard-based PC clone with 2GB RAM, and an IBM xSeries 1U server with twin dual Xeon 3.6gGhz processors with 4GB of RAM, using the 64-bit version of CentOS 5 (a free identical clone of RHEL 5) as the host operating system. VMWare Server 2.0 also comes in a Windows version, but this version was not tested due to time constraints, and the web UI is identical regardless of what client is used. Performance on the 4GB system was excellent, and quite fast when we doubled the host memory to 8GB, but we started to see some scalability and response issues on the 2GB machine with 1024MB VMs. Additionally, we found that the only reliable browsers to use as the administrative client were the beta and release candidate versions of Firefox 3 -- Firefox 2 and Internet Explorer 7 seemed a bit glitchy with all the Ajax components of the new Web UI.
Setup on VMWare Server 2.0 on the host operating system, as with all previous versions, requires that you either use a Linux OS that has supported pre-built kernel modules built into VMWare Server 2.0's installer program, or you have the kernel sources and other key dependencies installed so that the various VMWare Server modules can be compiled. On an unpatched CentOS 5 or RHEL base OS, the kernel modules are already supported out of the box. However, should you upgrade your kernel via the "yum" on CentOS or via Red Hat Network this requires that the "gcc", "make" and "kernel-source" packages are installed prior to running the VMWare installation. The same goes for SUSE OSes. For Ubuntu guests, the "build-essential" meta package as well as "kernel-headers" needs to be installed. It should be noted that each time the kernel on the host OS is upgraded from the supported stock kernels in the vmware-server-distrib directory, the VMWare installer script needs to be re-run with these pre-requisites installed in order to recompile the key support modules. The above is also true for all guest Linux OSes running the VMWare Tools. Windows and Solaris guest tool installs are less complicated, as there is little kernel variation on these systems and the tools installer is able to deal with them out of the box.
Both xVM VirtualBox 1.6 and VMWare Server 2.0 are excellent free SMB/Personal virtualization solutions, each with its own set of advantages and disadvantages. VirtualBox has the widest range of host system support and has the lightest hardware demands, and excels for single PC personal virtualization needs, but requires more UNIX/Linux command-line skills when used as server virtualization solution. VMWare 2.0 has an excellent web-management UI with the lightest client payload, but this comes at the expense of heftier hardware requirements for good performance and a fatter software drop on the server.
Our verdict? We like both, and feel each will carve out its own specific niche. Ultimately, we'd like to see xVM VirtualBox with more user-friendly remote management capabilities, and we'd like to see VMWare Server 2.0 go on something of a diet and become more compatible with the wider base of installed browsers. Additionally, I'd like to finally see some fruit from the labor being put into the openvmtools project and get the VMWare tools built into the upstream kernel so this constant recompiling business with the kernel upgrades gets put to rest. But if this is what you have to put up with as an early adopter when you use a free host-based virtualization solution, I'm perfectly happy with either of the two.
What's your take on the two host-based virtualization contenders? Talk Back and let me know.