Vous êtes sur la page 1sur 12

A Survey on Virtualization levels and

Technologies
Humera Aamreen
Department of Computer Science
Virginia Commonwealth University
Richmond, Virginia
aamreenh@vcu.edu

Abstract: Virtualization technology has emerged as a core interaction”. The vast storage and computing
technology of Cloud Computing. It enables the creation of resources and services provided by the cloud are
multiple virtualized resources on a single platform that achieved through the concept under discussion,
fosters easy deployment and management of workloads Virtualization in Cloud Computing.
alongside providing better performance due to the
independent running of the Virtual Machines. This
Virtualization is a key element of Cloud computing
widely adopted technology works by abstracting the
underlying hardware or software through an intelligent that provides the virtual storage and computing
layer that provides the necessary functionalities. This services to its users through the internet. In its
paper surveys the concept of Virtualization and their simplest terms, “Virtualization” refers to a virtual
architectural components by directing the survey towards image or version of something. Virtualization in
all the Virtualization levels available with a description of cloud computing implies the making of versions of
the widely used Virtualization technologies. The paper is servers, network resources, operating system or
aimed to provide insights into the working of storage devices in such a way that its use can be
Virtualization at various levels through a demonstration exploited on multiple machines at the same time,
of the popular Virtualization technologies at that level.
from different locations, to provision its users with
And the paper also enlists the properties and importance
of adopting this emerging technology. the desired services. The major role that
Virtualization plays in the Cloud Computing is to
provide an effective way to revolutionize the
traditional computing by directing the workload
towards the cloud while enhancing its scalability and
1. INTRODUCTION
efficiency. [2]
Cloud Computing is a rapidly expanding technology
The concept of Virtualization dates back to 1960s
that has evolved as a chief element in the current IT
when IBM developed a Virtual Machine to provide
infrastructure. It is a pragmatic component of this
an interactive and parallel access to a mainframe
edge which renders a large repository for resources
computer. The Virtual Machine was created as an
that are available, to its users as services. It
instance of the physical machine to give its users an
essentially provides these services and products to its
illusion as if it were to access the physical machine
users according to their needs and demands. Also,
directly. It was created as an isolated copy of the
these cloud services provide an incessant aid to store
underlying system which would allow users to
and access the daily prominent data over the internet.
develop, execute and test applications in a protected
[1]. It enables dynamic configuration, reconfiguration
environment. Virtualization at this stage was
and allocation, de-allocation of servers, both physical
therefore providing better productivity and
and virtual, as per the use of its clients. The NIST
management of the hardware resources. Emergence
definition provides better insights – “Cloud
of Multiprocessing operating systems got Virtual
computing is a model for enabling ubiquitous,
Machines almost extinct but later due to the increased
convenient, on-demand network access to a shared
PC based hardware and operating system, Virtual
pool of configurable computing resources (e.g.,
Machines became a greater interest, specifically to
networks, servers, storage, applications, and services)
support the execution of multiple applications on a
that can be rapidly provisioned and released with
single machine [6].
minimal management effort or service provider
The concept of Virtualization can be elucidated The Virtualization technology creates an abstraction
through this explanation provided by [K. Sunitha of the physical system by dividing it into multiple
2014] as a technique that classifies the physical logical Virtual Machines running on the host
computer system into various isolated machines, machine. These Virtual Machines, comprising of
referred as Virtual Machines. These virtual machines, Operating system and Application each, share the
comprising its own operating system and application underlying hardware of the physical host machine
run on the host computer as an illusion of multiple and the software that enables multiple such Virtual
physical machines running on a single system. The Machines to use the hardware of the same host
processes running on these Virtual Machines have a machine is called a Hypervisor. It lies between the
misapprehension of running on different physical operating system of the host machine and the virtual
systems while in reality they are running on the environment. It’s a thin software layer that lies
Virtual Machines that share the underlying hardware between the hardware and operating system, which is
of the host machine. It therefore allows the single responsible for virtualizing and managing the
physical instance of a resource or application among hardware resources.
numerous organizations or users. This is achieved by
setting a logical name to that physical resource and Hypervisor, generally referred as the Virtual Machine
creating a pointer to it for accessing. Virtualization Monitor (VMM) is responsible for the creation of the
enables multiple applications to run on a single abstraction layer between the software and the
physical system by providing a means to create, underlying hardware. It is a firmware, software or a
share, copy and roll back the Virtual Machines. hardware that enables the creation and working of
Virtual Machines. It provides the essential virtual
[16] Virtualization is a component of Cloud infrastructure to the Virtual Machines [20].
Computing that provides abstraction of the computer Hypervisor allows these multiple Virtual Machines to
resources, which separates the operating system from simultaneously run on the physical host while
the underlying hardware. Virtualization enables the providing hardware abstraction of the Virtual
use of virtual resources in such a way that multiple Machines. It acts as a control system in terms of the
virtual resources can replace the functionality of a physical resources of the platform shared and utilized
single physical resource and multiple physical by the Virtual Machines, while managing, translating
resources can replace the functionality of a single and controlling the system [3]. The Virtualization
virtual resource. This paper also characterizes the technology that creates a software abstraction layer
difference in the IT Organizations’ functionality between the hardware and the Virtual Machines hides
before and after Virtualization. It is observed that due the physical resources from the Operating system
to Virtualization, organizations that adopted a single using the Virtual Machine Monitor or the Hypervisor.
Operating system image on a machine now have the This abstraction enables multiple Virtual Machines to
flexibility of hardware independence for operating run at the same time in parallel, primarily due to the
system and applications and where the software and control of hardware resources lying with the Virtual
hardware were tightly coupled in the traditional Machine Monitor and not the Operating System [4].
environment, Virtualization provides Operating
system and Applications coupled as one entity in the
form of Virtual Machines easily to its users.

