The Four Flavors Of Virtualization: A Primer
All virtualization technologies are NOT the same. Each of the four flavors of virtualization does different things and solves different problems
Adapted from an Info-Tech Research Group Technology Insight Report: Peeling the Virtualization Onion Without Tears, published March 6, 2008.
Get the original report, including explanatory virtualization graphics!
More SMB Insights
- Strengthen Organizational Agility with the Latest Advances in Case Management
- Accelerate Agility Now: WebSphere Application Server v8.5.5 Overview
- Altair Speeds Complex Simulation and Workload Management with the Intel' Xeon Phi Coprocessor
- How Virtualization is Key to Managing Risk
Virtualization is a trick.
A tremendously useful trick, of course. One that fools software or hardware into thinking it is dealing with "real" software or hardware, when in fact it is interacting with an abstract, or virtual, representation of that virtual representation of that software or hardware.
That's confusing enough, but there's more. The term virtualization encompasses several different abstraction technologies, depending on where in the software/hardware stack this abstraction trick happens:
- Hypervisored or virtual machine virtualization (e.g., VMware, Citrix XenSource, Virtual Iron)
- Operating system virtualization (e.g., Virtuozzo, Solaris Containers)
- Application virtualization (e.g., Microsoft SoftGrid, VMware Thinstall)
- Presentation virtualization (e.g., Citrix Presentation Server, Terminal Services)
No matter what form of virtualization you're talking about, though, the technology is always in the service of two primary goals:
- Application Isolation. This means that applications or groups of applications operate in their own virtual bubble and are not affected by configuration issues or contention with other applications. Applications in a virtualization solution don't "see" the physical hardware directly nor do they see other applications that might be sharing the physical hardware. This isolation is often referred as abstraction or decoupling.
- Hardware Utilization. Isolating an application or stacks of applications means that more applications can run together on a given piece of hardware. For example, virtualization breaks the one-app/one-OS-per-machine equation of traditional distributed x86 server architecture. Multiple applications and operating systems run on a single piece of hardware, increasing the utilization of that hardware while reducing the total number of physical boxes required.
A closer look at each flavor of virtualization reveals how it addresses those goals.
In machine virtualization, the abstraction layer is called a hypervisor and it sits between the physical hardware and an operating system. The hypervisor tricks an OS into thinking it has sole access to physical hardware when it fact, multiple operating systems are accessing the same hardware.
Each virtual representation of the hardware is called a virtual machine, or VM. Each VM can support not only a different OS but also a different kind of OS. For example, one physical server can support both Linux and Windows virtual machines.
In machine virtualization, a hypervisor does the trick of making a single piece of hardware appear to be multiple machines for multiple operating systems and application stacks. In OS virtualization, the abstraction moves up a layer. A single operating system now appears to be multiple independent operating systems to each of the separate applications. While a hypervisored VM operating system "thinks" it has sole access to a machine, the virtualized OS application thinks it has sole access to an operating system. One advantage of this approach is that you need to manage only one operating system for multiple application instances.
Application virtualization is similar to OS virtualization in that each virtualized application interacts with its own virtualized operating system interface. However, whereas OS virtualization partitions a parent operating system, application virtualization provides a completely independent virtualized container for the application. Each virtualized application runs within its own virtual bubble. In a typical application virtualization scenario, applications are stored and maintained centrally and "streamed" from a parent server to the desktop where they run independently of other applications. Those other applications may also be virtualized instances or they may be "regular" nonvirtualized apps running on the system OS.
Traditional desktop virtualization --- presentation virtualization -- is different from other forms of virtualization in that the abstraction layer occurs not between layers of the computer system, but between the user and the system. In this case, users interact with virtual applications as if they were running on their PC desktops when it fact they are hosted and operating elsewhere.
Increasingly, however, presentation virtualization is being combined with other forms of virtualization. For example, in virtual desktop infrastructure, machine virtualization is used to host multiple virtual Windows XP or Vista machines on a host server. Each virtual PC is accessed by a different user via Remote Desktop Protocol clients.