0% found this document useful (0 votes)
9 views

Chapter 2

Virtualization is a technology that enables a computer to share its hardware resources among multiple virtual environments, allowing for efficient use of resources and management of infrastructure. It involves the use of hypervisors to create and manage virtual machines, which can run different operating systems on a single physical machine. The document discusses the importance, benefits, and types of virtualization, including Type 1 and Type 2 hypervisors, and provides examples of their implementation in cloud computing.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
9 views

Chapter 2

Virtualization is a technology that enables a computer to share its hardware resources among multiple virtual environments, allowing for efficient use of resources and management of infrastructure. It involves the use of hypervisors to create and manage virtual machines, which can run different operating systems on a single physical machine. The document discusses the importance, benefits, and types of virtualization, including Type 1 and Type 2 hypervisors, and provides examples of their implementation in cloud computing.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 25

DKTE TEI’s Department of CSE 1

Cloud Computing: Ch 2 Virtualization

Ch 2 Virtualization

What is Virtualization?
Virtualization is a process that allows a computer to share its hardware
resources with multiple digitally separated environments. Each virtualized
environment runs within its allocated resources, such as memory,
processing power, and storage. With virtualization, organizations can
switch between different operating systems on the same server without
rebooting.

Virtualization is technology that you can use to create virtual


representations of servers, storage, networks, and other physical
machines. Virtual software mimics the functions of physical hardware to
run multiple virtual machines simultaneously on a single physical machine.
Businesses use virtualization to use their hardware resources efficiently and
get greater returns from their investment. It also powers cloud computing
services that help organizations manage infrastructure more efficiently.

Why is virtualization important?


By using virtualization, you can interact with any hardware resource with
greater flexibility. Physical servers consume electricity, take up storage
space, and need maintenance. You are often limited by physical proximity
and network design if you want to access them. Virtualization removes all
these limitations by abstracting physical hardware functionality into
software. You can manage, maintain, and use your hardware infrastructure
like an application on the web.

Virtualization example
Consider a company that needs servers for three functions:
✓ Store business email securely
✓ Run a customer-facing application
✓ Run internal business applications

Dr. P. S. More
DKTE TEI’s Department of CSE 2
Cloud Computing: Ch 2 Virtualization

Each of these functions has different configuration requirements:


• The email application requires more storage capacity and a Windows
operating system.

• The customer-facing application requires a Linux operating system


and high processing power to handle large volumes of website traffic.
• The internal business application requires iOS and more internal
memory (RAM).

To meet these requirements, the company sets up three different dedicated


physical servers for each application. The company must make a high initial
investment and perform ongoing maintenance and upgrades for one
machine at a time. The company also cannot optimize its computing
capacity. It pays 100% of the servers’ maintenance costs but uses only a
fraction of their storage and processing capacities.

Efficient hardware use

With virtualization, the company creates three digital servers, or virtual


machines, on a single physical server. It specifies the operating system
requirements for the virtual machines and can use them like the physical
servers. However, the company now has less hardware and fewer related
expenses.

Infrastructure as a service

The company can go one step further and use a cloud instance or virtual
machine from a cloud computing provider such as AWS. AWS manages all
the underlying hardware, and the company can request server resources
with varying configurations. All the applications run on these virtual servers
without the users noticing any difference. Server management also
becomes easier for the company’s IT team.

Dr. P. S. More
DKTE TEI’s Department of CSE 3
Cloud Computing: Ch 2 Virtualization

Virtual machine

A virtual machine is a software-defined computer that runs on a physical


computer with a separate operating system and computing resources. The
physical computer is called the host machine and virtual machines
are guest machines. Multiple virtual machines can run on a single physical
machine. Virtual machines are abstracted from the computer hardware by
a hypervisor.

Hypervisor

The hypervisor is a software component that manages multiple virtual


machines in a computer. It ensures that each virtual machine gets the
allocated resources and does not interfere with the operation of other
virtual machines. There are two types of hypervisors.

Type 1 hypervisor

A type 1 hypervisor, or bare-metal hypervisor, is a hypervisor program


