Virtualization is in a sense a constructed reality.  A virtual machine emulates a physical machine, but is not a real physical entity.  Physical servers are transformed into virtual server instances hosted on single physical servers.  The abstraction that is achieved is the abstraction of computer hardware resources — where one computer performs the function of several computers.  The virtualization may result in:

  • Platform virtualization or separation of the operating system from underlying platform resources
  • Resource virtualization or separation of storage volumes, name spaces and network resources
  • Application virtualization or hosting of individual applications on alien hardware, and
  • Desktop virtualization or remote manipulation of a computer desktop

Virtualization can be full virtualization or paravirtualization.

In full virtualization there is an identical abstraction of the underlying hardware. The guest operating systems do not have to be changed.  All machines do not have to be virtualized. An example of full virtualization is VMware.

Paravirtualization creates an almost identical abstraction of the underlying hardware. All machines are virtualized and even machines that are not virtualizable are virtualized by implementing specific instructions.  Guest Operating Systems are modified and the methodology delivers better performance than full virtualization.  Examples of paravirtualization are Xen and Denali.

The virtual machine monitor (VMM) allows the Administrator control the hardware resources.  All instructions at the administrative level is considered privileged and will be executed by an OS. Users will only see the guest operating systems that exist on the virtual machine and all non privileged instructions of the user will be executed directly by the machine.

Virtualization is attractive because it consolidates data center services, reduces costs,  creates compartmentalized environments with different guest operating systems, makes for greater reliability and availability and ensures that software failure on one virtual machine does not impact other virtual machines on the server. Furthermore, virtualization enables dynamic workload allocations using automatic computing techniques. The encapsulation of load balancing features makes it easy to migrate the VM to other platforms for performance improvement. Legacy applications can continue to run on familiar operating systems, now running as guest OSs on the Virtual Machine.

Care should be taken that all the “eggs are not in one basket” during virtualization.  Virtual machines of different types should be placed in different physical servers to maintain redundancy and spread risk of disaster. The servers can then be clustered for failover and maximum possible uptime.

Virtualization is not the same as Cloud computing, but virtualization is a Cloud enabler.