The Virtualization technology therefore provides an


abstraction to the single physical infrastructure
functioning as multiple logical resources in the form
of Virtual Machines, by sharing the single physical
instance of resource among multiple organizations
[20]. It combines both the hardware and software
engineering to create Virtual Machines that allow
multiple operating systems to function on a single
physical platform. It is due to the creation of this
abstraction layer that the complexities of underlying Figure 1: Hypervisor
hardware or software are taken over by the Virtual
Machines [3]. Hypervisors are further categorized into Type-1 and
Type-2 Hypervisors to differentiate their software
2. VIRTUALIZATION COMPONENTS operating above the host operating system.
Type-1 Hypervisor, also known as the Bare-metal or implemented on top of the existing operating system,
native hypervisor is installed on the x86 hardware which uses the functionalities of the underlying
directly and runs directly on the system hardware. hardware whereas the System level Virtualization is
The desired instance of the operating system can be implemented directly and independently on the
installed over this hypervisor which serves as a hardware without any support from the operating
service console for users and applications. system available. Hardware-enabled Virtualization,
Full Virtualization, Partial Virtualization and Para
Type-2 Hypervisor, also known as the Hosted virtualization are categorized under the System-level.
Hypervisor has the Operating system installed on the Operating system level Virtualization, Programming
hardware, on which the Hypervisor is installed. Over language level Virtualization and Application level
this hypervisor is an instance of operating system Virtualization are categorized under Process level.
installed which runs as an application [16]. It relies
on the host operating system for physical resource The following section discusses the aforementioned
management and device support. Virtualization types and their corresponding
Virtualization Technologies.

3. VIRTUALIZATION TECHNOLOGIES

3.1 EMULATION OR SIMULATION

The Virtualization approach by Emulation enables


the creation of complete hardware architecture in the
software. The functionality of the particular hardware
processor and its associated systems is emulated by
this software. An emulator can replicate a real
computer completely if it is able to emulate all of the
functionalities of the real computer, including
rebooting, switching, reading ROM chips etc. The
Figure 2: Bare-metal Architecture emulator tries to run the unmodified guest operating
system for a completely different CPU. This provides
great flexibility to the Emulator since the guest
Operating system need to be adjusted to run on an
incompatible architecture. Besides these advantages,
emulator imposes limitations due to performance
since the emulator works by translating the guest
system instructions to the instructions of the host
system. Since the translation process takes more time,
the emulation method is penalized of performance
issues. However, this can be improved if there exists
a way of changing the guest system architecture such
that the desired task can be performed using the
instructions of the host system, without the
translation overhead [5], [6]. Following are few of
the examples in detail:

3.1.1 Bochs

Bochs is an open source portable Emulator in C++


