Virtualization technology enables organizations to take the benefit of different services, operating systems, and softwares without increasing their IT infrastructure liabilities. Virtualization software partitions the physical servers in multiple Virtual Machines (VM) where each VM represents a complete system with the complete computing environment. This chapter discusses the installation and deployment procedures of VMs using Xen, KVM, and VMware hypervisor. Microsoft Hyper-v is introduced at the end of the chapter.
TopIntroduction
Virtualization follows various approaches directly related to the architecture of the Virtual Machine Monitor (VMM) or Hypervisor. In the hosted architecture the VMM runs as an application on the host operating system and relies on it for resource management, system memory devices and drivers. It is also responsible for starting, stopping and managing each virtual machine and also controls access of virtual machines to the physical system resources. Virtualization system that follows this approach is the VMware Workstation. The architecture of VMware Workstation is shown in Figure 1.
Figure 1. Virtual machine monitor hosted architecture
In the autonomous architecture, the VMM is placed directly above the hardware. Thus, it is responsible for managing system resources such as CPU, RAM and Hard disk etc. and allocate to different virtual machines. This architecture is more efficient because the VMM has direct access to system resources.
An example of an autonomous architecture is Xen as shows in Figure 2.
Figure 2. Virtual machine monitor autonomous architecture
The guest operating systems run with limited privileges and doesn't have direct access to hardware. Thus, it is difficult to virtualize some critical operating system instructions because their implementation requires higher privileges.
The x86 processor architecture includes four privilege levels (rings). The operating system kernel running at level 0, has the highest privileges. This level provides complete control of system hardware. Simple applications runs on level 3has limited privileges.
Levels 1 and 2 are not used. Thus, in a Virtualization environment the guest operating systems are runs as an application. For this reason some critical instructions that require more privilege cannot be virtualized. Two techniques were followed to solve this problem they are: Full Virtualization and Paravirtualization.
TopFull Virtualization
Full Virtualization provides total abstraction of the underlying physical system and creates a new virtual system in which the guest operating systems can run. No modifications are needed in the guest OS or application. So, any software that is capable to run in the real system can run without changes in the virtualized environment. In order to execute the critical instructions, a technique known as binary translation is used. In this technique, the software is patched while it runs. For example the critical instructions that cannot run in the virtual environment are replaced by different instructions that can run safely. However, continuous scanning and emulation of critical instructions reduces performance. Some examples of full Virtualization systems are the VMware Workstation and VirtualBox. (see Figure 3)
TopParavirtualization
Paravirualization requires modification of the guest operating systems that run on the virtual machines i.e. the guest operating systems are aware that they are running on a virtual machine. The main purpose of paravirtualization is to reduce the time spent in performing critical patches on the guest's unsafe instructions. This is achieved by modifying the client software so it can communicate with the VMM, which run at ring 0 and has direct access to hardware. So, when an application needs to perform a critical instruction, the guest operating system communicates directly with the VMM and executes. Examples of this technique are the Xen and Denali. (see Figure 4)