Types of Virtualization

In this tutorial we will discuss the different types of virtualization.

Data Virtualization

Availability of right data at the right time is one of the main objectives of virtualization. Data virtualization is analogous to data agility, in which an application is allowed to access data irrespective of its technical details, formatting style and physical location.

As shown in the figure below, data virtualization aligns disparate sources into a single virtual data layer that provides unified access and integration data service.

Data virtualization

Data virtualization

Tools like Red Hat’s JBoss, Denodo, and so on fetch data from multiple heterogeneous sources, integrate it and transform it as per the user’s need. This ultimately results in faster access of data, less replication and high data agility.

Features of data virtualization
  • Modern data integration : The integration and transformation of data is similar to the traditional Extract-Transform-Load Model (ETL Model) but leverages modern features like delivery of real-time data, data federation and data agility.
  • Logical abstraction : This feature introduces the capability of heterogenous data from varied sources, middleware and applications to easily interact.
  • Data blending : It is a feature of Business Intelligence (BI) in which heterogeneous data from multiple sources is combined and fed to the BI tool for analytical queries.

Desktop Virtualization

Desktop virtualization is a technique in which the virtualization layer runs on top of a hypervisor and provides desktop provisioning. It is also alternatively called virtual desktop infrastructure (VDI).

We can relate this type of virtualization with the traditional client-server model where a client requests for service from a centralized and remotely located server.

In desktop virtualization, VDI is responsible for hosting of the desktop environment in a VM that runs on a centralized or remote server. This is the reason why we also sometimes refer to desktop virtualization as client virtualization.

The figure below shows a Virtual Desktop, which is a two-facet centralized server.

Desktop virtualization

Desktop virtualization

User Experience (Thick Client, Desktop, Laptop) on one side and applications (OS, Provisioning & Update Data & Personalization, Application Virtualization) on the other side.

The remote server is responsible for disaster recovery, security, and availability and backup of data.

Features of Desktop Virtualization
  • User’s computer dies; the user’s desktop does not die : If a hardware damage occurs, the failed hardware can be quickly replaced and simply reconnected to the virtual desktop.
  • No installations or updates : Since the operating system and other application software are centrally managed, there is no overhead of installation and regular version updates.
  • Inter device compatibility : The virtual desktop can be accessed by either a desktop machine or by a tablet or mobile device. Also, multiple users can share a common virtual desktop environment, that is, the desktop or application needs to be installed only once and it will be available to multiple users.

CPU Virtualization

CPU virtualization allows a single processor to act as multiple individual CPUs, that is, two separate systems running into a single machine. The objective of CPU virtualization is to enable the users to run different operating systems simultaneously.

As represent in the figure below, a hypervisor layer is installed over the physical hardware.

CPU virtualization

CPU virtualization

Multiple virtual machine monitors are installed over the hypervisor to allow the execution of multiple instances of operating systems.

Currently, all prominent CPUs, including Intel (Intel Virtualization Technology or Intel VT) and AMD (AMD-V) support CPU virtualization.

Since virtualization sometimes requires kernel level and control sensitive instruction which tend to change memory mapping and resource configuration, CPU virtualization is generally disabled by default in BIOS and needs to be enabled manually once using the CPU configuration settings.

Features of CPU Virtualization
  • Virtual preprocessor IDs (VPID) : These are the unique IDs given to each VM that is currently in the running state. This prevents the CPU from flushing out the data structures from the transition look-aside buffers (TLBs) at the time of context switching of VMs. VIPDs therefore help in activating flexibility and quality of service in terms of live VM migration.
  • Descriptor table exiting : This feature prevents the relocation of key system data structures and thereby protects the guest OS from internal vulnerabilities.
  • Pause-loop exiting : This feature enables to detect spin locks in the guest software and avoid lock-holder preemption which reduces overhead and improves performance.
  • Extended page table (EPT) : This technique gives the capability to the guest OS to handle page faults and modify its page tables.

Network Virtualization

In network virtualization, hardware and software resources and their functionalities are encapsulated into a software-based administrative entity.

The ultimate result in a virtual network which is highly efficient in terms of utilization with less time overhead.

The figure below, illustrates that network virtualization creates the virtualized combination of available resources by splitting up the bandwidth into channels so that each device or user can have shared access to all the resources on the network.

Network virtualization

Network virtualization

The advantages of multiple instances of virtual networks are as follows:

  • Each has a separate control and data plane.
  • They coexist together over a single physical network.
Classification of Network Virtualization

Network virtualization can be classified into the following two classes:

  • External network virtualization : In this type of virtualization, a single virtual network is created by either a combination or division of multiple local area networks, administered by the software system. VLAN and network switch are the components of this type of virtualization.
  • Internal network virtualization : This type of virtualization uses a single system to act as a hypervisor (Xen/KVM) to control virtualized network interface cards (VNICs). Each host can have one or more NICs and each NIC can be a base for multiple VNICs.