Figure 3: Hosted Architecture which is compatible with many platforms. Bochs is
used in the implementation of various x86 CPUs, I/O
devices, AMD processors and custom BIOS. It
provides the ability to run Operating systems inside
Virtualization is mainly categorized into two types
emulation, which includes Linux, DOS and
depending on the host type on which Virtual
Windows. The primary mentioned use of Bochs is to
Machines work. So the levels of Virtualization are
emulate the complete x86 PC which includes all of
categorized into Process levels and System level
the hardware devices, memory and the x86 processor.
mechanisms. The process level Virtualization is
Emulation of Bochs enables the operating system and
the software to run in the emulator of the host system object file. A dynamic code generator is finally
just like another system residing within. It emulates applied to the object file to obtain the host function
the host system by allowing the applications and with multiple micro operations. The advantage of
software of other platform to successfully run on the QEMU is that it concatenates the machine code
host platform [21]. obtained from the compilation of instructions in the
dynamic translation process. This reduces the
Emulation through Bochs has several advantages that overhead involved in porting the translators from one
it allows the application of different operating host to another. Hence the dynamic translation
systems to run on the host. For example, it allows process of this emulator makes QEMU easily
Windows applications to run on a UNIX/X11 portable while providing better performance [7].
platform. Also, Bochs provide the debugging
capabilities for operating systems since it can access
memory, CPU registers and other related content for
fixing the bug. It is also used as a reference model to 3.2 Native or Full Virtualization
test new x86 hardware. However, Bochs also comes
with limitations that it is too slow to be used as a In this Virtualization approach, the Hypervisor lies
Virtualization Technology in practice and also incurs above the host operating system, as an application in
overhead due to the instruction translation in the user space. With this approach, the guest
simulating any host platform to this specific x86 operating system and the applications of the Virtual
software [6]. Machines run above the virtual hardware provided by
the Virtual Machine Monitor (VMM). The
3.1.2 QEMU underlying hardware in this approach allows the
guest operating system to run without any
Quick Emulator (QEMU) is a fast processor emulator modifications which infers this Virtualization
that combines the functionalities of a Machine approach as Full Virtualization. The I/0 devices in
Emulator and a Virtualizer. It is both generic and this virtual environment are allotted to the guest
open source. It operates in two modes, namely User- machines which are directed towards the real
mode and System-mode. The user-mode emulation physical devices by the host OS driver or the Virtual
enables Linux processes designed for one CPU to run Machine driver.
on another. The Quick Emulator in this mode acts as
a “Process Virtual Machine”. The system-mode The main advantage with this kind of Virtualization
emulation emulates the complete system including approach is that it offers ease of use to the common
the processor and other miscellaneous peripherals. users for it only involves the installation of the
The Quick Emulator in this case acts as a “System software product that offers Full virtualization alike
Virtual Machine”. the installation of any other software product on the
operating system. And the software installed on the
Unlike Bochs that supports emulation of only x86 guest operating system can run as if to be running
architectures, QEMU can have different host and directly on the hardware. The basic limitation with
target CPUs. It supports several host operating this approach is that it involves performance
systems like Windows, Mac and Linux. The Quick degradation of about 30% when compared to running
Emulator includes several subsystems – (i) CPU on the hardware directly [4].
Emulator that supports emulation of x86, ARM,
PowerPC and Sparc. (ii) Emulated peripherals that
include VGA display, hard disk, mouse and
keyboard, serial port, network card etc. (iii) Generic
devices that connect emulated devices to the host
devices, like network devices, block devices and
character devices (iv) Machine descriptions that
instantiate the emulated devices (v) Debugger and
(vi) User Interface.

The fast processor emulator QEMU uses a dynamic


translator to convert the instructions of the target
system to the instructions in host system at runtime.
The translation process works by first converting the
Figure 4: Full Virtualization
target CPU instructions into simpler instructions,
named as Micro instructions which is compiled to an
3.2.1 VMWare These communications between the VMM and host
worlds propose a hit back on the performance since
VMWare is an industrial leading Virtualization the switches to the host require all the user and
company that comprises three main Virtual Machine system states to be saved to the CPU which degrades
products – VMWare Workstation, VMWare GSX the run time of the Virtual Machines. This can be
Server, VMWare ESX Server. The Virtual Machine illustrated by the guest operating system that runs
Monitors of the VMWare are categorized as highly computational programs, executed by VMM
Standalone VMMs or Hosted VMMs. Standalone in CPU. The highly privileged IO instructions are
VMM is simply a software layer on top of the PC trapped by VMM to be executed by the host world
Hardware that allows the creation of multiple Virtual switch. These operations in the VM are translated and
Machines. The hosted VMM, however, coexists with invoked by the VMApp of host world and sent back
the host operating system utilizing its functionalities to the VMM world. Such communications that
of processor scheduling, memory management, involve intensive IO instructions degrade the run time
resource management and hardware drivers. The of the Virtual Machines [6].
Standalone VMMs find its use in servers with
VMWare ESX being an example and the hosted
VMMs are used by VMWare Workstation products.

