VMWare Server Beta Review

Update: VMWare Server 2.0 review

VMWare’s web site boasts of a case study where AXA saved $550k in hardware through virtualization. With savings like that, one cannot ignore virtualization, especially given that VMWare Server Beta (download) is now free. VMWare Player is still free, and this review aims to cover the differences between the Player and VMWare Server. There are some security issues that you should also be aware of.

Downloading

VMWare server is large. It is 140Mb compared to VMWare Player (40 Mb). The download is much bigger because it includes Server Management console, which can connect to VMs running on other hosts. It also includes sophisticated tools for creating virtual networks, which allow you to set up test environments which are isolated from the rest of your network. On top of it, the installation gives you scripting APIs so that you can manipulate your guest VMs in Perl or VBScript.

Installation

Installation was straightforward, although I’m not entirely pleased that the installer put two icons on my already cluttered desktop without asking. They have been promptly dispatched into the Recycle Bin. There was an option of installing additional management tools. Unfortunately it requires IIS to be installed. No go for me.

Security

Looking through the documentation, you can’t have VMWare player and VMWare server installed on the same machine. Make sure you install the beta on a firewalled machine. The beta ships with denial of service vulnerabilities in the linked OpenSSL libraries CAN-2004-0079, CAN-2004-0112, and CAN-2004-0081.

VMWare Server Console

The most visible difference of Server as opposed to Player is in the VMWare Server Console (see screenshot).
VMWare Server Console

As can be inferred from the Server moniker, the product is intended for hosting several instances of VMs. You can create new VM images with VMware Server, unlike VMware Player, where one has to resort to using QEmu to set up a basic virtual disk.

Note the Switch Host option on the console, which allows you to connect to remote VMWare Servers to manage VMs running on that machine.

A less visible extra that the Server installation included is COM interfaces for managing the VMs. Running up VB6 shows up five new type libraries. I will cover these later:

  1. vmappsdk 6.0 vmappsdk.dll (VMWare Server directory)
  2. vmdbCOM 6.0 vmdbCOM.dll (VMWare Server directory)
  3. vmserverdWin32 1.0 vmserverdWin32.exe (VMWare Server directory)
  4. VMware net 1.0 vmnetbridge.dll (Windows\System)
  5. VMware VmCOM 1.0 (VMware VmCOM Scripting API)

The technical documentation for VMware Server beta is incomplete, but the website advises that one "can use the documentation for VMware GSX Server as a guide", so I guess that VMware Server is a new release of GSX server.

Installing a new OS

P2V Assistant, a tool used to rehost legacy systems in a virtual environment is not free. Given that installing a new operating system is as exciting as visiting a family dentist, I decided to run a prebuilt machine from one of the many on the Virtual Machine Center. I wish Microsoft could make it easier to install their OSes (Note to self: check out Unattended Window Installation).

Luckily, Debian server-based software downloaded quickly (180 Mb for an OpenACS image, with PostgreSQL installed and configured. What can I say? Sweet).

Running as a service

VMWare Player is not useful for running a production server, because the GuestOS is running as a foreground application. When the current user logs out, the GuestOS is shut down as well. VMWare Server automatically alerts the user that the Guest OS will be shutdown when user logs out, and offers to run the VM as a service instead.

Scripting interface

This section is more of interest to developers. Feel free to skip to the next section.

Unfortunately, the VMWare Server beta did not included any documentation on the scripting APIs. The VMWare Scripting API documentation is available on the web (1.2Mb PDF).

There is a sample VB program with source, installed on

C:\Program Files\VMware\VMware VmCOM Scripting API\MiniMUI

Looking through the sample and the class library, the interface is pretty basic.

set vm = new VmCtl
set cred = new VmConnectParams
cred.hostname = "localhost"
cred.username = "myuser"
cred.password = "pw"
vm.Connect cred, "my_vm_name"
vm.Start
vm.Suspend
vm.Stop
vm.Reset
vm.Heartbeat ' Interesting !

There are also a few crude properties and methods to interact with the prompts such as PendingQuestion and AnswerQuestion. Not a real problem, but could have been a bit cleaner though.

The VMServer daemon type library - vmserverdWin32

I was hoping to get something meaty from this interface. Using the VB Object Browser, I observed that

vmserverdWin32

didn’t expose any public classes or methods. Shucks. I guess the server itself wasn’t meant to be scripted directly.

Getting to know VMWare better

If you are interested in deployment considerations for VMWare, I have catalogued a few useful resources from the VMWare site.

2 Responses to “VMWare Server Beta Review”

  1. Chui’s counterpoint » Blog Archive » VMWare Deployment Considerations writes:

    [...] (Read VMWare Server Review) [...]

  2. Jeffrey writes:

    Nice and quick review. It atleast broke down a quick and dirty difference between Player and Server. Although I would have liked to see a performance difference.