Understanding and Installing Hyper-V Integration Services
|Previous||Table of Contents|
|Migrating Hyper-V Virtual Machines Using Import/Export|
In An Overview of the Hyper-V Architecture, the significance of the relationship between the Hyper-V parent partition (in which the host instance of Windows Server 2008 runs) and the child partitions containing the guest operating systems was covered in detail. Given the importance of this relationship, it is clear that anything that enhances the level of communication between parent and child partitions will serve to improve the performance and manageability of the Hyper-V environment. This is where the Hyper-V Integration Services come into play.
The goal of this chapter of Hyper-V Essentials is to provide an overview of the Hyper-V Integration Services, provide a list of guest operating systems for which the services are available and, finally, cover the steps involved in installing the services on a guest operating system.
 An Overview of Hyper-V Integration Services
Hyper-V Integration Services consists of a package of services which, when installed on a Hyper-V guest operating system, improve the performance and manageability of that system running within a Hyper-V virtualization environment. In many respects, Hyper-V Integration Services are analogous to the VMware Tools package used to improve the interaction of guest operating systems within the VMware virtualization infrastructure.
The Hyper-V Integration Services provide a number of performance and usability enhancing features for Hyper-V based guest operating systems. These services are as follows:
- Virtual Machine Connection Enhancements - When the console of a guest operating system without Hyper-V Integration Services installed is accessed using the Virtual Machine Connection, clicking in the Virtual Machine Connection dialog locks the mouse pointer into that window. Focus may only be released by initiating a keyboard sequence (the default being Ctrl+Alt+Left Arrow). With Integration Services installed, however, the pointer focus is automatically assigned to and released from the Virtual Machine Connection window as the mouse pointer passes in and out of the window. This avoids the necessity to click in the window to assign focus and then press the keyboard sequence to subsequently return the focus to the local desktop.
- Virtual drivers and Hypervisor-aware Kernel - Allows the guest operating system to communicate directly with the parent partition over the VMBus when accessing devices and making I/O requests, thereby increasing performance of the guest operating system.
- Hyper-V Time Synchronization Service - The purpose of this service is to synchronize the system time between Hyper-V child and parent partitions (for a detailed description of child and parent partitions, read the chapter entitled An Overview of the Hyper-V Architecture). This synchronization is important to avoid potential time drift between the guest operating systems running in a child partitions and the Hyper-V parent partition.
- Hyper-V Heartbeat Service - The heartbeat service allows the parent partition to detect when a virtual machine has locked up, crashed or otherwise ceased to function. The parent partition sends heartbeat messages to the guest operating system at regular intervals. It is then the job of the Hyper-V Heartbeat Service installed on the guest operating system to send a response to each of these heartbeat messages. When the parent partition fails to receive responses from the child partition, it assumes that the child's Heartbeat Service, and therefore the guest operating system on which it is running, has encountered problems. The administrative services on the parent partition will subsequently log the event accordingly such that it is brought to the attention of a system administrator for corrective action to be taken.
- Hyper-V Shutdown Service - The Hyper-V Shutdown Service allows the guest operating system to be shut down cleanly using Hyper-V management interfaces (such as the Hyper-V Manager console and the Virtual Machine Manager), thereby avoiding the necessity to log into the guest operating console and manually initiate the shutdown procedure. As a typical example, when an administrator selects the Shutdown action for a virtual machine from with Hyper-V Manager, the parent partition communicates with the Hyper-V Shutdown Service running on the selected guest operating system to notify it of the request. The Shutdown Service then initiates the guest operating system's shut down process by making (in the case of Windows guests) standard Windows Management Instrumentation (WMI) calls.
- Hyper-V Volume Shadow-Copy Requestor - The Hyper-V Volume Shadow-Copy Service provides Volume Shadow Copy integration between Volume Shadow Copy enabled guest operating systems and the parent partition.
- Hyper-V Key/Value Pair Exchange - Provides the ability for the child and parent partitions to exchange configuration information through pre-defined registry entries in the guest operating system. In the case of the parent partition, it is able to view, set and delete registry entries in the child partition's guest operating system. In addition, the parent partition configures a number of registry entries into the guest's registry which serve to provide the guest with information about the parent partition and host system configuration. Additional information on the Hyper-V Key/Value Pair Exchange service is covered later in this chapter.
 Understanding Hyper-V Key/Value Pair Exchange