Figure 5: Standalone VMM Figure 7: VMWare Workstation Architecture

The VMWare Elastic Sky X (ESX) has a different


approach than VMWare Workstation. The VMWare
white paper [15] defines the VMWare ESX server to
be a virtualization layer that runs above the physical
servers and abstracts the physical resources like
memory, processor, networking and storage to the
Virtual Machines.

Figure 6: Hosted VMM

The VMWare Workstation comprises three main


components – (i) an Application Portion VMApp, (ii)
a driver in the host operating system VMXDriver and
(iii) a privileged Virtual Machine Monitor, which is
established by the VMApp using VMXDriver. The
Virtual Machine Monitor is given the highest
privilege by the VMApp which loads it into the
Kernel memory using the VMXDriver that is
installed within the operating system to have high Figure 8: VMWare ESX Server
privileges. The host operating system, unaware of the
VMWare ESX is different from the VMWare
VMM provides a distinction to the machine in the
workstation approach that it does not have the host
form of two worlds- one for the host and the other for
operating system. All the IO instructions are handled
the VMM. The VMM can communicate with the host
by the VMM which uses the shadow versions of the
using the VMXDriver or the host world.
system structures using virtual tables to trap any
instruction attempting to update the table. The virtual the guest operating system access to the hardware
pages from these tables are mapped to the physical resources [4].
pages, which is further translated by the VMM to
machine page, the exact one in the physical memory.
Through this process, it becomes easy for the EXS
server to manage the system memory efficiently
while improving the system performance. ESX server
is made efficiently reliable for commercial
deployment by adopting various techniques to
improve the performance while keeping the Virtual
Machines independent of each other [6].

3.2.2 Virtual PC

Windows Virtual PC is a client virtualization tool


that allows the creation of multiple Virtual Machines Figure 9: Hardware-enabled Virtualization
that run their own operating systems. The key Architecture
features provided by Virtual PC is that by being
integrated with the Windows, it enables the Virtual 3.3.1 Intel Hardware Support
Machines or applications to be used like just another
application on windows and allows easy navigation Intel is an innovative corporation that is generating
between the guest and host platforms. It also provides microprocessors with advanced virtualization
easy management of the Virtual Machines using support, updating its technologies according to the
external hard disks and backup disks. The Virtual PC users’ demands. With initial virtualization on server
runs in two modes – a specific Virtual Applications and mainframe systems, Intel now provides hardware
mode and a full desktop mode to provide the support for Virtualization. It uses Hypervisors to
complete desktop functionalities to the guest allow multiple guest operating systems to share and
operating system. It also provides network access the underlying physical hardware resources.
functionalities to the Virtual Machine with the The software-only virtualization on their IA-32 and
abilities to configure the network connections among Itanium architecture imposed several challenges at
Virtual Machines, hosts and external networks [14]. the core hardware in imitating its features to the
software. As a result, Intel developed VT-x and VT-i
[S. Nanda, T. Chiueh] identifies several drawbacks architectures for the IA-32 and Itanium processors
with the VirtualPC that it does not support a wide using a full virtualization approach, by utilizing the
variety of guest operating systems like Linux, Solaris, underlying hardware which enables the Virtual
OpenBSD, and FreeBSD etc, unlike the vmWare Machine Monitor to support off the shelf operating
Workstation. Also, the authors identify that the systems and applications, hence providing better
VirtualPC lacks the support for Small Coputer reliability, robustness and security [13].
System Interface devices and provides only a limited
ability for the users in adding or upgrading the 3.3.2 AMD Hardware Support
hardware set of Virtual Machines.
Advanced Micro Dynamics (AMD) has developed
3.3 Hardware-enabled Virtualization many processors through the virtualization support.
AMD Opetron Processor is designed for providing
This approach enables the Virtual Machines to run in optimal Virtualization by enhancing the efficiency
isolation in a protected environment. This approach and performance of the virtualization support. It
makes the Virtual Machine Monitor transparent to the increases the performance of the virtualized
software that is running in the Virtual Machine which applications through Rapid Virtual Indexing for
makes it appear to be in the control of the underlying direct memory management. It is also designed to
hardware [13]. have minimum switching time between the Virtual
Machines and the direct connect architecture of AMD
This ability of the Virtual Machine to run a guest enables direct interactions with the streamline server.
operating system in complete isolation is provided by These direct connections enable AMD to support a
the architectural support from the hardware and large number of Virtual Machines on a single server
hence the technique Hardware-enabled Virtualization while maximizing its bandwidth and scalability with
[9]. The Virtual Machine Monitor that is running low latency. It also introduces Tagged Translation
directly on the hardware can control and synchronize
Look-aside Buffer for mapping the memory spaces of
Virtual Machines; further to minimize any additional
overhead in terms of memory management. It uses
Device Exclusion Vector (DEV) to provide security
by controlling the access to the Virtual Machine
Memory. These advanced features have made AMD
a frontline in providing hardware virtualization
support.

