Unit 3 Virtualization
Unit 3 Virtualization
Introduction
In computing, virtualization or virtualisation is the act of creating a virtual (rather than actual)
version of something, including virtual computer hardware platforms, storage devices, and
computer network resources.Virtualization began in the 1960s, as a method of logically dividing
the system resources provided by mainframe computers between different applications. Since
then, the meaning of the term has broadened.Virtualization technology has transformed
hardware into software. It allows to run multiple Operating Systems (OSs) as virtual machines
(Figure 1).Each copy of an operating system is installed in to a virtual machine.
You can see a scenario over here that we have a VMware hypervisor that is also called as a
Virtual Machine Manager (VMM). On a physical device, a VMware layer is installed out and, on
that layer, we have six OSs that are running multiple applications over there, these can be the
same kind of OSs or these can be the different kinds of OSs in it.
Why Virtualize
1. Share same hardware among independent users- Degrees of Hardware parallelism increases.
2. Reduced Hardware footprint through consolidation- Eases management and energy usage.
3. Sandbox/migrate applications- Flexible allocation and utilization.
4. Decouple applications from underlying Hardware- Allows Hardware upgrades without
impacting an OS image.
Virtualization enables sharing of resources much easily, it helps in increasing the degree of
hardware level parallelism, basically, there is sharing of the same hardware unit among
different kinds of independent units, if we say that we have the same physical hardware and
on that physical hardware, we have multiple OSs. There can be different users running on
different kind of OSs. Therefore, we have a much more processing capability with us. This also
helps in increasing the degree of hardware parallelism as well as there is a reduced hardware
footprint throughout the VM consolidation. The hardware footprint that is overall hardware
consumption also reduces out the amount of hardware that is wasted out that can also be
reduced out. This consequently helps in easing out the management process and also to reduce
the amount of energy that would have been otherwise consumed out by a particular hardware
if we would have invested in large number of hardware machines would have been used
otherwise. Virtualization helps in sandboxing capabilities or migrating different kinds of
applications that in turn enables flexible allocations and utilization of the resources.
Additionally, the decoupling of the applications from the underlying hardware is much easier
and further aids in allowing more and more hardware upgrades without actually impacting
any particular OS image.
Virtualization raises abstraction. Abstraction pertains to hiding of the inner details from a
particular user. Virtualization helps in enhancing or increasing the capability of abstraction. It
is very similar to how the virtual memory operates. It helps to access the larger address spaces
physical memory mapping is actually hidden by an OS with the help of paging. It can be similar
to hardware emulators where codes are allowed on one architecture to run on a different
physical device such as virtual devices central processing unit, memory or network interface
cards etc. No botheration is actually required out regarding the hardware details of a
particular machine. The confinement to the excess of hardware details helps in raising out the
abstraction capability through virtualization.
Basically, we have certain requirements for virtualization, first is the efficiency property.
Efficiency means that all innocuous instructions are executed by the hardware independently.
Then, the resource control property means that it is impossible for the programs to directly
affect any kind of system resources. Furthermore, there is an equivalence property that
indicates that we have a program which has a virtual machine manager or hypervisor that
performs in a particular manner,indistinguishable from another program that is running on it.
Increased Performance and Computing Capacity: PCs are having immense computing power.
Nowadays, the average end-user desktop PC is powerful enough to meet almost all the needs of
everyday computing, with extra capacity that Is rarely used. Almost all these PC share resources
enough to host a VMM and execute a VM with by far acceptable performance. The same
consideration applies to the high-end side of the PC market, where supercomputers can provide
immense compute power that can accommodate the execution of hundreds or thousands of VMs.
Lack of space
Greening initiatives
Sandbox/migrate applications
Virtualized Environments
Virtualization is a broad concept that refers to the creation of a virtual version of
something, whether hardware, a software environment, storage, or a network.In a
virtualized environment, there are three major components (Figure 4):
o Guest: Represents the system component that interacts with the virtualization layer
rather than with the host, as would normally happen.
o Host: Represents the original environment where the guest is supposed to be managed.
o Virtualization Layer: Responsible for recreating the same or a different environment
where the guest will operate.
Figure 4:Virtualized Environment
In a bare metal architecture, one hypervisor or VMM is actually installed on the bare metal
hardware. There is no intermediate OS existing over here. The VMM communicates directly with the
system hardware and there is no need for relying on any host OS. VMware ESXi and Microsoft
Hyper-V are different hypervisors that are used for bare-metal virtualization.
Figure 6illustrates the hosted virtualization architecture. At the lower layer, we have the
shared hardware with a host OS running on this shared hardware. Upon the host OS, a VMM
is running that and is creating a virtual layer which is enabling different kinds of OSs to run
concurrently. So, you can see a scenario we have a hardware then we add an operating
system then a hypervisor is added and different kinds of virtual machines can run on that
particular virtual layer and each virtual machine can be running same or different kind of
OSs.
Figure 6: Hosted Virtualization Architecture
In a bare metal architecture, there is an underlying hardware but no underlying OS. There is
just a VMM that is installed on that particular hardware and on that there are multiple VMs
that are running on a particular hardware unit. As illustrated in theFigure 7, there is shared
hardware that is running a VMM on which multiple VMs are running with simultaneous
execution of multiple OSs.
Advantages of Bare-Metal Architecture
Improved I/O performance
Supports Real-time OS
Types of Virtualization
Virtualization covers a wide range of emulation techniques that are applied to different areas
of computing. A classification of these techniques helps us better understand their
characteristics and use.Before discussing virtualization techniques, it is important to know
about protection rings in OSs. The protection rings are used to isolate the OS from untrusted
user applications. The OS can be protected with different privilege levels (Figure 8).
OS Level Virtualization:
kernel allows multiple user spaces aka instance. Unlike other virtualization technologies, there
is very little or no overhead since it uses the host OS kernel for execution. Oracle Solaris zone is
one ofthe famous containers in the enterprise market. The list of other containers:
Linux LCX
Docker
AIX WPAR
Processor Virtualization: It allows the VMs to share the virtual processors that are abstracted from
the physical processors available at the underlying infrastructure (Figure 10). The virtualization
layer abstracts the physical processor to the pool of virtual processors that is shared by the VMs.
The virtualization layer will be normally any hypervisors. But processor virtualization can also be
achieved from distributed servers.
Storage Virtualization: A form of resource virtualization where multiple physical storage disks are
abstracted as a pool of virtual storage disks to the VMs (Figure 12). Normally, the virtualized
storage will be called a logical storage.
Storage virtualization is mainly used for maintaining a backup or replica of the data that are stored
on the VMs. It can be further extended to support the high availability of the data. It efficiently
utilizes the underlying physical storage. Other advanced storage virtualization techniques are
storage area networks (SAN) and network-attached storage (NAS).
Network Virtualization:It is a type of resource virtualization in which the physical network can be
abstracted to create a virtual network (Figure 13).Normally, the physical network components like
router, switch, and Network Interface Card (NIC) will be controlled by the virtualization software
to provide virtual network components. Virtual network is a single software-based entity that
contains the network hardware and software resources. Network virtualization can be achieved
from internal network or by combining many external networks. It enables the communication
between the VMs that share the physical network. There are different types of network access given
to the VMs such as bridged network, network address translation (NAT), and host only.
Figure 13: Network Virtualization
Data Virtualization: Data virtualization offers the ability to retrieve the data without knowing its
type and the physical location where it is stored (Figure 14). It aaggregates the heterogeneous data
from the different sources to a single logical/virtual volume of data. This logical data can be
accessed from any applications such as web services, E-commerce applications, web portals, Software-
as-a-Service (SaaS) applications, and mobile application.It hides the type of the data and the location
of the data for the application that access it and ensures the single point access to data by
aggregating data from different sources. It is mainly used in data integration, business intelligence,
and cloud computing.
Application Virtualization: Application virtualization is the enabling technology for SaaS of cloud
computing that offers the ability to the user to use the application without the need to install any
software or tools in the machine (Figure 15). The complexity of installing the client tools or other
supported software is reduced. Normally, the applications will be developed and hosted in the
central server. The hosted application will be again virtualized, and the users will be given the
separated/isolated virtual copy to access.
Figure 15: Application Virtualization
Pros of Virtualization
Increased Security
The ability to control the execution of a guest in a completely transparent manner opens new
possibilities for delivering a secure, controlled execution environment. VM represents an
emulated environment in which the guest is executed. All the operations of the guest are generally
performed against the VM, which then translates & applies them to the host.By default, the file
system exposed by the virtual computer is completely separated from the one of the host
machines. This becomes the perfect environment for running applications without affecting other
users in the environment.
Managed Execution
Virtualization of the execution environment not only allows increased security, but a wider range
of features also can be implemented such as:
Summary
Virtualization opens the door to a new and unexpected form of phishing. The capability of
emulating a host in a completely transparent manner led the way to malicious programs that
are designed to extract sensitive information from the guest.
Virtualization raises abstraction. Abstraction pertains to hiding of the inner details from a
particular user. Virtualization helps in enhancing or increasing the capability of abstraction.
Virtualization enables sharing of resources much easily, it helps in increasing the degree of
hardware level parallelism, basically, there is sharing of the same hardware unit among
different kinds of independent units.
In protection ring architecture, the rings are arranged in hierarchical order from ring 0 to ring 3.
The Ring 0 contains the programs that are most privileged, and ring 3 contains the programs
that are least privileged.
In a bare metal architecture, one hypervisor or VMM is actually installed on the bare metal
hardware. There is no intermediate OS existing over here. The VMM communicates directly
with the system hardware and there is no need for relying on any host OS.
The para-virtualization works differently from the full virtualization. It need to
simulate the hardware for the VMs. The hypervisor is installed on a physical server (host) and
a guest OS is installed into the environment.
The software-assisted full virtualization is also called as Binary Translation (BT) and it
completely relies on binary translation to trap and virtualize the execution of sensitive, non-
virtualizable instructions sets.
Memory virtualization is an important resource virtualization technique. In the main
memory virtualization, the physical main memory is mapped to the virtual main memory as
in the virtual memory concepts in most of the OSs.