The Key/value pair exchange entries provided by the Hyper-V Key/Value Pair Exchange component of the Hyper-V Integration Services are stored on the guest operating system in the following registry locations:
* HKEY_LOCAL_MACHINE\Software\Microsoft\Virtual Machine\Auto * HKEY_LOCAL_MACHINE\Software\Microsoft\Virtual Machine\External * HKEY_LOCAL_MACHINE\Software\Microsoft\Virtual Machine\Guest\Parameters
Registry entries relating to the configuration of the child partition's guest operating system are located in HKEY_LOCAL_MACHINE\Software\Microsoft\Virtual Machine\Auto and are accessible to the parent partition. The specific registry entries are as outlined in the following table:
|OSMajorVersion||The guest operating system's major version number.|
|OSMinorVersion||The guest operating system's minor version number.|
|OSBuildNumber||The guest operating system's build number.|
|OSVersion||The guest operating system's version number.|
|OSPlatformId||The guest operating system's platform ID value.|
|CSDVersion||The most recent Service Pack applied to the guest operating system (e.g. Service pack 1)|
|ServicePackMajor||The major version number of the most recent Service Pack applied to the guest operating system (e.g. 1).|
|ServicePackMinor||The minor version number of the most recent Service Pack applied to the guest operating system (e.g. 0).|
|SuiteMask||The product suites installed on the guest system.|
|ProductType||Numerical value indicating the guest operating system product type installed in the child partition.|
|OSName||The name of the guest operating system installed in the child partition (e.g. Windows Server (R) 2008 Enterprise).|
|ProcessorArchitecture||Numerical value indicating processor architecture identifier|
|FullyQualifiedDomainName||The fully qualified DNS name that uniquely identifies the guest operating system's fully qualified domain DNS name.|
The following figure illustrates the above registry entries listed with the Registry Editor tool on a Windows Server 2008 Hyper-V guest:
In addition, the parent partition inserts the following information about itself into the HKEY_LOCAL_MACHINE\Software\Microsoft\Virtual Machine\Guest\Parameters of the guest operating system allowing the guest to obtain basic information about the host environment on which it is running:
|HostName||The domain name system (DNS) name of the operating system running in the Hyper-V parent partition.|
|PhysicalHostName||The non-fully qualified name of the operating system running in the Hyper-V parent partition.|
|PhysicalHostNameFullyQualified||The fully qualified name of the operating system running in the Hyper-V parent partition.|
|VirtualMachineName||The name of the virtual machine used by the virtualization stack.|
The following image illustrates the registry entries outlined in the above table viewed within the context of the guest operating systems registry editor:
 Supported Guest Operating Systems
It is important to note that the Hyper-V Integration Services are not available for all guest operating system types. In addition, for some supported guest operating systems only a subset of the full range of integration services is actually provided.
At present the only Integration Services packages supplied by Microsoft are for members of the Windows family of operating systems. It is anticipated that Microsoft will also release Integration Services for SUSE Enterprise Linux in conjunction with Novell and also Red hat Enterprise Linux. It is also likely that other operating system vendors will eventually develop Integration Services packages for their respective offerings.
The following table lists the platforms for which Hyper-V integration Services are supported, together with details of the individual services provided in each case:
|Windows Server 2008 x64||Time Synchronization, Heartbeat, Shutdown, Key/Value Pair Exchange, VSS|
|Windows Server 2008 x86||Time Synchronization, Heartbeat, Shutdown, Key/Value Pair Exchange, VSS|
|Windows Server 2003 x64 (SP2)||Time Synchronization, Heartbeat, Shutdown, Key/Value Pair Exchange, VSS|
|Windows Server 2003 x86 (SP2)||Time Synchronization, Heartbeat, Shutdown, Key/Value Pair Exchange, VSS|
|Windows 2000 Server (SP4)||Time Synchronization, Heartbeat, Shutdown, Key/Value Pair Exchange|
|Windows 2000 Advanced Server (SP4)||Time Synchronization, Heartbeat, Shutdown, Key/Value Pair Exchange|
|Windows Vista x64 (SP1)||Time Synchronization, Heartbeat, Shutdown, Key/Value Pair Exchange, VSS|
|Windows Vista x86 (SP1)||Time Synchronization, Heartbeat, Shutdown, Key/Value Pair Exchange, VSS|
|Windows XP x86 (SP2/SP3)||Time Synchronization, Heartbeat, Shutdown, Key/Value Pair Exchange|
|Windows XP x64 (SP2)||Time Synchronization, Heartbeat, Shutdown, Key/Value Pair Exchange|
 Installing Hyper-V Integrated Services
