Types of Server Virtualization

VN:F [1.9.22_1171]
Rating: 8.7/10 (6 votes cast)

Hello geeks-hub.com users this is part II of ‘Virtualization Series’. In this article we are going to review what Server Virtualization is? Then we will describe different types of server virtualization. So continue reading it and have great time with us.

Server virtualization is the most dominant form of virtualization in use today. In server virtualization each virtual machine runs its own operating system known as “guest Operating system”. Typically this guest operating system is running onto another operating system called “Host Operating System” with the help of virtualization software. Each virtual machine (VM) running in this manner is totally unaware of any other software is also running on the same fabric. This transparency is achieved by employing different virtualization techniques. There is no special requirement for the installation or management of virtual machine. Virtual machine runs its own kernel regardless of system-level virtualization in which instances share the same kernel. Virtualization administrator uses Virtualization Management Console (VMC) to manage virtual machines. There are different types of Server Virtualization which are common these days.

Types of Server Virtualization

  • Guest OS/Virtual Machine Model
  • Hypervisor Model
  • Para Virtualization Model
  • Full Virtualization Model
  • Hardware Virtualization Model
  • Kernel Base Virtualization Model
  • Shared Kernel Virtualization Model

Guest OS/Virtual Machine Model

This is a very common type of virtualization. Many of you must be familiar with this type of virtualization and might have done it in their career. In this virtualization model each Virtual Machine (VM) runs as a separate instance of operating system within the virtualization software. Virtualization software itself runs in another operating system which is installed on the hardware. The operating system on which the virtualization application runs is often referred to as the “Host Operating System (OS)” because it provides the execution environment for the virtualization application.This virtualization technique does not require any modification in the “guest OS”. Parallels Workstation, VMWare Workstation, VMWare GSX Server and Oracle Virtual Box are the most common examples of this type of virtualization. Here is the diagram for this type of virtualization.

Virtual Machine Model/Guest OS

Virtual Machine Model/Guest OS

Hypervisor based Virtualization

In Hypervisor based virtualization a thin software layer called virtual machine monitor (VMM) or hypervisor runs on the top of machine’s hardware and provides the necessary features and services required for smooth operation and execution of virtual machines. Hypervisor identifies traps and responds to protected or privileged CPU instructions made by each virtual machine. 

Hypervisor identifies traps and responds to protected or privileged CPU instructions made by each virtual machine.

It also handles queuing, dispatching and returning the results of hardware requests made by virtual machines. An administrative operating system or virtual machine console also runs on the top of the hypervisor, whose main purpose is the administration and management of virtual machines. Virtual machine monitor or hypervisor runs directly on physical hardware, allowing administrators to create different virtual machines with their own separate hardware like CPU, memory, hard drives. Each virtual machine has unlimited and un-restricted access to its hardware. While un-aware of the fact that there are many other virtual machines are also running which are sharing server resources. Guest operating systems do not need to modify to run on hypervisors.

Hypervisor based Virtualization

Hypervisor based Virtualization

Para Virtualization

Paravirtualization is also based on hypervisor virtualization model. It eliminates much of the trapping-and-emulation overhead associated with software implemented virtualization. It requires that guest operating system should be recompiled or modified before installation inside the virtual machine. 

Paravirtualization is the most efficient virtualization technique at the cost of flexibility and security

Due to modification in guest operating system it gives performance enhancement over other techniques because the modified guest OS communicates directly with the hypervisor, and eliminates overheads occurred due emulation process. Paravirtualization is the primary model used by Xen, which uses a customized Linux kernel to support its administrative environment, known as domain0. Xen can also take advantage of hardware virtualization to run unmodified versions of operating systems on top of its hypervisor.

Paravirtualization Model

Paravirtualization Model

Paravirtualization with XEN

Paravirtualization with XEN

Full Virtualization

Full virtualization is very similar to paravirtualization model. It contains functionality to emulate the underlying hardware when necessary. Full virtualization causes the hypervisor to “trap” the machine operations the OS uses to read or modify the system’s status or perform input/output (I/O) operations. After it has trapped them, the hypervisor emulates these operations in software and returns status codes consistent with what the real hardware would deliver. That’s why unmodified operating system can run on the top of hypervisor. VMWare ESX server uses this technique to achieve virtualization. It uses a customized version of Linux known as Service Console as its administrative operating system. It is not fast as paravirtualization.

Full Virtualization

Full Virtualization

Hardware Assisted Virtualization

