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.