Features of Network Virtualization

The features of network virtualization are as follows:

  • Partitioning : This feature allows you to create logical network partitions with a programmable control panel so that users can define protocols, network topologies, and functions as per their requirements.
  • Isolation : This feature is kept among various logical network partitions to avoid any kind of interference and reduce the performance.
  • Abstraction : This feature hides the underlying complexities and characteristics of network elements from applications and users.

Storage Virtualization

Virtualization of storage is nothing but assembling of physical storage from heterogenous storage devices to form a large pool of memory which is managed centrally as shown in the figure below.

Storage virtualization

Storage virtualization

By allowing the storage to participate in storage area networks (SANs), we are actually increasing the efficiency, flexibility and load balancing of storage devices.

You should not get confused with the technology of network attached storage (NAS) as SAN is a network of storage devices while NAS is either a single device or a server.

In 2001, Storage Network Industry Association (SNIA) has made an effort to describe the important characteristics of storage virtualization. The group first defined storage virtualization as follows:

  • The act of abstracting, hiding, or isolating the internal functions of a storage system or service from applications, host computers, or general network resources for the purpose of enabling application and network-independent management of storage or data.
  • The application of virtualization to storage services or devices for the purpose of aggregating functions or devices, hiding complexity, or adding new capabilities to lower level storage resources.
Features of Storage Virtualization

The features of storage virtualization are as follows:

  • Non-disruptive data migration : This feature allows data to migrate without disturbing the concurrent I/O access.
  • Improved utilization : Utilization is increased by pooling and migrating.
  • Thin provisioning : Technology dynamically allocates storage capacity to a volume as per the usage requirement, that is, it allows you to tell the application that it has sufficient storage without actually assigning storage to it.

Server Virtualization

In the traditional client-server architecture, the server machine runs only one instance of resources. These resources can be processors, operating systems, application software, memory and so on.

The idea of server virtualization is to divide a physical server machine into a number of logically isolated virtual machines and thereby create a number of instances of resources as shown in the figure below.

Server virtualization

Server virtualization

Adopting this approach serves the advantage that rather than deploying number of servers that may not be fully utilized, numerous virtual machines can run on the same physical platform.

For example, in a company payroll system, rather than using separate servers for employee database, email server and document maintenance, all these applications can be virtualized onto a single server machine.

A server can be virtualized by any of the following techniques:

  • Hypervisor or a VAM is a software layer that exists between the hardware machine and the operating system is used to handle kernel level instructions, queuing and processing client’s requests, and so on.
  • Paravirtualization is a hypervisor-based virtualization in which the performance of a virtual machine is enhanced by pre-virtualization of the guest OS before installing it on the virtual machine. The idea behind paravirtualization is to prepare the machine for virtualization and abstract the underlying hardware resources from the software that uses those resources. Xen and User Mode Linux (UML) are examples of server virtualization through paravirtualization.
  • Hardware virtualization is similar to a paravirtualization except that some hardware assistance is provided. AMD-V Pacifica and Intel VT Vanderpool are examples of hardware supported virtualization.
  • OS virtualization provides multiple but logically isolated virtual machines that run on the operating system kernel. The technique is also called shared kernel approach because all the virtual machines share the same kernel of the host operating system. Free VPS, Linux Vserver are examples of OS level virtualization.
Features of Server Virtualization

The features of server virtualization are as follows:

  • Partitioning : This feature allows multiple virtual servers to run on one physical server at the same time.
  • Isolation : The virtual servers running on the physical server are completely isolated and don’t affect the execution of each other.
  • Encapsulation : All the information on virtual servers, including boot disks is saved in the file format.
  • Hardware independence : A virtual server runs as it is after migration to different hardware platforms.
  • Improved business continuity : Live migration of virtual severs to another physical server results in maintenance of servers without shutting down and hence improves availability and business continuity.

Virtualization in Cloud

The ultimate aim of cloud technology is to be ubiquitous, pervasive, and agile but with an unquenchable thirst for collaboration and sharing of resources.

Virtualization plays a very vital role in achieving these objectives and empowering cloud. To convert your ideas into a streamline business, the enterprise needs business applications which are very expensive and come with a complicated software stack.

Whenever the new version releases, the updating can cause incompatibility among the stack and break the whole system down.

To overcome this problem, virtualization is used.

Virtualization not only provides sharing of data but also sharing of infrastructure. Through virtualization, the resources become massively scalable and can be integrated with IT-related capabilities.

The capabilities of virtualization and sharing of infrastructure in the Cloud computing paradigm is fulfilled by three major distribution models, namely, SAAS, PAAS, and IAAS.

Google Apps and Cisco WebEx for SAAS, Microsoft Azure, and Google App Engine for PAAS, Rackspace and Amazon AWS for IAAS are some third-party providers that host applications, platform and infrastructure over cloud.