installed directly on the computer’s hardware instead of the operating
system. Therefore, type 1 hypervisors have better performance and are
commonly used by enterprise applications. KVM uses the type 1 hypervisor
to host multiple virtual machines on the Linux operating system.

Type 2 hypervisor

Also known as a hosted hypervisor, the type 2 hypervisor is installed on an


operating system. Type 2 hypervisors are suitable for end-user computing.

What are the benefits of virtualization?


Virtualization provides several benefits to any organization:

1. Efficient resource use

Virtualization improves hardware resources used in your data center. For


example, instead of running one server on one computer system, you can
create a virtual server pool on the same computer system by using and
Dr. P. S. More
DKTE TEI’s Department of CSE 4
Cloud Computing: Ch 2 Virtualization

returning servers to the pool as required. Having fewer underlying physical


servers frees up space in your data center and saves money on electricity,
generators, and cooling appliances.

2. Automated IT management

Now that physical computers are virtual, you can manage them by using
software tools. Administrators create deployment and configuration
programs to define virtual machine templates. You can duplicate your
infrastructure repeatedly and consistently and avoid error-prone manual
configurations.

3. Faster disaster recovery

When events such as natural disasters or cyberattacks negatively affect


business operations, regaining access to IT infrastructure and replacing or
fixing a physical server can take hours or even days. By contrast, the
process takes minutes with virtualized environments. This prompt response
significantly improves resiliency and facilitates business continuity so that
operations can continue as scheduled.

How does virtualization work?


Virtualization uses specialized software, called a hypervisor, to create
several cloud instances or virtual machines on one physical computer.

Cloud instances or virtual machines

After you install virtualization software on your computer, you can create
one or more virtual machines. You can access the virtual machines in the
same way that you access other applications on your computer. Your
computer is called the host, and the virtual machine is called the guest.
Several guests can run on the host. Each guest has its own operating
system, which can be the same or different from the host operating
system.

Dr. P. S. More
DKTE TEI’s Department of CSE 5
Cloud Computing: Ch 2 Virtualization

From the user’s perspective, the virtual machine operates like a typical
server. It has settings, configurations, and installed applications.
Computing resources, such as central processing units (CPUs), Random
Access Memory (RAM), and storage appear the same as on a physical
server. You can also configure and update the guest operating systems and
their applications as necessary without affecting the host operating system.

Hypervisors

The hypervisor is the virtualization software that you install on your


physical machine. It is a software layer that acts as an intermediary
between the virtual machines and the underlying hardware or host
operating system. The hypervisor coordinates access to the physical
environment so that several virtual machines have access to their own
share of physical resources.

For example, if the virtual machine requires computing resources, such as


computer processing power, the request first goes to the hypervisor. The
hypervisor then passes the request to the underlying hardware, which
performs the task.

The following are the two main types of hypervisors.

Type 1 hypervisors

A type 1 hypervisor—also called a bare-metal hypervisor—runs directly on


the computer hardware. It has some operating system capabilities and is
highly efficient because it interacts directly with the physical resources.

Type 2 hypervisors

A type 2 hypervisor runs as an application on computer hardware with an


existing operating system. Use this type of hypervisor when running
multiple operating systems on a single machine.

What’s the difference between Type 1 and Type 2 Hypervisors?

Dr. P. S. More
DKTE TEI’s Department of CSE 6
Cloud Computing: Ch 2 Virtualization

Type 1 and type 2 hypervisors are software you use to run one or more
virtual machines (VMs) on a single physical machine. A virtual machine is
a digital replica of a physical machine. It’s an isolated computing
environment that your users experience as completely independent of the
underlying hardware. The hypervisor is the technology that makes this
possible. It manages and allocates physical resources to VMs and
communicates with the underlying hardware in the background.

The type 1 hypervisor sits on top of the bare metal server and has direct
access to the hardware resources. Because of this, the type 1 hypervisor is
also known as a bare metal hypervisor. In contrast, the type 2 hypervisor
is an application installed on the host operating system. It’s also known as
a hosted or embedded hypervisor.

How they work: type 1 vs. type 2 hypervisors

The hypervisor is the coordination layer in virtualization technology. It


