Monday, August 24, 2009

Virtualization Explained (for x86 based system) - Server Virtualization

Virtualization can be applied to any specific hardware (CPU, storage, memory, network, etc) through the use of software/hardware and it has been part of our lives for a very long time (think of using Virtual Page File in Windows or JVM of Java). But in today’s world and in coming future, it will be “most talked/hyped term” in IT field, specially in relation to Cloud Computing.
Virtualization is one of the key enablers for “Cloud Computing” and because of Virtualization of CPU for x86 based architecture in this decade, it has gained popularity.
(Please note that historically IBM has coined “Virtualization” term in early 70’s for their p-series and i-series based systems)
Though there are no such standards in classifying Virtualization for CPU, the most popular techniques/categories are as follows implemented using Hypervisor or VMM:
Þ       OS assisted virtualization or para-virtualization
Þ       Full virtualization
Þ       Hardware assisted virtualization
Note:
Virtual Machine Monitor (VMM) or Hypervisor – A software layer which lies between hardware (or metal as called by hardware techies) and one or more operating systems. In simple terms, Hypervisor is the software enabler for virtualization.
OS assisted virtualization or para-virtualization
 
As it suggests, this technique depends on support from Operating System for virtualization and hence OS kernel needs to be modified for this purpose. Clearly, Windows OS (XP, Vista) will not be supported because they can not be modified because of closed-source development model.
Modified OS kernel replaces non-virtualized instructions from user applications to hypercalls understandable by hypervisor, which communicates with hardware-layer.
Mostly, all para-virtualization based virtualization solutions are using Xen (an open source para-virtualizer). 
 
Advantages:
Better Performance & Efficiency
Disadvantages:
Security Concerns (because of OS kernel modification), Less support from closed-source OS like Windows, High maintenance cost (upgrades)


Full virtualization
Full virtualization does not modify guest Operating System rather it uses Binary Translation for non-virtualized instructions and direct execution for virtualized instructions. Guest OS is not even aware that it is being virtualized.
Full virtualization is the only solution if situation warrants no hardware assist or operating system assistance.
Advantages:
Best Isolation & Security. Simplifies migration & portability as no OS modification is needed.
Disadvantages:
Slower in comparison to para-virtualization
 
Hardware assisted virtualization (or accelerated virtualization)
Hardware-assisted virtualization was not possible for x86-architecture till 2006 and that was the main reason for emergence full-virtualization and para-virtualization techniques for x-86 architecture, which rely on software for virtualization.
Hardware vendors (e.g. Intel VT, AMD-V) are key enablers in hardware virtualization for. It gives best performance among all virtualization techniques.
Virtualization can broadly classified into two segments – Desktop Virtualization (or Virtual Desktop Infrastructure, VDI) & Server Virtualization
This article discussed only Server Virtualization using Hypervisor.
Server Virtualization can also be achieved using following other techniques:
1. Guest OS Virtualization - Installing Virtualization Software on Operating System and then creating one or many Virtual Machines
2. Kernel Virtualization - Generally applicable to Linux/Unix modified Kernel

Also, Hypervisors are generally classified as follows:
  • Type 1 (or bare metal) - VMM in Ring 0, Guest OS in Ring 1 e.g. VMware ESX
  • Type 2 (or hosted) - Host OS in Ring 0, VMM in Ring 1 e.g. VMware Server (earlier called as GSX)
  • Hybrid - Host OS (Kernel mode) & VMM co-exists in Ring 0
Leading Vendors for Server Virtualization
VMware (Leader & most promising in Server Virtualization with market share > 80%) – ESX, GSX (free to use license)
Virtualiron (acquired by Oracle, Xen based)
Citrix (Desktop Virtualization is Core Business; emerging leader in Server Virtualization specially after acquiring XenSource in 2007)
ORACLE (strengthening their virtualization stack with free to use license, Xen-based)   
SUN (innovative & renowned in Server Virtualization with Solaris Zones, LDOM)
IBM (early providers of virtualization with their proprietary architecture, p-series, i-series)
Microsoft (emerging leader with their Hyper-V technology in Windows Server 2008)
RedHat (Xen-based, claims to provide first product to deliver commercial quality open source virtualization)

In terms of core technology point of view, in essence, there are only 2 major ways world is leading towards providing server virtualization:
  • Xen-based (open source)
  • VMware based (closed source)
Feel free to discuss it further in more detail.
Disclaimer:
All data and information provided on this site is for informational purposes only. This site makes no representations as to accuracy, completeness, currentness, suitability, or validity of any information on this site and will not be liable for any errors, omissions, or delays in this information or any losses, injuries, or damages arising from its display or use. All information is provided on an as-is basis.This is a personal weblog. The opinions expressed here represent my own and not those of my employer or any other organization.