Virtualization has quickly become one of the most widespread technologies in IT today. Despite its near ubiquitous nature, virtualization can be a difficult technology to understand—not because the technology is so complex, but because of the fact that the term virtualization is used to describe several different technologies.
When people talk about virtualization, they’re typically referring to server virtualization. Server virtualization lets organizations run multiple servers on a single hardware platform. Another closely related form of virtualization is desktop virtualization. Desktop virtualization is used primarily for virtualizing desktop OSs and for creating development and test environments. Another type of virtualization is Virtual Desktop Infrastructure (VDI), which is also called hosted desktop virtualization. VDI uses server virtualization to provide centrally managed desktops throughout an organization. Application virtualization is yet another important type of virtualization. Unlike server and desktop virtualization, in which the hardware platform is virtualized, with application virtualization, the application runs in a virtual or sandboxed environment that isolates the OS from the application.
Microsoft’s virtualization information also sometimes includes a technology the company calls Presentation Virtualization—however, I don’t consider this to be a real virtualization technology and therefore don’t cover it here. For more information about the technology, see the sidebar “Presentation Virtualization: The Virtualization Technology that Isn’t.”
This article will guide you through the maze of today’s virtualization technologies. As I step through each of the different types of virtualization, I discuss some of the most significant products that are available, including their position in the market and some of their most important features.
Server virtualization is currently one of the hottest trends in IT and is used in several different scenarios, including server consolidation, business continuity, and lab and deployment testing. Server virtualization is accomplished by running virtualization software that lets the server hardware be used by multiple virtual machines (VMs) that are supported on the virtualization layer. Each VM has its own virtual hardware devices and applications and runs its own OS. The supported OSs vary according to the virtualization product. Figure 1 shows an overview of server virtualization.
As you can see in Figure 1, multiple VMs run on top of a shared hardware platform.
Figure 1: Server virtualization overview
Today’s modern server virtualization products use hypervisor-based virtualization rather than hosted virtualization. This means that the virtualization software runs directly on the system hardware rather than running on the OS. Virtualization software that runs on the OS is typically referred to as hosted virtualization because it requires a host OS. (I explain hosted virtualization in more detail in the following section on desktop virtualization.) Hypervisor-based virtualization provides much lower overhead and significantly better performance than hosted virtualization. Some older server virtualization products can run on older 32-bit x86 servers. However, the newer hypervisor-based server virtualization products require 64-bit x64-based servers. Intel and AMD added features to their processors to let hypervisor-based virtualization function more efficiently. Intel’s new technology is called Intel Virtualization Technology (VT); AMD’s is AMD Virtualization (AMD-V).
The primary server virtualization products are VMware vSphere 4.1, VMware vSphere Hypervisor, and Microsoft Hyper-V. Other server virtualization products include Citrix’s XenSource, Parallels Virtuozzo Containers, and Parallels Server 4 Bare Metal. There are also a couple of legacy server virtualization products: Microsoft Virtual Server 2005 R2 and VMware Virtual Server. Although these products are essentially outdated, they’re still available and can be useful in situations in which you need to support virtualization on 32-bit hosts.
VMware vSphere 4.1 and VMware vSphere Hypervisor (ESXi). Without a doubt, VMware vSphere is today’s premier server virtualization platform. VMware first released ESX Server in 2001, and the product quickly established itself as the leader in the enterprise virtualization space (despite Hyper-V’s progress in the server virtualization space). IDC conservatively estimates that VMware had 50 percent of the server virtualization market in 2010. VMware offers two hypervisor server products: VMware vSphere 4.21 (ESX Server) and a free version called VMware vSphere Hypervisor (formerly named ESXi).
VMware vSphere supports several enterprise-oriented features. For example, it supports almost all Windows and Linux versions as guest OSs. It also supports VMs with up to 255GB of RAM and four-way virtual SMP, as well as the capability to hot-add CPUs and RAM in the VMs. VMware ESX Server also provides a couple of important availability features: VMware VMotion and VMware Storage VMotion. VMotion lets running VMs move between active ESX Server systems. Similarly, Storage VMotion lets you move a VM’s virtual hard disk files to a new storage location with no downtime for the VM’s end users. VMware ESX Server has included both these features for several years, so they’re quite mature. Unlike Hyper-V’s live migration, a single ESX Server system can run VMotion on several different hosts simultaneously.
The VMware vSphere hypervisor is architected differently than Hyper-V. The primary difference is that VMware’s hypervisor includes the device drivers as part of the hypervisor. This results in somewhat better performance and reliability, but it also limits the hardware platforms that are supported. VMware vSphere is a more expensive virtualization platform than Hyper-V because unlike with Hyper-V, you must license vSphere separately from the Windows Server OS. However, vSphere can still benefit from Microsoft’s virtualization licensing features. For instance, if you run Windows Server 2008 R2 Datacenter Edition on VMware vSphere, the Datacenter license covers all the virtual Windows Server instances on the vSphere server. Windows Server virtualization licensing covers all virtualization products, such as VMware vSphere, that are part of Microsoft’s Windows Server Virtualization Validation Program. You can learn more about the Windows Server Virtualization Validation Program at their website. You can download a trial version of VMware ESX Server 4.1. You can also download VMware’s free ESXi.
Hyper-V and Hyper-V Server 2008 R2. Hyper-V, Microsoft’s server virtualization solution, is the primary competitor to VMware vSphere. Microsoft first released Hyper-V in 2008 and later updated it with the release of Server 2008 R2. Hyper-V is the runner-up in the virtualization race. IDC estimates for 2010 show Microsoft with about 26 percent of the virtualization market; that growth for Hyper-V was an impressive 215 percent (albeit from a lower starting point). Hyper-V is delivered in two ways: as a Server 2008 R2 and Server 2008 role, or as the free Hyper-V Server 2008 R2 product.
Hyper-V was originally released with Server 2008. This initial release became known as Hyper-V 1.0. The Hyper-V 1.0 release didn’t support live migration. Instead, it supported quick migration, a technology that incurred some downtime as VM files were transferred between cluster nodes. Microsoft updated Hyper-V with the release of Server 2008 R2; this release is known as Hyper-V 2.0. Hyper-V 2.0 supports live migration, which lets VMs move between different Hyper-V hosts with no downtime. Live migration is essentially the Microsoft counterpart to VMware VMotion. Hyper-V 2.0 also provides support for VMs with up to four-way virtual SMP and up to 64GB of RAM per VM.
The Hyper-V role in Server 2008 R2 and Hyper-V Server 2008 R2 are based on the same technology, which is quite different from VMware’s design. Hyper-V uses a hypervisor, but the drivers come from the parent partition rather than the hypervisor. (For more information about the differences in VMware’s hypervisor and Microsoft’s hypervisor, see “Virtualization Shootout, Part 1,” “Virtualization Shootout, Part 2,” and “Virtualization Rematch.”)
Numerous differences exist between Hyper-V Server 2008 R2 and the Hyper-V role in Windows Server. One of the main technological differences is the fact that Hyper-V Server 2008 R2 and Hyper-V Server 2008 must be managed remotely; there’s no local GUI. Another important difference is licensing. Hyper-V Server 2008 R2 and Hyper-V Server 2008 include no licenses for any host or guest OSs. With Server 2008 R2 and Server 2008, you get at least one license for running Server 2008 and additional licenses depending on the edition you have. Server 2008 Standard Edition provides an additional license for one active instance of Windows Server running on a VM. Server 2008 Enterprise Edition licensing covers four active Windows Server instances running on VMs. Server 2008 Datacenter Edition provides for running an unlimited number of active Windows Server instances with no additional licensing costs. You can learn more about Server 2008 and virtualization at "Virtulization with Hyper-V". For more information about Windows Server licensing and virtualization, click here. You can download the free Hyper-V Server 2008 R2.
Other server virtualization products. Although Hyper-V and VMware ESX Server comprise the vast majority of today’s server virtualization market, they aren’t the only players in the space. Citrix, the company that’s probably best known for its Terminal Services product, offers XenServer. XenServer is based on the open-source Xen hypervisor. Citrix acquired XenSource in 2007. Like Hyper-V, the XenServer architecture uses a primary partition. Unlike Hyper-V, XenSource is a Linux-based virtualization product. XenSource supports hardware-assisted virtualization. It also supports moving VMs between hosts with no downtime via a technology called XenMotion. There are several editions of XenServer. You can download a free version of XenServer.
Another company in the server virtualization market is Parallels. This company is probably best known for its Mac desktop virtualization product (Parallels Desktop for Mac). Parallels has two products in the Windows server virtualization space: Parallels Virtuozzo Containers and Parallels Server 4 Bare Metal. Virtuozzo began as a Linux product that made its way to Windows. It’s primarily used by hosting providers. Parallels Virtuozzo Containers is a different type of virtualization product. Rather than virtualizing at the hardware level the way ESX Server and Hyper-V do, Virtuozzo Containers virtualizes at the OS level. This method has less overhead than hardware virtualization does but also less flexibility because all the virtual containers must have the same OS. Parallels Server 4 Bare Metal is a hypervisor-based virtualization platform that allows up to 12 virtual CPUs per VM and supports up to 64GB of RAM per VM. Notably, Parallels Server 4 Bare Metal also provides USB support in its VM, which neither vSphere nor Hyper-V do. You can learn more about Parallels server virtualization products by visiting their website.
Hardware virtualization such as server and desktop virtualization were really born in VMware Workstation, which was first released back in 1998. Desktop virtualization is primarily used for development and test environments. Like server virtualization, desktop virtualization lets you run multiple VMs on a single hardware platform. Again, each VM thinks it’s running on its own hardware and each has its own OS and applications. Unlike server virtualization, which is hypervisor-based, desktop virtualization uses hosted virtualization. Figure 2 shows an overview of how desktop virtualization works.
Figure 2: Desktop virtualization overview
The desktop virtualization architecture has a hardware layer at the bottom; the host’s desktop OS runs on top of that. The virtualization software is installed on the host’s OS. This setup doesn’t provide the same level of performance as hypervisor-based virtualization, but it can provide better usability and a greater range of features. For example, desktop virtualization products almost all provide access to the host’s USB drives, support for audio, and integration with the desktop system’s power management features such as sleep and hibernate. Some desktop virtualization products offer support for 3D graphics and DirectX. These features aren’t available in most hypervisor-based server virtualization products.
The primary PC desktop virtualization products are VMware Workstation 7.0, VMware Player 3.0, Microsoft Virtual PC 2007, Microsoft Windows Virtual PC, Windows 7’s Windows XP Mode, Oracle’s VirtualBox, and Parallels Desktop 4 for Windows. In addition to these products, there are a couple of Mac desktop virtualization products: VMware Fusion and Parallels Desktop for Mac.
VMware Workstation 7.0. VMware Workstation was the original x86 virtualization program, and it certainly hasn’t stood still. VMware Workstation 7.0 is the clear leader in the desktop virtualization market. As you might expect for a mature product, Workstation 7.0 runs on both Windows and Linux and supports almost all Windows and Linux versions as VM guest OSs. It also supports Intel VT and AMD-V hardware-assisted virtualization. Workstation 7.0 supports several advanced features that aren’t found in other products. For example, Workstation supports the Windows 7 Aero interface, 3D graphics, and DirectX 9.0 in VMs. Workstation also supports up to eight virtual processors, the ability to capture and replay user actions in the virtualization session, and VM file encryption. VMware Workstation 7.0 costs $189; you can download a trial version from VMware.
VMware Player 3.0. VMware Player 3.0 is a free desktop virtualization offering from VMware. As its name implies, the original version of Player was only able to run (or play) existing VMs. However, VMware later updated the Player product with the ability to create VMs. As a free product, Player is basic virtualization software that lacks most of the advanced features found in Workstation. However, it has the same wide array of host and guest support. You can download VMware Player 3.0.
Virtual PC 2007. Microsoft was a latecomer to the virtualization market. The company’s initial offering in the virtualization space was Virtual PC 2004, which Microsoft acquired from Connectix in 2003. At first Virtual PC 2004 was a paid product, but with the release of Virtual PC 2007 the product became free. Both 32-bit and 64-bit versions of Virtual PC are available. The product can run on Windows 7 and older Windows XP OSs. It can’t run on Linux; although you can make Linux run as a guest, this configuration has never been supported. Virtual PC 2007 is still available for download, but it’s essentially a legacy product. Microsoft ceased development of the product to focus on its successor, Windows Virtual PC. You can find Virtual PC 2007 at the Microsoft Download Center website.
Windows Virtual PC and Windows XP Mode. Windows Virtual PC runs only on Windows 7. It adds several missing features to what Virtual PC 2007 offers, including support for USB drives. It supports Intel VT and AMD-V hardware-assisted virtualization but doesn’t require it. Although it’s an improvement over Virtual PC 2007, Windows Virtual PC isn’t in the same class as VMware Workstation. It doesn’t support running Linux as a guest, nor does it officially support Windows Server OSs as a guest—although both can be made to work.
Another closely related desktop virtualization technology that you might have heard of is Windows 7’s Windows XP Mode. Windows XP Mode is built on top of Windows Virtual PC and is designed to let you seamlessly run Windows XP programs from the Windows 7 desktop. Its main purpose is to support legacy applications on Windows 7. Windows XP Mode uses Windows Virtual PC to launch a VM in the background, then surfaces applications running on a VM that uses a guest Windows XP OS on your Windows 7 desktop. You can download Windows Virtual PC and Windows XP Mode.
Microsoft also offers another version of this type of desktop virtualization technology, called Microsoft Enterprise Desktop Virtualization (MED-V). Like in Windows XP Mode, legacy application compatibility is the main purpose behind MED-V. MED-V lets applications that are running on a VM be seamlessly integrated with the user’s desktop. Unlike Windows XP Mode, MED-V is built on top of Microsoft’s Virtual PC product. MED-V is part of the Microsoft Desktop Optimization Pack (MDOP), which is available only to Software Assurance customers. You can learn more about MED-V by clicking here.
Other desktop virtualization products. In addition to the VMware and Microsoft desktop virtualization products, there are a handful of other desktop virtualization products available. The other Windows desktop virtualization products are Oracle’s VirtualBox and Parallels Desktop 4 for Windows & Linux. VirtualBox is an open-source virtualization product that was formerly a part of Sun Microsystems’s product line but was acquired by Oracle in January 2010. VirtualBox is a free product that supports the widest variety of host OSs of any desktop virtualization product. VirtualBox has host support for Windows 7, Windows Vista, XP, Linux, Mac OS X, Solaris, Open Solaris, and FreeBSD. It offers support for Intel VT and AMD-V, as well as 32-bit and 64-bit guest OSs. You can find VirtualBox at their website. Parallels Desktop 4 for Windows & Linux is a commercial desktop virtualization product. It supports Intel VT and AMD-V and runs VMs that can have up to eight virtual CPUs and 8GB of RAM. Parallels Desktop 4 for Windows & Linux can run on 32-bit and 64-bit versions of Windows 7, Vista, XP, Debian 5.0, Fedora 11, Mandriva 2009, openSUSE 11.1, Red Hat Enterprise Linux (RHEL) 5.3, SUSE Linux Enterprise Server (SLES) 11, and Ubuntu 9.04. Parallels Desktop 4 for Windows & Linux costs $79.99.
In addition to these Windows-based desktop virtualization products, there are also a couple of virtualization products for the Mac. The main use for these Mac virtualization products is to let you run various versions of Windows, including Windows 7, on the Mac desktop. Notably, there’s no virtualization product that officially supports running Mac OS X in a PC-based host. The two main Mac desktop virtualization products are Parallels Desktop 6 for Mac and VMware Fusion 3. Parallels Desktop 6 for Mac is the leader in the Mac desktop virtualization market; it supports the Windows 7 Aero UI and 3D graphics. Parallels Desktop 6 for Mac costs $79.99. VMware Fusion is the other notable product in the Mac desktop virtualization market; its VMs support the Windows 7 Aero interface and 3D graphics. VMware Fusion costs $49.9.
Virtual Desktop Infrastructure
Another virtualization technology that’s gaining popularity in the enterprise and large business markets is VDI, or hosted desktop virtualization as it’s sometimes called. Although its name makes it easy to confuse with desktop virtualization, VDI isn’t really desktop virtualization at all. Instead, it’s a technology that enables centralized management of client systems. Figure 3 shows an overview of how VDI virtualization works.
Figure 3: VDI overview
With VDI, the virtualization software doesn’t run on the desktop at all. Instead, a virtualization server platform such as Hyper-V or ESX Server runs many VMs; each VM is built using a client OS such as Windows 7 or XP. Client systems run a form of receiver software that uses a remote desktop type of protocol such as RDP or ICA to connect to the client VM that’s running on the server virtualization platform. Typically, another system called a connection broker sits between the client systems and the virtualization server. The connection broker identifies the incoming connections and directs them to the appropriate VM.
As you might imagine, because this scenario is running all of the client systems as VMs, it requires large amounts of bandwidth and computing power for the virtualization host. However, the clients require very few resources and can even be thin clients or mobile devices. In addition, because all the client resources are centralized, IT has much more control over the client systems.
There are two main types of VDI approaches. One approach uses prebuilt client images; the other approach dynamically builds the client system using a shared “golden” OS image and dynamically combines this image with personalized user settings, applications, and data. This dynamic approach can use dramatically less storage than individual images. For more information about VDI, you can refer to John Savill’s VDI series (“Virtual Desktop Infrastructure, Part 1,” “Virtual Desktop Infrastructure, Part 2,” and “Virtual Desktop Infrastructure, Part 3”). There are four main players in today’s hosted desktop virtualization space: the Microsoft VDI Suite, Citrix’s XenDesktop, VMware View, and Quest’s vWorkspace.
Microsoft VDI Suite. The Microsoft VDI Suite is really something of a misnomer. The name implies that it’s a product, but it’s really a bundling of several different Microsoft virtualization technologies, including Hyper-V, Microsoft System Center Virtual Machine Manager (VMM) for managing the desktop VMs, Microsoft System Center Operations Manager for monitoring hosts and VMs, Microsoft System Center Configuration Manager (SCCM) for creating desktop images, and Windows Server’s Remote Desktop Services (RDS) with its Remote Desktop Session Broker and Remote Desktop Gateway. Microsoft markets two versions of this product: the Microsoft VDI Standard Suite and the Microsoft VDI Premium Suite. The main difference is that the Premium Suite includes Microsoft Application Virtualization (App-V), in addition to the other products that comprise the Standard Suite. None of these products are specifically intended for VDI. However, they can each play a different role in making VDI work. The suites are simply a way to help customers handle the licensing complexities of this mishmash of different technologies. Most customers who want to use VDI with Hyper-V gravitate to the next product I discuss: Citrix’s XenDesktop.
XenDesktop. XenDesktop offers a simpler and better VDI solution for Hyper-V than Microsoft’s own technologies, mainly because it’s specifically designed to address VDI. XenDesktop can deliver VDI services to all types of devices using its FlexCast technology. As you might guess, clients connect to the server using Citrix’s ICA protocol. In addition, XenDesktop lets you manage all VDI services from a single console. Citrix offers way too many editions of XenDesktop to make any product decision easy. It offers a free Express version, as well as Standard, Advanced, Enterprise, and Platinum versions. The Platinum edition includes Citrix’s high-performance HDX technology for 3D graphics. You can learn more about the XenDesktop editions by clicking here, and you can download the Express version.
VMware View. Not to be left out of any part of the virtualization market, VMware provides its own VDI solution with VMware View. VMware View 4.5 uses VMware’s own PCoIP protocol to communicate with client devices, and the VMware View Client supports a local mode that lets you use VDI services without an active connection to the virtualization server. VMware offers two editions of View: VMware View Enterprise and VMware View Premier. The Premier edition includes the View Client with the local mode, as well as the application virtualization product VMware ThinApp. You can learn more about VMware View 4.5 by visiting VMware's website, and you can download a 60-day trial.
vWorkspace. A lesser-known player in the hosted desktop virtualization market, Quest’s vWorkspace 7.2 has actually been in the VDI space for several years. vWorkspace works with Hyper-V, VMware vSphere, and Parallels Virtuozzo. vWorkspace offers a wizard-driven setup, as well as an integrated PowerShell management framework. Quest also offers the Experience Optimized Protocol (EOP), which enhances RDP support for screen updates and images. You can learn more about vWorkspace, and can register for a trial download of vWorkspace.
Although server and desktop virtualization are the technologies that you usually think of when you refer to virtualization, application virtualization is another emerging type of virtualization technology. Server and desktop virtualization work at the hardware level, whereas application virtualization works at the application level. Hardware virtualization and application virtualization solve very different problems. Server virtualization addresses server deployment, consolidation, management, and availability. Application virtualization addresses application deployment, isolation, and management.
With application virtualization, software running on the client system provides support for virtual applications. The client virtualization layer provides the virtual application with a copy of the system’s file system, registry, and other system I/O points. When the virtual application runs, it interacts with the virtual system environment and doesn’t modify the true underlying host system’s physical registry and file system. Application virtualization allows multiple applications that might normally conflict with one another to run together on the same system with no conflicts because each application runs in its own virtual environment. Likewise, because each virtual application runs in its own space, DLL hell is eliminated, in which installing one application can write over the DLLs used by another application. The two primary application virtualization products are Microsoft App-V and VMware ThinApp. Figure 4 shows an overview of application virtualization.
Figure 4: Application virtualization overview
App-V. App-V is Microsoft’s application virtualization platform. Microsoft acquired the technology for App-V by purchasing Softricity’s SoftGrid product in 2006. The biggest advantage of App-V is probably its no-touch application deployment. App-V is integrated with Active Directory (AD). Administrators can assign virtual applications to users and groups, then those applications can be streamed to end users’ systems without any manual intervention.
With App-V, the applications that are virtualized are run through a process called the Microsoft Application Virtualization Sequencer, which breaks the application into pieces that can be streamed to the users’ desktops. The virtual applications are stored on System Center Application Virtualization Management Server, which not only stores the virtual applications but is also responsible for streaming them to the users’ desktops where they are executed by the virtualization client software.
One benefit of the sequencing process is that only the parts of the application that are used are streamed to the users’ desktops. For example, when you run an application such as Microsoft Office—which typically requires several hundred megabytes—through the sequencer, the sequencer breaks that application into many smaller sections that can be individually streamed to the client. The end result is that when the client initially uses the application, it doesn’t need to wait for hundreds of megabytes to be streamed to the system before the app can be used. Instead, only the code necessary to run the executable part of the application being requested will be streamed to the client. This might be only a few megabytes, yet the application will execute normally in the virtual client environment. Later, as the end user requests additional functions and features, just the code necessary to execute those features will be streamed to the client. App-V is part of MDOP, which is available only to Software Assurance customers. You can learn more about App-V by clicking here.
VMware ThinApp. VMware ThinApp was originally acquired from a company called ThinStall back in 2008. ThinApp works very differently from App-V. It’s simpler and has fewer infrastructure requirements. ThinApp application virtualization doesn’t require a client to be installed on the target system. Instead, the virtualization client is prepackaged with the application into a single executable file that can be distributed to the target systems and run immediately. This bundling lets you easily deploy virtualized ThinApp applications on USB drives or from network shares. After the virtual application executable file is copied to the target system, you can run the virtual application just like any standard executable program.
VMware ThinApp provides a Virtual Operating System (VOS) layer that encapsulates the application code, letting applications run on a host OS with no modifications to that OS. The VOS is very lightweight, taking less than 300Kb of disk space and 1MB of RAM to run. The VOS provides a virtual registry layer and a virtual file system layer, and it handles loading the executable and any required DLLs. When you run the virtual applications, the VOS is loaded, which in turn loads the application into its virtual environment. The VOS supports all the OS processing necessary to run Windows applications, including out-of-process COM calls, services-based COM calls, manifest policy processing, and side-by-side DLL resolution. You can learn more about VMware ThinApp and download a 30-day trial. VMware also offers a free starter edition of this product with the purchase of VMware Workstation 7.0.
Living in the Virtual World
Virtualization has become a staple in today’s IT infrastructure. Server virtualization is used for server consolidation and business continuity scenarios. Desktop virtualization is primarily used for testing and development. Hosted desktop virtualization is used for centralized desktop management. Application virtualization is used for centralized application deployment and improved application compatibility. Understanding today’s virtualization marketplace will help you select the appropriate type of virtualization technology for your business’s needs.