Before installing Hyper-V integration Services into a guest operating system it is important to understand that some Windows operating systems ship with Integration Services built in. Presently these operating systems are limited to Windows Vista and Windows Server 2008. These two operating systems are able to detect the presence of the Hyper-V hypervisor and activate the Integration Services accordingly. Obviously, any Windows release which pre-dates the release of Hyper-V will be unaware that it is running on a hypervisor.
Despite the above caveat, it is still worth re-installing the Hyper-V Integration Services even on Windows Server 2008 and Windows Vista guests. The reasons for doing so are two-fold. Firstly, integration services bundled with the guest operating system installation media may not be the latest shipping version. Secondly, the version of the Integration Services bundled with the current versions these operating systems do not include the Virtual Machine Connection enhancements outlined earlier in this chapter.
To install the Hyper-V Integration Services on a guest operating system, start the virtual machine, connect using the Virtual Machine Connection tool (for details on using the Virtual Machine Connection tool refer to the chapter entitled The Hyper-V Virtual Machine Connection Tool). Once the guest has booted, log in as a user with administrative privileges and then select the Action->Install Integration Services Setup Disk menu option from the Virtual Machine Connection tool interface. Once selected, Hyper-V will mount the ISO image of the Hyper-V Integrations Tool setup disk as a virtual CDROM on the guest's virtual machine. Assuming Autorun is enabled on the guest the operating system will prompt to run the installation process:
Alternatively, navigate to the device containing the ISO image and double click on it to invoke the setup process. If an earlier version of Hyper-V Integration Services is detected by the setup process, the option will be provided to install the latest release in place of the old release. Once completed, the guest system will need to be rebooted before the services will be active. The following image shows the successful installation of Hyper-V Integration Services on a Windows XP Professional system:
Assuming it is convenient to do so, click Yes to initiate a reboot of the virtual machine. Once the guest operating system has restarted, the Hyper-V Integration Services should be installed and running.
 Configuring Hyper-V Integrated Services
The Hyper-V Integration Services run as background services on the guest operating system and communicate with the parent partition. The method for viewing these running services differs slightly between the various guest operating system types. For example, to view the services running on a Windows XP system, click on the Start menu, right click on the My Computer entry within the menu and select Manage from the popup menu to launch the Computer Management console. Within the management console select Services and Applications->Services to display a list of configured services. Scroll down this list until the Hyper-V services are visible as illustrated in the following figure:
Similarly, the Hyper-V Integration Services running on a Windows Server 2008 guest may be viewed by launching the Server Manager console and selecting Configuration->Services.
In each of the above scenarios, the option is provided to Start, Stop or Pause the currently selected service. Whilst this provides a way to disable a particular Hyper-V integration service on a specific guest operating system, the Hyper-V Manager provides a much quicker, and more centralized method for configuring which integration services are used on a per virtual machine basis.
To configure which services are active, invoke the Hyper-V Manager, select the virtual machine for which integration services are to be configured and click on the Settings... link in the Actions panel. In the Settings dialog, select Integration Services from the Management section of the left hand panel to display the list of services provided to the selected guest as illustrated below:
Use the check boxes to enable or disable services and click on the OK button to commit the configuration changes. When configuring these services, it is important to keep in mind that the selected service may not be supported on the guest operating system. As such, activating the service within the Hyper-V Manager may have no effect of the performance and behavior of the guest within the Hyper-V environment.