What Is Virtualization?
Audience: IT professionals new to virtualization
Estemated Reading Time: 10min
Virtualization is a term that covers many different technologies. It can get very complex but I am going to try and break it down as simply as I can. I am going to talk about server virtualization in this article (storage virtualization and network virtualization are whole different animals and warrant their own articles). First the basics and some term definitions, we need to define virtualization and the terms associated with it. Second there are three major categories of virtualization, I am going to define them as “Application Virtualization,” “Hosted Virtualization” and “Hypervisor Virtualization.” The audience of this document is system administrators or IT management that have a grasp on IT technology but need a primer on virtualization.
First, Some History
The idea of virtualization has been around for many years. It was first used back in the 60’s as a way to partition large mainframe hardware. Engineers back then faced the same problems of today, such as too many underutilized servers. IBM pioneered virtualization by allowing engineers to partition mainframes to alow tasks to multitask. Server virtualization on the x86 (Intel based) platform was invented in the 90’s primarily by VMware. Since then many companies have entered into the x86 hardware and software virtualization market including Microsoft, Citrix and more recently Sun with virtualbox and solaris zones. Sun also has been experimenting with hardware virtualization on their SPARC platform. The need to virtualize is ever growing due to the growing demand and shrinking availability of datacenter space.
The Basics
Virtualization is typically defined as the ability to run more than one application or operationg system in an isolated and secure environment on a single physical system. That is still pretty complicated, time for a graphic.
As this graphic shows, the basic concept of virtualization is to run more than one operating system and application on the same phyiscal hardware. For most organizations most servers are only utilized between 8% and 15% on average. That means that if there are 100 servers sitting in a datacenter that they could be consolidated to between 8 and 15 (on average). That means far fewer servers to power and maintain, which can show huge cost savings over time. Using this technology also makes IT infrastructure easier to manage and far more flexible which will lead to less downtime.
Now for some terms:
- Host: Defined as a phyisical machine that is hosting virtual machines
- Virtual Machine: Defined as the software container and supporting files that will contain operations of the hosted software
- Hypervisor: Defined as a piece of software or firmware that provides a means for a virtual machine to interact directly with the underlying physical hardware without emulation but still within specified constraints. Often refered to as “bare metal virtualization.”
- I/O: Stands for Input/Output and is defined as any type of input or output coming from or going to a piece of software.
- Memory Page: Term for a block (think container) in memory where information is stored.
Hosted Virtualization
First up is hosted virtualization. This is the simplest type of virtualization to set up for a new user or for testing and development. This is often the starting point for most IT organizations looking to get into virtualization on a large scale. Hosted virtualization resides on top of a host operating system (Windows, Linux, UNIX etc.) and all I/O is dependent on the hosting operating system (often called “domain0″ or “d0″ operating system). Another graphic.
If this graphic looks familiar, that’s good. This is the same graphic as before, but a couple additional layers have been added. First there is the layer of the host operating system. All virtualization is dependent on this operating system, if maintnence needs to be done then all virtual machines running on top of it will be impacted. The next layer is the virtualization software itself. This layer cannot be avoided in most methods of virtualization (hardware virtualization being the exception). It is safe to assume that there will most likely be some sort of software doing the coordination of the I/O and hardware access. The only difference in this case is that this software is dependent on the domain0 operating system’s drivers for interaction with the hardware. This approach is acceptable for development environments or very small deployments where maximized uptime is not a requirement.
- Pros:
-
- Easy to set up.
- Familiar interface.
- Simple to manage.
- Often a free solution.
- Cons:
-
- Reliant on a “domain0″ operating system.
- Limited at best failover capability.
- No centralized management.
- Examples:
-
- VMware Server (formerly VMware GSX Server)
- VMware Workstation
- VMware Fusion
- Microsoft VirtualServer 2005
- Microsoft Virtual PC
Hypervisor Virtualization
Next up is hypervisor virtualization. Hypervisor virtualization is where the true power in virtualization comes from. This approach takes away the domain0 operating system and virtualization software and replaces it with another piece of software called a hypervisor. Graphic Time!
This hypervisor software plays the role of a traffic cop, controlling access to hardware resources on the physical machine. It also keeps the resources for virtual machines seperate and secure. The removal of the domain0 operating system eleviates the concerns of security holes or maintenece effecting the virtual machines. Also, because the hypervisor has total control over the hardware there are far more possilibilites for optimization. For example, VMware ESX has the ability to share memory pages between similar virtual machines. This means is that when the first Windows virtual machine is booted, Windows is loaded into memory. Then when subsequent machines are booted memory pointers are created to duplicate memory pages. Having this type of control is also what allows functions such as VMotion from VMware.
- Pros:
-
- More control over hardware.
- Increased managability through the availability of centralized management.
- Increased availability for virtual machines.
- Cons:
-
- Can be more costly.
- More difficult to manage for a new user.
- Examples:
-
- VMware ESX Server (vSphere)
- Microsoft Hyper-v (this is a point of debate in some circles, has some reliance on d0 still)
- Citrix Xen Server
Application Virtualization
Now on to App Virtualization. This is sort of a different topic, but still relates here. The idea here is to extend some of the benefits of server virtualization down to the application layer.
Applications can be placed in a “sealed” sandbox where they do not have the ability to effect the underlying operating system components directly. This can be extremely useful for running multiple conflicting versions of the same software on the same system. Keep in mind that this technology can be combined with other virtualization technology to achieve even higher levels of control. This is also a way to prevent applications from contaminating a clean operating system image on a client computer or server.
- Pros:
-
- Increased control.
- Increased security through sandboxing.
- Ability to run multiple colliding applications.
- Cons:
-
- Additional layer of complexity.
- Increased cost.
- Examples:
-
- VMware ThinApp
- Microsoft
- Citrix XenApp
- Microsoft Application Virtualization (formerly SoftGrid)
That should give an overview of the technology involved in most server virtualization infrastructures. The one technology that I did not talk about is desktop virtualization – the virtualization of client computers versus virtualization on client computers (which is hosted virtualization) like I did discuss. This technology is very similar and often runs on the same infrastructure as hypervisor based virtualization. For example, VMware’s product VMware View runs ontop of a VMware ESX infrastructure.
If there are any questions or I left anything out, please be sure to let me know. I will probably adjust this guide as time progresses and things change, so check back!
More Information:
Here I wanted to collect some information for those interested in expanding their knowledge of virtualization technology.
- History & Basics:
- Hosted Virtualization:
-
- VMware Server (formerly VMware GSX Server)
- VMware Workstation
- VMware Fusion
- Microsoft VirtualServer 2005
- Microsoft Virtual PC
- Hypervisor Virtualization:
- Application Virtualization:
-
- VMware ThinApp
- Microsoft Application Virtualization (formerly SoftGrid)
- Citrix XenApp






