Virtualization is one of the hottest technologies in IT today, and the excitement is fueled in part by free server virtualization products from Microsoft and VMware. Virtualization started as software that let you run different OSs on the same computer simultaneously. Today's technologies extend virtualization to the application level and even to the hardware level, and mature products are available in each category. Even if you're not using virtualization technology currently, you're likely to do so in the future, and you'll want to understand the current virtualization picture— how all the pieces fit together, and the major products available in each category. For a list of the leading virtualization products, see the sidebar "Virtual Server Products."

VM Overview
Desktop and server virtualization products work in essentially the same way. Virtualization software runs on top of the system's native OS (aka the host OS). The virtualization software provides a management interface and lets you create multiple virtual machines (VMs). Like a physical system, each VM has its own CPU and RAM and can support multiple hard disks and NICs, but the VM's components are virtual, not physical. Figure 1, shows the relationship of VMs to the host OS.

A VM exists on a host system's hard disk and uses a portion of that storage for its own virtual hard disks. VMs are typically created using the VM product's administrative interface. The amount of disk space the VM uses depends on the type of virtual hard disk it has. Most virtualization products support two types of virtual hard disks: dynamic and fixed. Dynamic virtual hard disks initially use minimal disk space but automatically expand as more space is needed. Fixed disks are created at a fixed size and can't grow beyond that size. Although fixed disks can waste space if they're created larger than is necessary, they provide better performance because they don't need to resize. Whether the virtual hard disk is dynamic or fixed, the space required on the host is the same amount that would be required on a physical system: from a minimum of 2GB to 4GB to as much as hundreds of gigabytes of disk space, depending on the VM's requirements.

All active VMs must also share the host's physical RAM. If a host system has only 512MB of RAM, you could probably run just one (or maybe two) VMs on the host because the 512MB would need to be shared by the host and the active VMs. By increasing the host system's RAM, you can increase the number of VMs than can run concurrently.

After you create a VM, you start the VM and use the administrative interface to load an OS, referred to as a guest OS, on the VM. The guest OS runs just as it would on a separate physical system. When the guest OS is up and running, you can install applications on the VM almost exactly as you'd install them on a physical system.

Desktop Virtualization
Desktop virtualization products are used primarily in development, testing, and Help desk environments. Desktop virtualization products let you create virtual environments for desktop OSs, such as Windows XP and Windows 2000 Professional. Desktop virtualization products can also be used to run server OSs, such as Windows Server 2003 and Linux, but they don't provide the scalability and performance that server virtualization products do for running multiple VMs simultaneously. Furthermore, desktop virtualization products support capabilities that might be important to end users, such as sound and USB devices. Server virtualization products don't always support such capabilities.

VMware Workstation popularized PC virtualization products and was essentially responsible for beginning the entire virtualization wave, and VMware Workstation 5.5 remains the leader in this space. Microsoft's entry in this category is Microsoft Virtual PC 2004. Although quite usable, Virtual PC 2004 doesn't support Linux or 64-bit technology and doesn't offer the advanced Snapshot Manager and cloning features found in VMware Workstation 5.5.

Server Virtualization
The subsequent generation of virtualization products took off in the server space. Server virtualization products solve two basic problems: They enable businesses to consolidate servers and to run legacy server OSs and applications. Server virtualization products run primarily Windows 2003, Windows 2000 Server, and Linux as guest OSs and provide greater scalability and the ability to run more VMs simultaneously than desktop virtualization products do. Server virtualization products also include features that let you manage remote and networked systems.

The five main products in the virtual server space are VMware Server, Microsoft Virtual Server 2005 Release 2 (R2), SWsoft Virtuozzo for Windows, XenSource's opensource product called Xen 3.0, and VMware ESX Server. VMware Server, Microsoft Virtual Server 2005, and Xen 3.0 are free. The first three products have similar capabilities. VMware Server, which has replaced the VMware GSX Server product line, runs on both Linux and Windows as the host. A product of Microsoft's acquisition of Connectix, Virtual Server 2005 was later to market than VMware products and doesn't match their rich feature set. However, Virtual Server 2005 R2 has improved performance and support for Windows Server 2003 Clustering Services, a notable feature for server consolidation scenarios in which the virtual server host can be a single point of failure for multiple VMs. Virtuozzo for Windows and Xen 3.0 aren't as widely used as VMware's or Microsoft's solutions, but Virtuozzo is new to the Windows market and Xen, like most open-source implementations, is oriented toward Linux hosts.