3.3 Partial Virtualization

In this Virtualization approach, the Virtual Machines


create multiple instances of almost but not all, of the
underlying hardware, specifically the address spaces.
This virtualization approach is therefore also known
as Address Space Virtualization and is categorized
under type-2 hosted Virtual Machines. The approach
works by partially simulating the underlying
hardware for the guest operating system. However,
partial virtualization limits the complete execution of
the guest operating system since it’s not robust to
simulate the complete underlying hardware for the
guest operating system, like in Full Virtualization. Figure 9: Para Virtualization
However, the partial virtualization approach can
emulate the hardware platform essential to virtualize 3.4.1 XEN
specific applications, which can further enable the
sharing of computing resources and services among Xen is the open source virtualization tool widely used
its users [8]. for Para Virtualization. It exports the paravirtualized
architecture into each of its virtual machine interface
3.4 Para Virtualization so as to improve the performance and scalability
when compared to other Virtual Machine Monitors.
Para Virtualization approach contains easy and A lightweight event mechanism is used for replacing
simple implementation of the Virtual Machine the traditional hardware in the CPU and device I/O.
Monitor while providing better performance and Data transfer between the Virtual Machines and Xen
scalability to the Virtual Machines. Para Hypervisor is achieved through Asynchronous I/O
Virtualization differs from the Full Virtualization rings. These implementations increase the
approach in that the guest operating system is aware performance and scalability of this paravirtualized
of the virtual environment in which it is running since architecture [6].
the guest operating system of these Virtual Machines
is modified to run in the Virtual environment. The The XEN Hypervisor that lies above the Hypervisor
virtual devices in this virtualization approach are also is designed to increase the efficiency and resource
dependent on the underlying physical device drivers. management of the guest Operating system. Xen
Also, Para Virtualization does not simulate hardware Hypervisor carries out the general hypervisor
resources, partially or fully unlike the aforementioned activities of memory management, power
approaches; instead it offers special Application management also the Virtual Machine scheduling. It
Programming Interface (API) to the modified guest works through two domains – DOM 0 and DOM U.
operating systems [9], [10]. DOM 0 is a modified Linux operating system that has
special privileges to access physical resources and
This approach achieves significant performance interact with the virtual machines of the underlying
improvement through the modified guest operating hardware. DOM 0 is also responsible for the creation
system that can program the computing resources and configuration of guest domains, DOM U. DOM
adequately to the Virtual Machines, thereby U does not have any special privileges, unlike DOM
increasing performance. Also, the modified guest 0 and the Virtual Machines under this domain run
operating system can make direct calls to the with either a modified or an unmodified operating
virtualized servers and hence exhibiting faster system on top of the virtualization hardware [11].
operations [5].
Containers to divide the operating system into
containers or zones. These containers provide
virtualization by enabling multiple applications to run
in isolation on the same operating system. Hence, this
approach achieves virtualization by creating multiple
instances of the same operating system, thereby
virtualizing the operating system instead of hardware
like other virtualization approaches [5]

Figure 10: XEN Architecture