supports multiple virtual machines (VMs) running at once.

Dr. P. S. More
DKTE TEI’s Department of CSE 7
Cloud Computing: Ch 2 Virtualization

Type 1 hypervisor working:

A type 1 hypervisor, or a bare metal hypervisor, interacts directly with the


underlying machine hardware. A bare metal hypervisor is installed directly
on the host machine’s physical hardware, not through an operating system.
In some cases, a type 1 hypervisor is embedded in the machine’s firmware.

The type 1 hypervisor negotiates directly with server hardware to allocate


dedicated resources to VMs. It can also flexibly share resources, depending
on various VM requests.

Type 2 hypervisor working

A type 2 hypervisor, or hosted hypervisor, interacts with the underlying


host machine hardware through the host machine’s operating system. You
install it on the machine, where it runs as an application.

The type 2 hypervisor negotiates with the operating system to obtain


underlying system resources. However, the host operating system
prioritizes its own functions and applications over the virtual workloads.

Summary of differences: type 1 vs. type 2 hypervisors

Type 1 hypervisor Type 2 hypervisor


Also known as Bare metal hypervisor. Hosted hypervisor.
Underlying physical host Underlying operating system
Runs on
machine hardware. (host OS).
Large, resource-
Desktop and development
Best suited for intensive, or fixed-use
environments.
workloads.
Can it negotiate
dedicated Yes. No.
resources?
Knowledge System administrator-
Basic user knowledge.
required level knowledge.
Oracle VM VirtualBox,
VMware ESXi, Microsoft
Examples VMware Workstation,
Hyper-V, KVM.
Microsoft Virtual PC

Dr. P. S. More
DKTE TEI’s Department of CSE 8
Cloud Computing: Ch 2 Virtualization

Hypervisor and Xen Architecture

The hypervisor supports hardware-level virtualization (see Figure 3.1(b))


on bare metal devices like CPU, memory, disk and network interfaces. The
hypervisor software sits directly between the physi-cal hardware and its
OS. This virtualization layer is referred to as either the VMM or the
hypervisor. The hypervisor provides hypercalls for the guest OSes and
applications. Depending on the functional-ity, a hypervisor can assume a
micro-kernel architecture like the Microsoft Hyper-V. Or it can assume a
monolithic hypervisor architecture like the VMware ESX for server
virtualization.

A micro-kernel hypervisor includes only the basic and unchanging functions


(such as physical memory management and processor scheduling). The
device drivers and other changeable components are outside the
hypervisor. A monolithic hypervisor implements all the aforementioned
functions, including those of the device drivers. Therefore, the size of the
hypervisor code of a micro-kernel hyper-visor is smaller than that of a
monolithic hypervisor. Essentially, a hypervisor must be able to convert
physical devices into virtual resources dedicated for the deployed VM to
use.

The Xen Architecture

Xen is an open source hypervisor program developed by Cambridge


University. Xen is a micro-kernel hypervisor, which separates the policy
from the mechanism. The Xen hypervisor implements all the mechanisms,
leaving the policy to be handled by Domain 0, as shown in Figure 3.5. Xen
does not include any device drivers natively [7]. It just provides a
mechanism by which a guest OS can have direct access to the physical
devices. As a result, the size of the Xen hypervisor is kept rather small. Xen
provides a virtual environment located between the hardware and the OS.
A number of vendors are in the process of developing commercial Xen
hypervisors, among them are Citrix XenServer [62] and Oracle VM [42].

Dr. P. S. More
DKTE TEI’s Department of CSE 9
Cloud Computing: Ch 2 Virtualization

The core components of a Xen system are the hypervisor, kernel, and
applications. The organi-zation of the three components is important. Like
other virtualization systems, many guest OSes can run on top of the
hypervisor. However, not all guest OSes are created equal, and one in

particular controls the others. The guest OS, which has control ability, is
called Domain 0, and the others are called Domain U. Domain 0 is a
privileged guest OS of Xen. It is first loaded when Xen boots without any
file system drivers being available. Domain 0 is designed to access
hardware directly and manage devices. Therefore, one of the
responsibilities of Domain 0 is to allocate and map hardware resources for
the guest domains (the Domain U domains).