The clear leader in the server virtualization space is VMware's flagship ESX Server. Unlike VMware Server or Virtual Server 2005, ESX Server doesn't require a host OS but is integrated with a specialized lightweight proprietary kernel. Its bare-metal implementation boosts VM performance, and the fact that there's no need for a host OS reduces the licensing costs. VMware also provides a tool called VMware VirtualCenter for managing VMs and dynamically moving VMs between hosts to accommodate changing runtime conditions.

Although most server virtualization products work at the single-server level, Virtual Iron Software's Virtual Iron represents a new class of server-oriented virtualization products. Based on Xen 3.0, Virtual Iron clusters multiple physical servers to create a scalable virtual system that you can partition into multiple virtual servers.

Application Virtualization
Application virtualization is a new variation of virtualization technology that solves the problems of conflicts and incompatibility between applications. For example, application virtualization software lets you run multiple versions of Microsoft Office on the same system or install beta software without worrying about corrupting your desktop.

Unlike virtualization products that let you run VMs, application virtualization doesn't provide system hardware or OS-level virtualization. Instead, it abstracts the file system and the registry for the virtualized applications. An application virtualization product lets you run virtual applications as if they were regular applications, but the virtual applications leave no footprint in the system registry or file system. Some benefits of application virtualization products are that you can install and run applications without worrying that one application might conflict with another or that an application will corrupt the registry, and you can freely install and test beta software without fear that it will corrupt the base system. And yes, you can combine virtual applications with virtual desktop and server products, run virtual applications on VMs, and install application virtualization products on VMs. Figure 2 illustrates the concept behind application virtualization software.

There are two main players in the application virtualization space: Softricity (recently purchased by Microsoft) with its SoftGrid Desktop product, and Altiris and its Software Virtualization Solution (SVS). The first application virtualization product on the market, SoftGrid Desktop virtualizes all aspects of the client and provides streaming application deployment. Unlike SVS, SoftGrid requires an Active Directory (AD) infrastructure, prepackaging the virtualized application, and a physical server system for streaming deployment.

SVS is a newcomer to the virtual application arena. SVS doesn't virtualize all aspects of the client. Certain functions, such as system and COM calls, aren't virtualized; only calls to the file system and registry are virtualized. However, SVS virtualizes important objects, such as the registry and file system, and has minimal infrastructure and virtual application setup requirements.

Hardware-Enabled Virtualization
In combination with processor enhancements by Intel and AMD, Microsoft technology enhancements are driving the future of server virtualization.

Virtualization software provides tremendous flexibility, but the overhead of maintaining the VM environment adversely affects the performance of virtualization software. Although there are exceptions, VMs typically don't perform as well as hardware-based systems do. Moving part of the support for virtualization into the hardware reduces system overhead and results in better VM performance. However, hardware virtualization requires support from the hardware as well as from the host OS.

On the hardware side, Intel and AMD added logic to their processors to support virtualization. Intel Virtualization Technology is part of the new Dual-Core Intel Xeon and Dual-Core Intel Itanium 2 processor lines. AMD Virtualization Technology is included in the upcoming AMD Opteron line of processors. On the software side, Longhorn Server will support hardware virtualization through Microsoft's new hypervisor technology, as Figure 3 shows. The hypervisor enables the OS to take advantage of the new hardware virtualization support provided by the latest generation of Intel and AMD processors. The end result should be better VM performance and a lower cost. The VM images that Virtual Server 2005 and Virtual PC use will be compatible with future hypervisor VM support.

A Virtual Reality
Virtualization technologies are a reality today. Desktop and server virtualization is an established and mature technology that provides benefits for a number of common scenarios, including development, testing, server consolidation, and disaster recovery. Application virtualization is a newer technology that addresses the problems of application conflict and system stability. Today's virtualization solutions are software-based, but future hardware-enabled virtualization scenarios promise to reduce the overhead of virtualization environments and significantly improve VM performance.