In earlier post I talked about what is virtualization. In this post I am going to talk about types of Virtualization and their difference.
Nowadays virtualization is applicable to everything. As mentioned in the earlier post:
Even something as simple as partitioning a hard drive is considered virtualization because you take one drive and partition it to create two separate hard drives. Devices, applications and human users are able to interact with the virtual resource as if it were a real single logical resource.
So according to the broad areas we can divide the areas as following:
Storage Virtualization: the amalgamation of multiple network storage devices into what appears to be a single storage unit.
Server Virtualization: the partitioning of a physical server into smaller virtual servers.
Operating system-level virtualization: a type of server virtualization technology which works at the operating system (kernel) layer.
Network Virtualization: using network resources through a logical segmentation of a single physical network.
Application Virtualization : Virtualization at the application level.
In this posts we will talk more about Server, Operating System level virtualization.
Where guest OS is not aware about the underlying virtualized hardware. Normal OS can be installed and run on these environments as it is, no change is required.
Example : VMware vSphere (ESXi), Microsoft Hyper-V, Red Hat KVM etc.
Guest OS is aware of the underlying virtualized hardware. Normal OS can not be installed and run on these environments. The kernel of the Guest OS is updated and made aware of the environment.
Example : Xen Kernel virtualization (earlier)
Bare Metal Virtualization (Type 1):
Hosted Virtualization (Type 2):
In the later sections I am going to talk about Bare Metal Virtualization as this is the Enterprise level virtualization.
Hosted vs Bare Metal Hypervisor Pictorial view:
In Part C I am going to talk about underlying technology and it actually works.