For example, Xen is based on Linux and its security level is C2. Its
management VM is named Domain 0, which has the privilege to manage
other VMs implemented on the same host. If Domain 0 is compromised,
the hacker can control the entire system. So, in the VM system, security
policies are needed to improve the security of Domain 0. Domain 0,
behaving as a VMM, allows users to create, copy, save, read, modify, share,
migrate, and roll back VMs as easily as manipulating a file, which flexibly

Dr. P. S. More
DKTE TEI’s Department of CSE 10
Cloud Computing: Ch 2 Virtualization

provides tremendous benefits for users. Unfortunately, it also brings a


series of security problems during the software life cycle and data lifetime.

Traditionally, a machine’s lifetime can be envisioned as a straight line where


the current state of the machine is a point that progresses monotonically
as the software executes. During this time, con-figuration changes are
made, software is installed, and patches are applied. In such an
environment, the VM state is akin to a tree: At any point, execution can go
into N different branches where multiple instances of a VM can exist at any
point in this tree at any given time. VMs are allowed to roll back to previous
states in their execution (e.g., to fix configuration errors) or rerun from the
same point many times (e.g., as a means of distributing dynamic content
or circulating a “live” system image).

Different Levels of Virtualization Implementation

It is not easy to set up virtualization. Your computer works on an operating


system that gets configured on some specific hardware.

Thus, it is not feasible or straightforward to run a different operating system


using the corresponding hardware.

To do this, one will need a hypervisor. Hence, the role of the hypervisor is
to bridge between the hardware and the virtual operating system, which
enables smooth functioning.

Meanwhile, talking of the Implementation levels of virtualization in cloud


computing, five levels are commonly used. Let us now look firmly at each
of these levels of virtualization implementation in cloud computing.

Dr. P. S. More
DKTE TEI’s Department of CSE 11
Cloud Computing: Ch 2 Virtualization

1. Instruction Set Architecture Level (ISA)

At the ISA level, virtualization can work via emulating a given ISA by the
ISA of the host machine. For instance, MIPS binary code can operate on an
x86-based host machine with the help of ISA emulation.

Thus, this strategy makes it possible to run a large volume of legacy binary
code written for several processors on any provided different hardware host
machine.

The first emulation method is through code interpretation. Therefore, an


interpreter program defines the source instructions to target instructions
one by one.

Activity happenings within the Instruction Set Architecture Level (ISA):

- Instruction set

Dr. P. S. More
DKTE TEI’s Department of CSE 12
Cloud Computing: Ch 2 Virtualization

The hardware on the physical server in cloud computing has its own
instruction set that it will process.

Hence, these instructions act as an interface between hardware and


software. Therefore, by the instruction set, hardware immediately assigns
its services to its upper layers.

- Emulator

The emulator serves as an interpreter, and the fundamental role of this is


to set communication between the virtualization and hardware layers in
cloud computing.

- Mapping of the instruction

Instructions that the emulator gets for the resources from the virtual
machine can get mapped to the hardware instruction presented in the host
machine.

Therefore, after the processing emulator got the result back from the host
machine, it sent services to the user with the help of the virtual machine.

2. Hardware Abstraction Level (HAL)

Hardware-level virtualization is performed right on top of the bare


hardware. On the one hand, this approach generates a virtual hardware
environment for a VM. On the other hand, the process manages the
underlying hardware through virtualization. The idea is to virtualize a
computer’s resources, such as its processors, memory, and I/O devices.
The intention is to upgrade the hardware utilization rate by multiple users
concurrently. The idea was implemented in the IBM VM/370 in the 1960s.
More recently, the Xen hypervisor has been applied to virtualize x86-based
machines to run Linux or other guest OS applications.

- Activity happenings within the Hardware-Abstraction level (HAL):

Dr. P. S. More
DKTE TEI’s Department of CSE 13
Cloud Computing: Ch 2 Virtualization

Hardware resources in the host machine get mapped using a virtualization


layer to the virtual resources present on the guest operating system. Thus,
the virtual machine will create for all of them.

