Utility SpotlightVirtual Machine Remote Control Plus
Matthijs ten Seldam
Download the code for this article: UtilitySpotlight2007_10.exe (10163KB)
Virtualization is a hot topic these days. Many IT professionals use hardware virtualization for learning and testing scenarios. Given this, Microsoft now offers Virtual PC 2007, a software virtualization solution that targets standalone installations with a limited number of virtual machines. Note that this new product does not replace Virtual Server
2005, which brought virtualization into the datacenter.
Microsoft® Virtual Server 2005 enables you to virtualize many server workloads, but, unlike Virtual PC, the Virtual Server interface is a Web application. Although Web-based management has its advantages, for day-to-day administration many people want a rich UI that behaves like a Windows® app.
Virtual Machine Remote Control Plus, VMRCplus for short, is an alternative UI for Virtual Server 2005. Because it is a Windows Forms application, VMRCplus offers easy management of Virtual Server and its virtual machines. Note that Virtual Server comes with a tool called VMRC that is used for remote control of virtual machines. But VMRCplus offers both configuration management of Virtual Server and remote control of virtual machines—all from within a single application.
The Virtual Machine Manager
The main window of VMRCplus, called the Virtual Machine Manager, is shown in Figure 1. In this example, the Virtual Machine Manager is connected to localhost, with five machines running, three in saved state and all others turned off. The sixth machine on the list is selected, displaying additional information including the guest operating system, CPU load, disk and network I/O statistics, and the installed additions version. Notice that the list is sorted by Status.
Figure 1** The VMRCplus Virtual Machine Manager **(Click the image for a larger view)
Through the Virtual Machine Manager, you can connect to Virtual Server hosts and display their virtual machines. You switch hosts by selecting a host's tab and you connect to a host from the dropdown list in the toolbar or by typing a host name or IP address. Upon successful connection, VMRCplus adds the name or IP address to the list.
Some Virtual Server host properties, like CPU and memory information, are displayed at the bottom of the window. A memory meter provides a quick view of the amount of available RAM left for virtual machines.
Virtual Server Management
The Virtual Machine Manager does more than simply display information; you can configure settings as well. From the View menu option, you can set the refresh interval VMRCplus uses to update the Virtual Machine list. The current refresh interval setting is displayed in the lower right-hand corner of the window, as Figure 1 shows.
The Virtual Server menu gives you access to Virtual Server configuration, including Virtual Machine Remote Control (VMRC) settings, the default location for new virtual machines, security settings, and service properties. On the VMRC settings page, you can set any of the properties, disable VMRC altogether, or revert back to the Virtual Server default settings.
The security settings page lets you specify Virtual Server permissions. By default, the local Administrators group has full control of Virtual Server. You can specify permissions for groups or users. If you are not a member of the local Administrators group, you must first add a group or your account and set appropriate permissions. You do not need to actually run VMRCplus as an administrator though; normal user privileges are sufficient.
The properties of the Virtual Server host, including the physical properties, are shown in Figure 2. Notice that this host supports hardware-assisted virtualization, as can be seen from the processor features.
Figure 2** Virtual Server properties **(Click the image for a larger view)
Virtual Disks and Networks Management
VMRCplus includes other managers targeted at specific Virtual Server capabilities. The Virtual Disks Manager has a tabbed interface corresponding to the types of virtual disks you can create, including hard disks (dynamic or fixed), floppy disks, and differencing disks. You are also able to inspect your virtual disks.
The Virtual Networks Manager lets you manage virtual networks. You can add a virtual network from a virtual network configuration file (VNC) or create a new one. When creating the virtual network, you can attach a host network adapter or designate the network as guests only. From the same window you can enable a virtual DHCP server and open its settings.
Virtual Machine Management
The previous managers all focused on managing Virtual Server. What does VMRCplus offer for creating and configuring virtual machines?
Creating virtual machines is quite easy: simply select Virtual machine | Create from the menu. The dialog that results offers several defaults that are equivalent to those of Virtual Server, but there are differences beneath the interface. For example, VMRCplus always creates two virtual hard disks and attaches them to SCSI. VMRCplus also lets you create multiple virtual machines at once. Simply select "Create multiple virtual machines" and select the number you want. VMRCplus adds a hyphen and sequence number to the virtual machine name you provide.
A truly powerful feature is the ability to create multiple virtual machines from a parent virtual machine. Suppose you have created a virtual machine with the latest additions, service pack, hotfixes, and tools, and you'd like to use it as a base for other virtual machines. Assuming you've run sysprep as a final stage and shut down the parent, you can now create multiple virtual machines and they will inherit the properties of your parent.
Within seconds, you can create many virtual machines based on this parent, and you can quickly start these new virtual machines from the same reference. When you are done—with testing for example—simply delete them. And that's easy too: VMRCplus supports multi-select on the virtual machine list as well as sorting the columns. So you can easily multi-select and remove the virtual machines (which simply unregisters them), or you can delete the virtual machines (which deletes the files as well).
There are other multi-select commands you can use on virtual machines, such as multi-select and start, multi-select and open the console, or multi-select and save state. You can accomplish all of this either through the UI or through shortcut keys.
Configuring a virtual machine is also easy using the hardware settings page. You can set the amount of memory, add SCSI controllers, attach disks or images (yes, with drag and drop), and enable and configure network adapters. The advanced properties window enables you to set the more advanced configuration items. For example, you can run virtual machines under a specific user account so you can set a machine to start automatically at Virtual Server startup.
Finally, VMRCplus also offers the Console Manager, which contains the remote control sessions (VMRC sessions) with virtual machines. You open a console by selecting a running virtual machine (or several) and clicking the virtual machine console button on the properties toolbar.
The Console Manager window, shown in Figure 3, supports a tabbed ordering of remote sessions. You can switch between virtual machines by selecting the corresponding tab. There's also a toolbar containing the most frequently used functions.
Figure 3** Console Manager **(Click the image for a larger view)
As you can see, the Console Manager has context menus that let you attach a virtual floppy image or ISO image, mount host drives, and install current additions. There's also a status bar that shows the status of CD/DVD and floppy media, the current additions version in the virtual machine, the currently active host key and the dynamic screen resizing setting. VMRCplus lets you set the host key. You can also access the virtual machine hardware settings and advanced properties.
VMRCplus offers some other handy features. For example, you can take a screen shot of virtual machine settings and save it as a .jpg file, which can be quite useful in troubleshooting scenarios. You can also "Send Text to Virtual Machine," meaning you can send text to the virtual machine as keystrokes. This isn't designed as a clipboard function, but it's very handy in situations where, for example, you need to copy and paste a product key from the host to the virtual machine.
VMRCplus was initially authored by Paul Despe as a developer tool that handled some basic functions but did not cover all features of Virtual Server. It was used for testing purposes only and had a number of issues. Approximately a year ago, I picked up the code and started to rewrite, enhance, and extend its functionality. Since then it has become enormously popular with Virtual Server users within Microsoft. Note, however, that VMRCplus is not a supported Microsoft application. It is provided as-is and subject to the included end-user license agreement.
VMRCplus has been developed for Virtual Server 2005 Service Pack 1. Although previous versions should be compatible, it has only been tested with Service Pack 1. As a result, users should update their Virtual Server hosts to Service Pack 1 before using it. VMRCplus is available for download from the TechNet Magazine Web site at technetmagazine.com/code07.aspx.
Matthijs ten Seldam is a Principal Consultant for Microsoft Consulting Services. He is focused in the areas of security, deployment, and automation, and he is a subject-matter expert in the area of virtualization.
© 2008 Microsoft Corporation and CMP Media, LLC. All rights reserved; reproduction in part or in whole without permission is prohibited.