Hardware Assisted Virtualization is very similar to paravirtualization and full virtualization model in its operation. It uses a hypervisor technique but it is only available on systems that support hardware virtualization. It relies on hardware extensions to the x86 system architecture to eliminate much of the hypervisor overhead associated with trapping and emulating I/O operations and status instructions executed within a guest OS. Hypervisors – based systems such as Xen and VMWare ESX Server, and kernel – level virtualization technologies such as KVM, can take advantage of the hardware support for virtualization that is provided on the latest generation of Intel (Intel VT, aka Vanderpool) and AMD (AMD – V, aka Pacifica) processors. Virtual machines in a hardware virtualization environment can run unmodified operating systems because the hypervisor can use the hardware ’ s support for virtualization to handle privileged and protected operations and hardware access requests, and to communicate with and manage the virtual machines.

Kernel Level Virtualization

This type of virtualization does not require a hypervisor, but instead runs a separate version of the Linux kernel and an associated virtual machine as a user – space process on the physical host. This provides an easy way to run multiple virtual machines on a single host. KVM uses a device driver in the host’s kernel for communication between the main Linux kernel and the virtual machines. It requires processor support for virtualization (Intel VT or AMD – v) and uses a slightly modified QEMU process as the display and execution container for its virtual machines. Examples of this are User – Mode Linux (UML), which has been supported in the mainline Linux kernel for quite a while but requires a special build of the Linux kernel for guest operating systems, and Kernel Virtual Machine (KVM), which was introduced in the 2.6.20 mainline Linux kernel. UML does not require any separate administrative software in order to execute or manage its virtual machines, which can be executed from the Linux command line. In many ways, KVM ’ s kernel – level virtualization is a specialized version of full virtualization, where the Linux kernel serves as the hypervisor, but I think that UML and KVM are unique enough to merit their own class of server virtualization.

Linux Kernel Virtualization (KVM)

Linux Kernel Virtualization (KVM)

System Level or OS Virtualization

The system – level virtualization describes various implementations of running multiple but logically distinct system environments on a single instance of an operating system kernel. It is also called shared kernel approach because all the virtual instances shared a common kernel of host operating system. It is based on the change root “chroot” concept that is available on all modern UNIX  like systems. chroot works during boot up process. The kernel can use root filesystems such as those provided by initial RAM disks or initial RAM filesystems to load drivers and perform other early – stage system initialization tasks. The kernel can then switch to another root filesystem using the chroot command in order to mount an on- disk filesystem as its final root filesystem, and continue system initialization and configuration from within that filesystem. The chroot mechanism as used by system – level virtualization is an extension of this concept, enabling the system to start virtual servers with their own sets of processes that execute relative to their own filesystem root directories. The core differentiator between system level and server virtualization is whether you can be running different operating systems on different virtual systems.

If all of your virtual servers must share a single copy of an operating system kernel, this is system – level virtualization.  If different virtual servers can be running different operating systems, including different versions of a single operating system, this is server virtualization solutions such as FreeBSD ’ s chroot jails, FreeVPS, Linux VServer, OpenVZ, Solaris Zones and Containers, and Virtuozzo are all examples of system – level virtualization.

FreeBSD jails can run logically distinct versions of FreeBSD user – space on top of a single FreeBSD kernel, and can therefore use different instances or versions of libraries, server processes, and applications.  Solaris containers and zones all share the same underlying version of Solaris, and can either use completely distinct root filesystems or share portions of a filesystem.

Linux – VServer, FreeVPS, and OpenVZ can run different Linux distributions in their virtual servers,  but all share the same underlying kernel.

System – level virtualization provides some significant advantages over server or machine virtualization. The key to all of these is that, because they share a single instance of an operating system kernel, system – level virtualization solutions are significantly lighter weight than the complete machines (including a kernel) required by server virtualization technologies. This enables a single physical host to support many more “ virtual servers ” than the number of complete virtual machines that it could support. System – level virtualization solutions such as FreeBSD ’ s chroot jails, Linux – VServer, and FreeVPS have been used for years by businesses such as Internet Service Providers (ISPs) to provide each user with their own virtual server, in which they can have relatively complete control (and, in some cases, administrative privileges) without any chance of compromising the system ’ s primary security configuration, system configuration files, and filesystem. System – level virtualization is therefore most commonly used for server consolidation. The primary disadvantage of system – level virtualization is that a kernel or driver problem can take down all of the system – level virtual servers supported on that system.

Shared Kernel based Virtualization

Shared Kernel based Virtualization

Please spare your valuable time to comment or rate the article, thank you

Types of Server Virtualization, 8.7 out of 10 based on 6 ratings

3 comments to Types of Server Virtualization

Leave a Reply

  

  

  

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>