VMWare Server 2 finally goes gold

On September 23 after a year of public development VMWare Server 2.0 was officially released. Server is VMWare's free, entry-level, server-centric hypervisor. Unlike VMWare's other server virtualisation products ESX and ESXi, Server must be pre-installed onto a host operating system (Windows or Linux). This adds a management and performance overhead, which for some is incentive enough to choose VMWare's more costlier offerings (or explore Xen). However if you are looking to easily virtualise a handful of servers and do not mind a small performance hit, VMWare Server is a great place to begin.

In comparison to VMWare Server 1 (a.k.a GSX) this new release appears to be a complete rewrite. However when first announced the new version received a mixed response as many existing users viewed it as slow, bloated and buggy compared to its predecessor. Ignoring the bugs which come with any beta-quality code, the majority of this criticism fell into two areas: the new web-based management console and a 500MB+ download (up from ~100MB).

Web-centric virtualisation management

Without a doubt the most controversial aspect of VMWare Server 2 is its focus on a web-based management console. In the previous release management was primarily conducted through a Windows-only client with a token web interface provided to view what was running. This new interface enables all of the hypervisor's functionality to be managed and monitored from any modern, Javascript-enabled browser. The only cavet being that virtual machine console access requires an ActiveX or Firefox extension (Windows/Linux only). Process-wise this is a little disjointed as a browser restart is needed when this extension is first installed. Whilst not a major problem this two-step process does take the shine from being able to manage your virtual infrastructure from 'any' computer.

As an aside given the variety of Java-based SSH, VNC and remote client applets it is a little surprising to see VMWare go the ActiveX/Firefox extension route. Whilst I have not tried the ActiveX control, the Firefox extension is large and feels sluggish when running in both Windows and Linux. Still the ability to setup and manage VMWare from something other than Windows is a definite bonus. However as an OSX user it would be nice to see VMWare management support on this platform as well.

But wait, VI Client to the rescue

If you are used to a traditional Windows client or just cannot stand the new web interface you will be glad to hear it is possible to manage Server 2 from the Virtual Infrastructure Client. The VI Client is very polished and feels far more responsive than the web interface for administration and console tasks. It also comes with some very nice realtime monitoring tools that graph hardware utilisation at a VM and host level. Whilst personal preference, if you manage VMWare from Windows I suggest ignoring the web interface altogether and heading straight to the VI Client.

Server 2 comes with the VI Client which can be downloaded from: http://your.vmware.server/client/VMware-viclient.exe.

Does a 500MB download represent a bloated hypervisor?

The five fold jump in installer size gave many the impression that the new hypervisor would leave no free resources for the virtual machines it was intended to run. In reality this is far from the case, with the increased download size attributable an enhanced feature-set and broader guest operating system support. The installer size is also not helped by the packaging all software dependencies such as Java, Tomcat and VIX rather than relying on these to be installed independently.

The end result is that an installation of VMWare Server 2 will consume more disk space than its predecessor, but it does not use excessive amounts of CPU or memory. For example the primary 'vmware-hostd' process consumes approximately 130MB of memory and the Java web console 64MB. Assuming you are running a slim host O/S such as Ubuntu 8.04 Server this leaves plenty of memory and CPU cycles for virtual machines.

Ubuntu Server, the perfect VMWare host

For the last six months I have had great success with Ubuntu Server 8.04 as the host operating system. The default installation of Ubuntu Server is very light-weight and has extensive hardware support. To top it off Ubuntu 8.04 is a Long Term Release (LTS) which is supported by Canonical until 2013. VMWare Server 2 comes with pre-compiled kernel modules for Ubuntu 8.04 making installation a breeze. The only thing you need to do prior to installing VMWare Server is install the make package:

sudo apt-get install make

Whilst nothing needs to be compiled for VMWare Server to run, the installer does not like it when the make tool is not present. Apart from this minor distraction installation goes smoothly on both 32bit and 64bit variants of Ubuntu & VMWare Server.

A couple of VMWare tips

1. Keep your host machine 'clean'

For best performance only run the bare minimum on the host operating system. If possible stick to a cut down server O/S like Ubuntu Server instead of Windows or a full blown X-Windows Linux install.

2. Run optimised kernels on Linux virtual machines

The 2.6 Linux kernel introduced a 1000Hz clock ticker that is great for desktop performance but a drain on a hypervisor. Not only does this degrade overall performance but it can lead to weird (fast or slow) clocks in the virtual machines themselves. VMWare is optimised for a 100Hz clock so try to run a kernel optimised for virutalisation or set the following kernel parameters: "clock=pmtmr divider=10".

For example if you are using Grub as your Linux virtual machine's bootloader it would look something like this:
/boot/grub/menu.lst (in this example a Centos 5.2 VM)

default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.18-92.1.13.el5)
root (hd0,0)
kernel /vmlinuz-2.6.18-92.1.13.el5 ro root=/dev/VolGroup00/LogVol00 clock=pmtmr divider=10
initrd /initrd-2.6.18-92.1.13.el5.img

* divider=10 instructs a 2.6 Linux kernel to check the hardware clock every 100Hz (1000Hz/10).

3. Install VMWare Tools

Take the time to install VMWare Tools on each of your virtual machines. This package has a decent network driver that removes some of the shortcomings of using a virtualised network interface. If you are running virtual machines with a graphical interface (i.e. Windows) you will also notice significantly improved performance.

4. Always use SCSI hard drive controllers in your virtual machines

Whilst it is possible to define an IDE hard drive controller within your virtual machine you run the risk of encountering issues when migrating from VMWare Server to ESX/ESXi. This is not an issue if you will only ever be using VMWare Server, but to be sure just stick to the default SCSI controller.

5. Do not overload RAM

Whilst it is possible to allocate more virtual RAM than your server actually has this is not a good idea. Hard drive access is far slower than memory, so if possible do not impose this bottleneck on your virtual machines.

Conclusion

VMWare Server 2.0 has come a long way since its early beta releases. Virtual machine performance is very good especially once VMWare Tools is installed and the kernel optimised (if Linux). A lot of work has obviously gone into the web interface and although it is not mind-blowing it does work pretty well. However if you are managing your VMWare infrastructure with Windows you will find the VI Client is superior in terms of functionality and performance. Overall for a free (as in beer) hypervisor VMWare Server 2.0 provides a simple and reliable introduction to virtualisation. Also its compatability with VMWare's Virtual Intrastructure ensures that it is easy (but not cheap) to scale your virtual machines well beyond one or two physical hosts.