Understanding and Installing VMware Tools
A key area where VMware Server differs from many other virtualization solutions is the ability to install tools (known as VMware Tools) onto the guest operating system. VMware Tools are available for Windows, Linux, FreeBSD and Netware guest operating systems and are designed to both improve the functionality of the guest within the virtual machine environment, and to enhance interaction between the guest and the host.
An Overview of VMware Tools
The VMware Tools package comprises four categories of utilities, each of which performs one or more specific purposes:
VMware Device Drivers
VMware Server presents the physical host hardware to the guest operating system as virtual devices. For example, whilst the host computer may have an Intel Gigabit Ethernet Adapter installed, the virtual network adapters presented to a 32-bit guest operating system appear as AMD PCnet‐PCI II devices. In order to ensure optimal performance of the guest in relation to these virtual devices, VMware Tools includes device drivers for each device category. These device drivers are so important, in fact, that without VMware Tools installed, the guest operating system may be unable to establish a network connection (currently the case with Windows Server 2008) because it lacks a built-in driver for the AMD network adapter, or drive the VMware Remote Console at anything above a rudimentary screen resolution. Installation of VMware Tools avoids these and other driver compatibility problems.
VMware Tools Service
The VMware Tools Service is a process which runs in the background of the guest operating system performing a multitude of different functions. This process is named VMwareService.exe on Windows and vmware-guestd on Linux and UNIX based operating systems.
One of the most important, yet least visible, functions of the VMware Tools Service is to send regular heartbeat messages to VMware Server so that it can detect (via the lack of heartbeats) when a particular virtual machine, or its respective guest operating system, has failed.
Another responsibility of VMware Tools Service involves the handling of communication between the guest and host operating systems. It is not too unrealistic to make the statement that none of today's popular operating systems have been written specifically to run within a VMware Server virtual machine. As such, none of these guest operating systems are designed to accept and respond to any form of communication from the VMware Server environment. Whilst this isn't generally problem, an issue arises when we consider that the VI Web Access management interface provides the ability to power off, restart and suspend guest operating systems at the press of a tool bar button or menu option, avoiding the need to open a VMware Remote Console session, log into the guest operating system and perform an orderly shutdown or reboot. Since there is no mechanism built into most operating systems that would allow VMware Server to request a clean shutdown or restart, this functionality is instead provided by the VMware Tools Service. When a user, for example, restarts a virtual machine from the VI Web Access management interface, VMware Server notifies the VMware Tools Service running on the guest operating system, which in turn executes the commands necessary to perform a clean and orderly shutdown or restart. In addition, VMware Tools Service also provides a mechanism for administrators to configure custom scripts to be executed within the guest operating system when the power state of the underlying virtual machine changes. This particular topic will be covered in greater detail later in this chapter.
In another example of communication, VMware Tools Service is also responsible for ensuring that the system time of the host and guest operating systems are synchronized.
Some cosmetic and Windows specific features of VMware Tools Services include the automatic grabbing and releasing of the mouse pointer when it moves in and out of the VMware Remote Console window, and the matching of guest and host screen resolutions. On Linux and Solaris systems, these functions are performed by the VMware User Process.
VMware User Process
As with the VMware Tools Service, the VMware User Process (VMwareUser.exe on Windows and vmware-user on Linux, FreeBSD and Solaris) runs as a background process and is essentially invisible to the user of the guest operating system. On guest operating systems which use the X11 session manager (i.e non-Windows systems), the VMware User Process is started automatically and an X Window session is started. On X Window based systems which do not use a session manager, the VMware User Process may be manually invoked by running the following command:
or by adding the command to the user's .xinitrc X initialization file.
On Linux, FreeBSD and Windows and UNIX based guests, the VMware User Process provides the ability to cut and paste text between the VMware Remote Console and the host operating system desktop environment.
The VMware User Process also provides the mouse pointer and screen resolution functionality provided by the VMware Tools Service on Windows.
VMware Tools Control Panel
The VMware Tools Control panel, which will be covered in more detail later in this chapter, provides a user friendly central location within the guest operating system for changing settings relating to VMware Tools and performing tasks such as shrinking the size of virtual disks attached to the guest's virtual machine.