Server & I/O Virtualization Vs Cloud Computing

Date:   Friday , February 04, 2011

There is a new buzz word in the corporate community called “Cloud Computing”. Every company now wants to be on the Cloud 9 by leveraging the advantages of Cloud Computing. But not many know what Cloud Computing is and how it is different from Virtualization. For an average non-geek person cloud computing is still a cloudy concept. In a brief manner, Virtualization means to virtualize your resources. What does this mean? This simply means that instead of having physical resources one ought to have virtual resources. In computing terms, resources include CPU, memory and I/O infrastructure; be it USB or TCP/IP based Network Connectivity or Serial Com Port connections to name a few.
The Myth
Cloud computing and Virtualization is not the same. They address different aspects of provisioning Cloud services. When we talk about Virtualization we mean the hardware aspect of it and that means to virtualize the hardware resources whereas Cloud Computing is more about the software aspects of it and how to provide software solutions by utilizing the Cloud.
Here most of the research is going on Automation and Web Service areas.

Hardware Virtualization
What is hardware virtualization? It’s basically about how we see our hardware resources. Virtualization means virtualizing the physical resources you have in your system. For instance, we can virtualize a single CPU machine into a machine which comprises of a couple of virtual CPU thereby increasing the resource utilization. Similarly the physical available memory in the system can also be virtualized.
To virtualize this we need to have some software which controls the hardware rather than the Computer Operating System taking complete control of the hardware resources. And this piece of software has to sit in between your Operating System and Hardware. In modern computer science terminology they are called as hypervisor.
If you look back in the history IBM had come up with the first industry standard hypervisor way back in 1960s. They have CP/CMS operating system which has an extra layer of software which sits in between the hardware and the operating system. IBM AIX has LPAR and DLAR based logical partitioning that enabled logical partitioning of the storage.
In modern times, we have hypervisor from the pioneer VMWare, and they are the guys who shown the new world the power of virtualization and virtual resources. VMWare popularize the concept of virtual hardware and operating system. VMWare has a software called VMWare Workstation (VM Player 3.1 also has this capabality build-in) using which we can create a virtual machine.
So, what is a virtual machine? A virtual machine is a software object which simulates as a real computer system by sitting inside a real operating system in a real hardware. For example, lets consider a simplistic scenario. You can have a Linux Fedora Guest VM in VMWare Player inside a Windows XP Host machine. Does this Host and Guest words sounds confusing to you? The Host machine is the one which has the real access to the hardware or the base operating system and Guest is the one that runs inside VMWare Player as a virtual machine. The virtual machine does not have real access to the computer hardware in the system. It is the Host system that assigns parts of the available hardware resources to the virtual machine.
VMware, the commercial virtualization solution, is an example of full virtualization. Paravirtualization is provided by Xen, User-Mode Linux (UML) and others.

Too many products
In recent time since everyone wants to be in the same space, different companies have created different solutions addressing the similar problem if not the same problem. To name a few are VMWare has a bunce of products that can be used to virtualize the hardware infrastructure.
ESX is one of the main component in this regard. ESX is a hypervisor which controls thehardware resources. And there are Operating Systems(OS) on top of it. Similarly we have Open Source Xen community. Xen is an open source server virtualization solution. Citrix has bought Xen sometime back in 1993. And since then the popular XenServer become Citrix XenServer. And the good thing that Citrix did is, they made Xen opensource. After Xen become open source Oracle started building up their own front end management infrastructure to work with the Xen Hypervisor. Oracle picked up the same backend Xen community source and build up a web based Java GUI to monitor and manage the Xen Server, they call it as Oracle VM Manager. In case of Citrix the management part is done by a desktop GUI component, whereas in case of Windows this is done by Host machine. Using both the GUI based Xen Server Manager we can connect to multiple Xen Servers or use multiple VMs in side a single Xen Server. Then there is VirtualBox from Sun, which is again another software that provide provisioning virtual machine like VMWare Player.
Microsoft has also followed the trend and come up with their own hypervisor software called HyperV to manage Windows Servers. The best part of VirtualBox is that they try to run the guest code natively on the host processor as far as possible. This works well for guest OS as long as we use the user mode code running in ring 3 of Intel architecture, but when it comes to privileges instructions that run in ring 0 they are intercepted by the hypervisor, and fools the processor as if the instructions are running in ring 1 instead of ring 3.
The latest entrant in this space is the Red Hat supported and Linux Kernel community back uped KVM, the Linux Kernel Virtual Machine. Don’t get confused with the older KVM switch which means Keyboard, Video, Mouse. KVM is the Linux kernel (from 2.6.20 version) provided full virtualization infrastructure. KVM supports native virtualization using the advance virtualization hardware support on the processor. In case of Intel it is Intel VT-x and in case of AMD it is AMD-V.


Kongkon Dutta, Technical Lead, Ness Technologies.