3.4.2 KVM
Figure 12: OS-Level Virtualization Architecture
KVM is a Kernel-based Virtual Machine that takes
benefits of the Linux-Kernel feature. In KVM, each This virtualization approach imposes only a little
Virtual Machine is implemented as a Linux process. overhead because the applications directly use the
The Virtual Machines that take advantage of the operating system calls and tends to be more efficient
Linux Kernel feature has overtaken other open source [9]. Examples of Operating System level
hypervisors. KVM utilizes QEMU architecture to Virtualization are FreeBSD Jails, OpenVZ, and
emulate its hardware functionalities like network Linux VServer etc.
interface, memory controller, ROM BIOS etc. Also,
since KVM utilizes the Kernel features, its memory 4.1 FreeBSD Jail
management is same like any other Linux process
and memory sharing for the Virtual Machine is done FreeBSD Jails [6] is the virtualization software that
through Kernel Same Page Merging (KSM) achieves virtualization through its operating system
mechanism. KVM can therefore implement any environment whilst preserving the simplicity of the
storage or hardware system that is supported by the UNIX root model. The jail environment typically
Linux Kernel [11] consists of the system resources like file system,
processes, data structures and other network
resources. A process gains access to the jail using a
special system call, jail. A process can invoke jail
only by inheriting its access from another process
already in jail.

Jailed processes are bound to certain restrictions like


they only have a limited access to the file system
name space and can only access a specific file system
sub-tree when created. Also, the jailed processes are
restricted to few IP addresses for their network
Figure 11: KVM Architecture
resources. This restriction prevents the spoofing of IP
4. OPERATING SYSTEM LEVEL addresses since the network functionalities are
VIRTUALIZATION completely disabled. The jailed virtual machines are
therefore bound to the specific IP address configured
Operating System level Virtualization is an approach but are available to the host applications. The
where the virtualization occurs directly at the interactions among jailed processes are also limited.
Operating system instead of having a separate A jail therefore represents an abstract machine
Hypervisor. Since this Virtualization approach does typically that cannot interact or connect to any other
not support logical separation of the physical processes.
resources, it uses Virtual Operating System
5. APPLICATION VIRTUALIZATION The Microsoft’s Common Language Runtime (CLR)
in the .Net framework is Microsoft’s JVM. CLR in

Application Virtualization is an approach that allows Microsoft is the implementation of Common


users to run applications in the system using its Language Infrastructure (CLI) specification. .Net
system resources without the complete system CLR works similar to the Java Virtual Machine, it
installation of the application [5]. This approach takes the source code written in C# or vb.net and
achieves Virtualization by creating virtual machines converts it into a byte code namely Common
at the application-level that enables users to run Intermediate Language (CIL) Code. The Just-in-time
applications just like the ones running on the physical compiler at the run time is used to convert the CIL
machine. The applications are provided with their code into a native code for the operating system. The
operating system either through a commercial .Net CLR is designed as a language-neutral
operating system or by creating an own environment architecture. It handles the interactions with operating
[6]. Following are the examples of Application system, error trapping and memory management. The
Virtualization technologies: .NET CLR has the characteristics of automatic
memory management same as that of JVM, although
5.1 Java Virtual Machine it works through contiguous memory allocation [12].

Java Virtual Machine (JVM) is an application 6. GENERALIZED LEVELS OF