Hence, virtualized computing system holds thousands of resources. All of


them need some directions for processing, which was not an easy task. And
due to this, instruction was classified into two primary forms to make the
processing smooth.

i. Non-privileged instruction– These instructions execute directly


without interfering with other tasks.
ii. Privileged instruction– These instructions require some
modification before it executes.

3. Operating System Level

This refers to an abstraction layer between traditional OS and user


applications. OS-level virtualiza-tion creates isolated containers on a
single physical server and the OS instances to utilize the hard-ware and
software in data centers. The containers behave like real servers. OS-
level virtualization is commonly used in creating virtual hosting
environments to allocate hardware resources among a large number of
mutually distrusting users. It is also used, to a lesser extent, in
consolidating server hardware by moving services on separate hosts into
containers or VMs on one server.

4. Library Support Level

Most applications use APIs exported by user-level libraries rather than


using lengthy system calls by the OS. Since most systems provide well-
documented APIs, such an interface becomes another candidate for
virtualization. Virtualization with library interfaces is possible by
controlling the communication link between applications and the rest of
a system through API hooks. The software tool WINE has implemented
this approach to support Windows applications on top of UNIX hosts.

Dr. P. S. More
DKTE TEI’s Department of CSE 14
Cloud Computing: Ch 2 Virtualization

Another example is the vCUDA which allows applications executing


within VMs to leverage GPU hardware acceleration.

5. User-Application Level

Virtualization at the application level virtualizes an application as a VM.


On a traditional OS, an application often runs as a process. Therefore,
application-level virtualization is also known as process-level
virtualization. The most popular approach is to deploy high level
language (HLL) VMs. In this scenario, the virtualization layer sits as an
application program on top of the operating system, and the layer
exports an abstraction of a VM that can run programs written and
compiled to a particular abstract machine definition. Any program
written in the HLL and compiled for this VM will be able to run on it. The
Microsoft .NET CLR and Java Virtual Machine (JVM) are two good
examples of this class of VM.

Other forms of application-level virtualization are known as application


isolation, application sandboxing, or application streaming. The process
involves wrapping the application in a layer that is isolated from the host
OS and other applications. The result is an application that is much easier
to distribute and remove from user workstations. An example is the
LANDesk application virtuali-zation platform which deploys software
applications as self-contained, executable files in an isolated environment
without requiring installation, system modifications, or elevated security
privileges.

Dr. P. S. More
DKTE TEI’s Department of CSE 15
Cloud Computing: Ch 2 Virtualization

Types of virtualizations?

You can use virtualization technology to get the functions of many different
types of physical infrastructure and all the benefits of a virtualized
environment. You can go beyond virtual machines to create a collection of
virtual resources in your virtual environment.

1. Server virtualization

Server virtualization is a process that partitions a physical server into


multiple virtual servers. It is an efficient and cost-effective way to use
server resources and deploy IT services in an organization. Without server
virtualization, physical servers use only a small amount of their processing
capacities, which leave devices idle.

2. Storage virtualization

Storage virtualization combines the functions of physical storage devices


such as network attached storage (NAS) and storage area network (SAN).
You can pool the storage hardware in your data center, even if it is from
different vendors or of different types. Storage virtualization uses all your

Dr. P. S. More
DKTE TEI’s Department of CSE 16
Cloud Computing: Ch 2 Virtualization

physical data storage and creates a large unit of virtual storage that you
can assign and control by using management software. IT administrators
can streamline storage activities, such as archiving, backup, and recovery,
because they can combine multiple network storage devices virtually into
a single storage device.

3. Network virtualization

Any computer network has hardware elements such as switches, routers,


and firewalls. An organization with offices in multiple geographic locations
can have several different network technologies working together to create
its enterprise network. Network virtualization is a process that combines all
of these network resources to centralize administrative tasks.
Administrators can adjust and control these elements virtually without
touching the physical components, which greatly simplifies network
management.

The following are two approaches to network virtualization.

i. Software-defined networking

Software-defined networking (SDN) controls traffic routing by taking over


