1. Introduction to Virtualization
Virtualization is abstracting the hardware to run virtual instances of multiple guest operating systems on a single host operating system. You can see Virtualization in action by installing Microsoft Virtual PC, VmWare Player or Sun VirtualBox. These are desktop virtualization solutions that let you install and run an OS within the host OS. The virtualized guest OS images are called Virtual Machines. The benefit of virtualization is realized more on the servers than on the desktops.
There are many reasons for running Virtualization on the servers running in a traditional data center. Here are a few:
1.1 Mean Time To Restore
It is far more flexible and faster to restore a failed web server, app server or a database server that is running as a virtualized instance. Since these instances are physical files on the hard disk for the host operating system, just copying over a replica of the failed server image is faster than restoring a failed physical server. Administrators can maintain multiple versions of the VMs that come handy during the restoration. The best thing about this is that whole copy and restore process can be automated as a part of disaster recovery plan.
1.2 Maximizing the server utilization
It is very common that certain servers in the data center are less utilized while some servers are maxed out. Through virtualization, the load can be evenly spread across all the servers. There are management software offerings that will automatically move VMs to idle servers to dynamically manage the load across the data center.
1.3 Reduction in maintenance cost
Virtualization has a direct impact on the bottom line. First, by consolidating the data center to run on fewer but powerful servers, there is a significant cost reduction. The power consumed by the data center and the maintenance cost of the cooling equipment comes down drastically. The other problem that virtualization solves is the migration of servers. When the hardware reaches the end of the lifecycle, the physical servers need to be replaced. Backing up and restoring the data and the installation of software on a production server is very complex and expensive. Virtualization makes this process extremely simple and cost effective. The physical servers will be replaced and the VMs just get restarted without any change in the configuration. This has a lot of impact on the IT budgets.
1.4 Efficient management
All major virtualization software have a centralized console to manage, maintain, track and monitor the health of physical servers and the VMs running on these servers. Because of the simplicity and the dynamic capabilities, IT administrators will spend less time in managing the infrastructure. This results in better management and cost savings for the company.
2. Virtualization on the Server
Let’s understand more about the server virtualization. Typically the OS is designed to act as an interface between the applications and the hardware. It is not specifically designed to run the guest OS instances on top of it.
In fact, in the server virtualization scenario, the host OS is not very significant. It is just confined to booting up and running the VMs. Given the fact that the OS is not ideal for running multiple VMs and has a little role to play, there is a new breed of software called Hypervisor that takes over the OS. Hypervisor is an efficient Virtual Machine Manager (VMM) that is designed from the ground up to run multiple high performant VMs. So, a Hypervisor is to VMs what an OS is to processes.
A Hypervisor can potentially replace the OS and can even boot directly from a VM. This is called bare metal approach to virtualization. These Hypervisors have low footprint of few megabytes (vmWare ESXi is just 32MB in size!) and have an embedded OS with them. Hypervisors are assisted by the hardware virtualization features built into the latest Intel and AMD CPUs. This combination of hardware and Hypervisor turns the server into a lean and mean machine to host multiple VMs. The VM that is used by the Hypervisor to boot as a host is called a paravirtualized VM. This concept makes virtualization absolutely powerful. Imagine a server booting in few seconds and the required paravirtualized (host) VM gets copied over a gigabit Ethernet to run multiple guest VMs. This turns the datacenter to be very dynamic and agile. The Hypervisor can be controlled by a central console and can be instructed about the host VM to boot and the guest VMs to be run on it.
3. A look at the Hypervisor market
3.1 Citrix XenServer
This product is based on the proven, open source Hypervisor called Xen. Xen’s paravirtualization technology is widely acknowledged as the fastest and most secure virtualization software in the industry and it is enhanced by taking full advantage of the latest Intel® VT and AMD-V™ hardware virtualization assist capabilities. This product is free and can be downloaded from Citrix.com.
3.2 VMware ESXi
This product is another bare metal Hypervisor from the virtualization leader, VMware. This is one of the best Hypervisors with just 32MB footprint. ESXi ships with Direct Console User Interface (DCUI) that provides basic UI required for administering and managing the Hypervisor. Through its standard Common Information Model (CIM) system, it also exposes the APIs to control the infrastructure.
3.3 Microsoft Hyper-V Server
This is a free Hypervisor from Microsoft based on the same Hypervisor that ships with Microsoft Windows Server Hyper-V edition. This is best suited for Virtual Desktop Infrastructure (VDI) because of its compatibility with Windows Vista and Windows 7. Hyper-V does not have any local GUI but can be managed from System Center Virtual Machine Manager (SCVMM).
4. Virtualization and the Cloud
The architecture that we discussed forms the heart and soul of Cloud Computing. Here is how –
4.1 Elasticity
We know that the key attribute of the Cloud is Elasticity, which is the ability to scale up and scale down on the fly. This capability is achieved only through virtualization. Scaling up is technically adding more server VMs to an application and scaling down is detaching the VMs from the application.
4.2 Self Service
The next attribute is Self Service. The Hypervisor comes with an API and the required agents to manage it remotely. This functionality can surface through the Self Service portals that the Cloud vendor offers. So, when you move a slider to increase the number of servers in your web tier, you are essentially talking to the Hypervisor to action that request.
4.3 Pay-By-Use
Pay-By-Use is the next attribute of the Cloud. By leveraging the management and monitoring capabilities of the Hypervisor, metering the usage of resources like the CPUs, RAM and storage can be easily achieved.
4.4 Programmable Infrastructure
Programmable Infrastructure is the last key tenet of the Cloud. We already saw how the API wired into Hypervisors can be leveraged. Developers can directly talk to the Hypervisor through the native APIs or Web Services exposed by the Cloud vendors. Through this, they can take the control of the VMs.
It is very obvious that the Cloud is heavily relying on virtualization and efficient Hypervisors to achieve its goal.
5. Dissecting the Cloud
Now that we know how Virtualization forms the core of the Cloud, let’s me put things in perspective. Let’s see what actually goes inside the Cloud.
5.1 Geographic location
We start deciding where to physically run our application. Most of the Cloud providers give you an option to host your application at a specific location. Depending on the customer base and the expected user location, you can choose a location. This will ensure that all your components like storage, compute and database services are hosted within the same data center. This will reduce the latency and makes the application more responsive.
5.2 Data Center
Though you do not have a direct choice in this, your app will be deployed at a data center physically located at a place that you have chosen. These data centers typically run thousands of powerful servers that offer a lot of storage and computing power.
5.3 Server
You never know which physical server is responsible for running your code and the application. In most of the cases, the app that you deployed may be powered by more than one server running within the same data center. You cannot assume that the same physical server will run the next instances of your app. Servers are treated as a commodity resource to host the VMs. There is no affinity between a VM and a physical server. Each server in the data center is optimally utilized at any given point.
5.4 Virtual Machine
This is the layer that you will directly interact with. In Platform as a Service (PaaS), you may not realize that you are dealing with a VM but in reality most of the Cloud implementations will host your code or app on a VM. VMs are essential to respect the 4 tenets of the Cloud. Your application runs on a VM that is managed by the Hypervisor running across all the servers. These VMs are moved across servers based on the server utilization. There is no guarantee that the VM that you launch will run on the same physical server. There will be a load balancer which will ensure that your applications are scalable by exploiting the power of all the VMs associated with your application.
In this article we have discussed the basics of server Virtualization and saw how it forms the core of the Cloud Computing architecture.
Download the PDF version of this article


As a Cloud Computing Strategist, Janakiram MSV helps businesses understand and adopt the Cloud Computing paradigm. His core strength is designing and architecting solutions for the Cloud. Janakiram focuses on industry's leading Cloud Computing offerings including Microsoft Windows Azure.