virtualization technology that enables different kinds VIRTUALIZATION
of operating systems (like Windows, Linux) to run
the same application (or java program) on each of its Virtualization is further categorized into several
systems so long as they install the Java Virtual categories depending on the type of resources
Machine [5]. virtualized and also corresponding to the type and
system level. Other levels of Virtualizations
Java Virtual Machines run Java byte code, which is mentioned in several papers are discussed below:
generated by Java compilers. Programs running on
the Java Virtual Machine are typically compiled into 6.1 Storage Virtualization
this portable binary format of Java Code, which is
executed by the JVM runtime. The JVM interprets Management and storage of large amounts of data is
these instructions using a Just-in-time compiler. The crucial to any organization that requires constant
Java Virtual Machine also provides an environment access to its data. Any problem to the data access can
for the binary byte codes while interpreting them. [6]. create severe complex situations and can hamper
The Java Virtual Machine therefore implements the chief business decisions. In order to prevent from
program for any operating system, hence providing such storage and access issues, this approach is used
better flexibility than the traditional machines. to virtualize the storage system which involves the
management of virtual resources that are created
5.2 .NET CLR from the abstraction of physical storage devices. The
virtual logic view to the physical storage devices maximum output. Server Virtualization is the
helps the users in integrating all the physical technique adopted by such organizations in providing
resources [18]. services to its users in a resource-utilization manner.
It works by creating multiple virtual servers, the
Storage Virtualization is divided into five types: Virtual Machines, on a single physical server. These
virtual servers run with the functionalities of a single
6.1.1 Disk Virtualization server, creating an illusion to be one [16].
Disk Virtualization works through the CHS address Server Virtualization is further categorized as the
of Magnetic disks – cylinders, heads and sectors. previous discussed techniques – Full Virtualization,
This address is transformed to ordered logical blocks Para Virtualization and partial Virtualization.
that are used by the Virtual Machines. This technique
is referred to as Logical Block Addressing that has 6.3 Network Virtualization
revolutionized the management of disks.
Network Virtualization enables the creation of
6.1.2 Tape Virtualization multiple virtual networks on the same network
substrate. The Virtual Network comprises of virtual
This Virtualization technique is applied to the tape nodes and Virtual links in the Network Virtualization
library components – Tape media and Tape drivers. Environment. The virtual network lies on top of the
Tape media Virtualization revolutionizes the physical network resources.
mounting and un-mounting of tapes through the
online use of the disk storage which serves as a Network Virtualization works by allowing multiple
buffer for reading and writing from physical tape, service providers to create Virtual Networks that
thereby improving performance and service of tape work in isolation while coexisting in the same
media. Tape Server Virtualization makes use of tape network environment. These Virtual Networks allow
drive tools to control access and guarantee integrity the service providers to manage and deploy the
to the data. services by sharing and using the underlying physical
network resources.
6.1.3 File System Virtualization
This type of Virtualization provides for the
File System Virtualization enables users to access file coexistence of multiple virtual network architectures
servers that manage shared network access to the for the deployment and implementation of end users’
files irrespective of the operating system they run on. services [17].
6.1.4 File Virtualization 7. VIRTUALIZATION PROPERTIES
This Virtualization technique is used in the 1. Isolation: Virtual Machines work in isolation with
automation of migrating unused to rarely used data to the physical machine, by sharing the physical
secondary file storage such as optical disks, tape resources and are independent of each other.
drives etc. Both users and applications are aware of Virtualization ensures that different instances running
this migration. on the same physical machine are isolated from each
other thereby providing better functionalities in terms
6.1.5 Block Virtualization of performance and also fault tolerance, since Virtual
Machines run independent of each other. [19]
Block Virtualization enables the creation of multiple
virtual storage devices from the physical disks, 2. Server Consolidation: Virtualization enables
according to the storage demands of its customers multiple virtual machines to run on a single physical
[16] server to provide its users with their desired services
efficiently. This mechanism therefore disregards the
Therefore, Storage Virtualization provides virtualized
need to install multiple physical servers separately,
storage resources to its users in terms of their
each implementing a separate service to its users
demands by characterizing the entire disk, file and
[16].
block media.
3. Encapsulation: Virtualization approach cleanly
6.2 Server Virtualization
captures the complete state of the Virtual Machines,
Any corporate organization aims to minimize its including its applications and operating systems, and
investment on infrastructure and services to obtain also the underlying hardware installed. It also enables
the Virtual Machines to be moved or copied over Therefore, it fosters resource management while also
multiple systems using its snapshots and clones. reducing the power consumption.

4. Portability: Virtual Machines are configured with 9. CONCLUSIONS


components like memory, CPU and network card that
are independent of each other and they carry out their The paper presents a survey over the widespread
functionalities independent of the underlying physical Virtualization technology, discussing its architectural
hardware. This enables the migration of live, running components, levels of architecture and the
Virtual Machines without having any effect on the Virtualization technologies existing at those levels.
device drivers, applications or operating system [16]. The Virtualization technologies discussed in the
paper are range broadly over different areas like
8. IMPORTANCE OF VIRTUALIZATION Hardware-enabled Virtualizations, Operating system
level Virtualizations, and Application level
1. Virtualization multiplexes the physical hardware in Virtualizations etc. In addition to classifying the
data centers. Data centers help in meeting the levels of Virtualization, the paper also characterizes
increased demands of storage and services by the importance and reasons of adopting
configuring a pool of computing resources. However, Virtualization.
having an isolated data server for every other service
request would consume lots of resources and money. This detailed survey on the Virtualization technology
Virtualization provides an environment that allows can help in the understanding and analysis of this
multiple Virtual Machines to run on a single server, emerging technology and can also help in analyzing
each meeting the demands of the specific customer further developments in the area. The current
applications. It also increases the physical machine classified taxonomy of Virtualization levels can be
utilization of the data centers by running multiple further extended over other multi-layer technologies
instances on the same machine. that achieve Virtualization.

2. The isolation of Virtual Machines enables different 10. REFERENCES