routing management from data routing in the physical environment. For
example, you can program your system to prioritize your video call traffic
over application traffic to ensure consistent call quality in all online
meetings.

ii. Network function virtualization

Network function virtualization technology combines the functions of


network appliances, such as firewalls, load balancers, and traffic analyzers
that work together, to improve network performance.

4. Application virtualization

Dr. P. S. More
DKTE TEI’s Department of CSE 17
Cloud Computing: Ch 2 Virtualization

Application virtualization pulls out the functions of applications to run on


operating systems other than the operating systems for which they were
designed. For example, users can run a Microsoft Windows application on
a Linux machine without changing the machine configuration. To achieve
application virtualization, follow these practices:

• Application streaming – Users stream the application from a remote


server, so it runs only on the end user's device when needed.
• Server-based application virtualization – Users can access the remote
application from their browser or client interface without installing it.
• Local application virtualization – The application code is shipped with
its own environment to run on all operating systems without changes.

5. Desktop virtualization

Most organizations have nontechnical staff that use desktop operating


systems to run common business applications. For instance, you might
have the following staff:

• A customer service team that requires a desktop computer with


Windows 10 and customer-relationship management software
• A marketing team that requires Windows Vista for sales applications

You can use desktop virtualization to run these different desktop operating
systems on virtual machines, which your teams can access remotely. This
type of virtualization makes desktop management efficient and secure,
saving money on desktop hardware. The following are types of desktop
virtualization.

Virtual desktop infrastructure

Virtual desktop infrastructure runs virtual desktops on a remote server.


Your users can access them by using client devices.

Local desktop virtualization

Dr. P. S. More
DKTE TEI’s Department of CSE 18
Cloud Computing: Ch 2 Virtualization

In local desktop virtualization, you run the hypervisor on a local computer


and create a virtual computer with a different operating system. You can
switch between your local and virtual environment in the same way you
can switch between applications.

How is virtualization different from cloud computing?


Cloud computing is the on-demand delivery of computing resources over
the internet with pay-as-you-go pricing. Instead of buying, owning, and
maintaining a physical data center, you can access technology services,
such as computing power, storage, and databases, as you need them from
a cloud provider.

Virtualization technology makes cloud computing possible. Cloud providers


set up and maintain their own data centers. They create different virtual
environments that use the underlying hardware resources. You can then
program your system to access these cloud resources by using APIs. Your
infrastructure needs can be met as a fully managed service.

Virtualization at OS Level:

It is slow to initialize a hardware-level VM because each VM creates its own


image from scratch. In a cloud computing environment, perhaps thousands
of VMs need to be initialized simultaneously. Besides slow operation, storing
the VM images also becomes an issue. As a matter of fact, there is
considerable repeated content among VM images. Moreover, full
virtualization at the hardware level also has the disadvantages of slow
performance and low density, and the need for para-virtualization to modify
the guest OS. To reduce the performance overhead of hardware-level
virtualization, even hardware modification is needed. OS-level virtualization
provides a feasible solution for these hardware-level virtualization issues.

Dr. P. S. More
DKTE TEI’s Department of CSE 19
Cloud Computing: Ch 2 Virtualization

Operating system virtualization inserts a virtualization layer inside an


operating system to partition a machine’s physical resources. It enables
multiple isolated VMs within a single operating system kernel. This kind of
VM is often called a virtual execution environment (VE), Virtual Private
System (VPS), or simply container. From the user’s point of view, VEs look
like real ser-vers. This means a VE has its own set of processes, file system,
user accounts, network interfaces with IP addresses, routing tables, firewall
rules, and other personal settings. Although VEs can be customized for
different people, they share the same operating system kernel. Therefore,
OS-level virtualization is also called single-OS image virtualization. Figure
3.3 illustrates operating system virtualization from the point of view of a
machine stack.

- Advantages of OS Extensions
Compared to hardware-level virtualization, the benefits of OS extensions
are twofold: (1) VMs at the operating system level have minimal
startup/shutdown costs, low resource requirements, and high scalability;
and (2) for an OS-level VM, it is possible for a VM and its host environment
to synchro-nize state changes when necessary. These benefits can be
achieved via two mechanisms of OS-level virtualization: (1) All OS-level
VMs on the same physical machine share a single operating system kernel;
and (2) the virtualization layer can be designed in a way that allows
processes in VMs to access as many resources of the host machine as
possible, but never to modify them. In cloud computing, the first and
second benefits can be used to overcome the defects of slow initialization
of VMs at the hardware level, and being unaware of the current application
state, respectively.

- Disadvantages of OS Extensions
The main disadvantage of OS extensions is that all the VMs at operating
system level on a single container must have the same kind of guest
operating system. That is, although different OS-level VMs may have

Dr. P. S. More
DKTE TEI’s Department of CSE 20
Cloud Computing: Ch 2 Virtualization

different operating system distributions, they must pertain to the same


operating system family. For example, a Windows distribution such as
Windows XP cannot run on a Linux-based container. However, users of
cloud computing have various preferences. Some prefer Windows and
others prefer Linux or other operating systems. Therefore, there is a
challenge for OS-level virtualization in such cases.

The virtualization layer is inserted inside the OS to partition the hardware


resources for multiple VMs to run their applications in multiple virtual
environments. To implement OS-level virtualization, isolated execution
environ-ments (VMs) should be created based on a single OS kernel.
Furthermore, the access requests from a VM need to be redirected to the
VM’s local resource partition on the physical machine. For example, the
chroot command in a UNIX system can create several virtual root
directories within a host OS. These virtual root directories are the root
directories of all VMs created.

Binary Translation with Full Virtualization

Depending on implementation technologies, hardware virtualization can be


classified into two categories: full virtualization and host-based
virtualization. Full virtualization does not need to modify the host OS. It
relies on binary translation to trap and to virtualize the execution of certain
sensitive, nonvirtualizable instructions. The guest OSes and their
applications consist of noncritical and critical instructions. In a host-based
system, both a host OS and a guest OS are used. A virtualization software
layer is built between the host OS and guest OS. These two classes of VM
architecture are introduced next.

1. Full Virtualization
With full virtualization, noncritical instructions run on the hardware directly
while critical instructions are discovered and replaced with traps into the

Dr. P. S. More
DKTE TEI’s Department of CSE 21
Cloud Computing: Ch 2 Virtualization

VMM to be emulated by software. Both the hypervisor and VMM approaches


are considered full virtualization. Why are only critical instructions trapped
into the VMM? This is because binary translation can incur a large
performance overhead. Noncritical instructions do not control hardware or
threaten the security of the system, but critical instructions do. Therefore,
running noncritical instructions on hardware not only can promote
efficiency, but also can ensure system security.

2. Binary Translation of Guest OS Requests Using a VMM


This approach was implemented by VMware and many other software
companies. As shown in Figure 3.6, VMware puts the VMM at Ring 0 and
the guest OS at Ring 1. The VMM scans the instruction stream and identifies
the privileged, control- and behaviour-sensitive instructions. When these
instructions are identified, they are trapped into the VMM, which emulates
the behavior of these instructions. The method used in this emulation is
called binary translation. Therefore, full virtualization combines binary
translation and direct execution. The guest OS is completely decoupled
from the underlying hardware. Consequently, the guest OS is unaware that
it is being virtualized.

The performance of full virtualization may not be ideal, because it involves


binary translation which is rather time-consuming. In particular, the full
virtualization of I/O-intensive applications is a really a big challenge. Binary
translation employs a code cache to store translated hot instructions to
improve performance, but it increases the cost of memory usage. At the
time of this writing, the performance of full virtualization on the x86
architecture is typically 80 percent to 97 percent that of the host machine.

3. Host-Based Virtualization
An alternative VM architecture is to install a virtualization layer on top of
the host OS. This host OS is still responsible for managing the hardware.
The guest OSes are installed and run on top of the virtualization layer.

Dr. P. S. More
DKTE TEI’s Department of CSE 22
Cloud Computing: Ch 2 Virtualization

Dedicated applications may run on the VMs. Certainly, some other


applications