operating systems, with their applications, to run
independently of each other, preventing any [1] F. Lombardi, R. D. Pietro, “Secure virtualization
intervention among the activities of the operating for cloud computing,” Journal of Network and
systems. It also provides a fault tolerant environment Computer Applications, 2010.
due to the independent running of Virtual Machines.
[2] L. Malhotra, D. Agarwal, A. Jaiswal,
3. It provides for better resource utilization by “Virtualization in Cloud Computing,” J Inform Tech
consolidating the resources from unutilized spaces of Softw Eng 4:136, 2014.
machines to host and execute multiple virtual
machines with improved performance and better [3] R. Kumar, S. Charu, “An Importance of Using
utilization of the hardware, memory and Virtualization Technology in Cloud Computing,”
infrastructure of the machine. Global Journal of Computers & Technology, 2015.

4. It also enables the migration of running processes [4] J. Sahoo, S. Mohapatra, R. Lath, “Virtualization:
which provides flexibility of moving from highly A Survey on Concepts, Taxonomy and Associated
loaded machines to lesser ones. Hence the process Security Issues,” 2010 Second International
migration helps in load balancing while saving on Conference on Computer and Network Technology,
energy since the process migration does not affect 2010.
any ongoing activity.
[5] R. Y. Ameen, “Survey of Server Virtualization,”
5. It also provides for software testing by producing International Journal of Computer Science and
arbitrary test scenarios which are difficult to be Information Security ,2013.
produced in reality. Therefore it enables testing and
debugging of the software before and also during [6]S. Nanda, T. Chiueh, “A Survey on Virtualization
deploying it into the production environments. Technologies,” 2005.

6. It also reduces costs by decreasing the numerous [7] F. Bellard, “QEMU, a Fast and Portable Dynamic
servers deployed for a workload and hence reducing Translator,” FREENIX Track: 2005 USENIX Annual
the administration costs through the aggregation of Technical Conference, 2005.
multiple servers and applications on a single server.
[8] S. Harris, “Regarding the challenges of [20] S. Annapporni, B. Srinivasan, G. A. Mylavathi,
Performance Analysis of Virtualized Systems,” 2013. “Analysis of Various Virtual Machine Attacks in
Cloud Computing”, Second International Conference
[9]S. Srivastava, S.P. Singh, “A Survey on on Inventive Systems and Control, 2018.
Virtualization and Hypervisor-based Technology in
Cloud Computing Environment,” International [21] Bochs x86 PC emulator users manual -
Journal of Advanced Research in Computer http://bochs.sourceforge.net/
Engineering & Technology, 2016.

[10]K. Mani, R.M. Krishnan, “A Survey on Cloud


Computing Virtualization,” International Journal of
Innovative Research in Computer and
Communication Engineering, 2016.

[11] A.Desai, R. Oza, P. Sharma, B. Patel,


“Hypervisor: A Survey on Concepts and Taxonomy,”
International Journal of Innovative Technology and
Exploring Engineering, 2013.

[12] P. Singh, D. Sharma, S. Agarwal , “By


Performance Metrics Analysis of CLR & JVM - A
Survey,” International Journal of Computer Trends
and Technology, 2011.

[13] K. Biswas, A. Islam, “Hardware Virtualization


Support In Intel, Amd And Ibm Power Processors,”
International Journal of Computer Science and
Information Security, 2009.

[14]Microsoft Tech Blog -


https://blogs.technet.microsoft.com/windows_vpc/20
09/08/04/windows-virtual-pc/

[15]F. Bellard, QEMU, a Fast and Portable Dynamic


Translator, white paper,
https://www.cse.iitd.ernet.in/~sbansal/csl862-
virt/2010/readings/bellard.pdf

[16]N. Jain, S. Choudhary, “Overview of


Virtualization in Cloud Computing, 2016 Symposium
on Colossal Data Analysis and Networking (CDAN),
2016.

[17]M. K. Chowdhury, R. Boutaba, “A survey on


Network Virtualization”, Computer Networks, 2010.

[18] S. Liu, W. Jia, “A Survey: Main Virtualization


Methods and Key Virtualization Technologies of
CPU and Memory”, the Open Cybernetics &
Systemics Journal, 2015.

[19] U. Gourav, R. Shaikh, “Virtualization – A key


feature of cloud computing”, International
Conference and Workshop on Emerging Trends in
Technology (ICWET 2010), 2010.