can also run with the host OS directly. This host-based architecture has
some distinct advantages, as enumerated next. First, the user can install
this VM architecture without modifying the host OS. The virtualizing
software can rely on the host OS to provide device drivers and other low-
level services. This will simplify the VM design and ease its deployment.

Second, the host-based approach appeals to many host machine


configurations. Compared to the hypervisor/VMM architecture, the
performance of the host-based architecture may also be low. When an
application requests hardware access, it involves four layers of mapping
which downgrades performance significantly. When the ISA of a guest OS
is different from the ISA of the underlying hardware, binary translation
must be adopted. Although the host-based architecture has flexibility, the
performance is too low to be useful in practice.

Open-Source Hypervisor Technologies for Virtualization

Virtualization has revolutionized the way we deploy and manage IT


infrastructure, allowing organizations to maximize resource utilization,
reduce costs, and enhance flexibility. One of the key components of
Dr. P. S. More
DKTE TEI’s Department of CSE 23
Cloud Computing: Ch 2 Virtualization

virtualization is the hypervisor, a software layer that enables multiple


operating systems to run on a single physical machine. Open-source
hypervisor technologies have gained popularity due to their cost-
effectiveness, customization options, and strong community support.
Following are the top 11 open source hypervisor technologies for
virtualization.

1. KVM (Kernel-based Virtual Machine):


KVM is a Linux kernel module that turns the host OS into a hypervisor.
It offers excellent performance and supports both full virtualization (via
QEMU) and para-virtualization.
KVM is widely used in enterprise environments and is the foundation of
many other virtualization platforms.
2. Xen Project:
Xen is a mature, feature-rich open source hypervisor.
It supports paravirtualization and hardware-assisted virtualization, offering
excellent performance.
Xen is known for its robust security features, making it a popular choice for
hosting providers.
3. VirtualBox:
Developed by Oracle, VirtualBox is a versatile open source hypervisor that’s
user-friendly and suitable for desktop virtualization.
It supports various guest operating systems and provides a range of
features like snapshots and seamless mode.
4. QEMU (Quick Emulator):
QEMU is an open source emulator that, when combined with KVM, provides
a powerful virtualization solution.
It offers support for a wide range of guest operating systems and
architectures.
5. Proxmox Virtual Environment (Proxmox VE):

Dr. P. S. More
DKTE TEI’s Department of CSE 24
Cloud Computing: Ch 2 Virtualization

Proxmox VE is a complete virtualization management platform that


combines two virtualization technologies: KVM for virtual machines and LXC
for container-based virtualization.
It provides a web-based management interface and supports clustering for
high availability.
6. oVirt:
oVirt is an open source virtualization management platform built on KVM.
It offers features like live migration, storage management, and a web-
based interface for centralized management.
7. Virt-manager:
Virt-manager is a desktop application that provides a simple, user-friendly
interface for managing virtual machines on KVM.
It is especially handy for those who prefer a GUI for virtualization tasks.
8. Vagrant:
Vagrant is a tool for creating and configuring lightweight, reproducible
virtual environments.
While it’s primarily used for development and testing, it’s an excellent
choice for quickly spinning up virtual machines.
9. XCP-ng:
XCP-ng is a high-performance virtualization platform based on XenServer
and is fully open source.
It provides enterprise-level features like live migration, VM snapshots, and
centralized management.
10. Kimchi:
Kimchi is an open source HTML5-based virtualization management tool for
KVM.
It offers a lightweight and easy-to-use web interface for managing virtual
machines.
11. Virtuozzo:
Virtuozzo is an open source virtualization platform that supports both
containers (Virtuozzo Containers) and full virtualization (KVM).

Dr. P. S. More
DKTE TEI’s Department of CSE 25
Cloud Computing: Ch 2 Virtualization

It’s designed for high-density environments and can efficiently manage


large numbers of virtual instances.

Questions:
1. What are the different levels at which virtualization can be
implemented?
2. What are some popular open-source virtualization
technologies?
3. What is binary translation, and how does it enable full
virtualization?
4. What are types of hypervisors? How do they work?
5. With a neat diagram explain Xen architecture.

Dr. P. S. More

You might also like