UNIT – I
INTRODUCTION TO VIRTUALIZATION
What is Virtualization?
Virtualization is the establishment of cloud computing. It is this novelty that empowers a continuous asset age
from certain eccentric conditions or a singular physical device framework. Here the job of hypervisor is essential,
which is legitimately associated with the equipment to make a few virtual machines from it. These virtual
machines working is unmistakable, independent and doesn’t meddle with one another.In the condition of disaster
recovery, it relies on single peripheral device as single dedicated hardware.
Virtualization exists in different classes which are:-
What is Cloud Computing?
Cloud computing is a client-server computing architecture. In cloud computing, resources are used in centralized
pattern and cloud computing is a high accessible service. Cloud computing is a payment and useful business tool,
users pay for usage.
Cloud Computing vs. Virtualization: Key Differences
S.NO Cloud Computing Virtualization
While It is used to make various simulated
1. Cloud computing is used to provide pools and
environments through a physical hardware
automated resources that can be accessed on-demand.
system.
2. While virtualization setup is simple as compared
Cloud computing setup is tedious, complicated.
to cloud computing.
3. While virtualization is low scalable compared to
Cloud computing is high scalable.
cloud computing.
4. While virtualization is less flexible than cloud
Cloud computing is very flexible.
computing.
5. In the condition of disaster recovery, cloud computing
While it relies on single peripheral device.
relies on multiple machines.
6. In cloud computing, the workload is stateless. In virtualization, the workload is stateful.
7. The total cost of cloud computing is higher than The total cost of virtualization is lower than
virtualization. Cloud Computing.
8. While single dedicated hardware can do a great
Cloud computing requires many dedicated hardware.
job in it.
9. While storage space depends on physical server
Cloud computing provides unlimited storage space.
capacity in virtualization.
10. Cloud computing is of two types : Public cloud and Virtualization is of two types : Hardware
Private cloud. virtualization and Application virtualization.
11. In Virtualization, Configuration is template
In Cloud Computing, Configuration is image based.
based.
In cloud computing, we utilize the entire server In Virtualization, the entire servers are on-
12. capacity and the entire servers are consolidated. demand.
In cloud computing, the pricing pay as you go model,
In Virtualization, the pricing is totally
13. and consumption is the metric on which billing is
dependent on infrastructure costs.
done.
Need of Virtualization and its Reference Model
There are five major needs of virtualization which are described below:
1. ENHANCED PERFORMANCE-
The end user system i.e. PC is sufficiently powerful to fulfill all the basic computation requirements of
the user, with various additional capabilities which are rarely used by the user. Most of their systems
have sufficient resources which can host a virtual machine manager and can perform a virtual machine.
2. LIMITED USE OF HARDWARE AND SOFTWARE RESOURCES-
The limited use of the resources leads to under-utilization of hardware and software resources. As all the
PCs of the user are sufficiently capable to fulfill their regular computational needs that’s why many of
their computers are used often which can be used 24/7 continuously without any interruption. The
efficiency of IT infrastructure could be increase by using these resources after hours for other purposes.
This environment is possible to attain with the help of Virtualization.
3. SHORTAGE OF SPACE-
The regular requirement for additional capacity, whether memory storage or compute power, leads data
centers raise rapidly. Companies like Google, Microsoft and Amazon develop their infrastructure by
building data centers as per their needs. Mostly, enterprises unable to pay to build any other data center
to accommodate additional resource capacity. This heads to the diffusion of a technique which is known
as server consolidation.
4. ECO-FRIENDLY INITIATIVES-
At this time, corporations are actively seeking for various methods to minimize their expenditures on
power which is consumed by their systems. Data centers are main power consumers and maintaining a
data center operations needs a continuous power supply as well as a good amount of energy is needed to
keep them cool for well-functioning. Therefore, server consolidation drops the power consumed and
cooling impact by having a fall in number of servers. Virtualization can provide a sophisticated method
of server consolidation.
5. ADMINISTRATIVE COSTS-
The rise in demand for capacity surplus, that convert into more servers in a data center, accountable for a
significant increase in administrative costs. Hardware monitoring, server setup and updates, defective
hardware replacement, server resources monitoring, and backups are included in common system
administration tasks. These are personnel-intensive operations. The administrative costs is increased as
per the number of servers. Virtualization decreases number of required servers for a given workload,
hence reduces the cost of administrative employees.
VIRTUALIZATION REFERENCE MODEL
Three major Components falls under this category in a virtualized environment:
1. GUEST:
The guest represents the system component that interacts with the virtualization layer rather than with
the host, as would normally happen. Guests usually consist of one or more virtual disk files, and a VM
definition file. Virtual Machines are centrally managed by a host application that sees and manages each
virtual machine as a different application.
2. HOST:
The host represents the original environment where the guest is supposed to be managed. Each guest
runs on the host using shared resources donated to it by the host. The operating system, works as the host
and manages the physical resource management, and the device support.
3. VIRTUALIZATION LAYER:
The virtualization layer is responsible for recreating the same or a different environment where the guest
will operate. It is an additional abstraction layer between a network and storage hardware, computing,
and the application running on it. Usually it helps to run a single operating system per machine which
can be very inflexible compared to the usage of virtualization.
Hardware Based Virtualization
A platform virtualization approach that allows efficient full virtualization with the help of hardware
capabilities, primarily from the host processor is referred to as Hardware based virtualization in computing. To
simulate a complete hardware environment, or virtual machine, full virtualization is used in which an unchanged
guest operating system.
The different logical layers of operating system-based virtualization, in which the VM is first installed into a full
host operating system and subsequently used to generate virtual machines.
An abstract execution environment in terms of computer hardware in which guest OS can be run, referred to as
Hardware-level virtualization. In this, an operating system represents the guest, the physical computer hardware
represents a host, its emulation represents a virtual machine, and the hypervisor represents the Virtual Machine
Manager. When the virtual machines are allowed to interact with hardware without any intermediary action
requirement from the host operating system generally makes hardware-based virtualization more efficient. A
fundamental component of hardware virtualization is the hypervisor, or virtual machine manager (VMM).
Full Virtualization:
Full Virtualization was introduced by IBM in the year 1966. It is the first software solution for server virtualization
and uses binary translation and direct approach techniques. In full virtualization, guest OS is completely isolated by
the virtual machine from the virtualization layer and hardware. Microsoft and Parallels systems are examples of full
virtualization.
1. In Full virtualization, virtual machines permit the execution of the instructions with the running of
unmodified OS in an entirely isolated way.
2. Full Virtualization is less secure.
3. Full Virtualization uses binary translation and a direct approach as a technique for operations.
4. Full Virtualization is slow than paravirtualization in operation.
5. Full Virtualization is more portable and compatible.
6. Examples of full virtualization are Microsoft and Parallels systems.
7. It supports all guest operating systems without modification.
8. The guest operating system will issue hardware calls.
9. It is less streamlined compared to para-virtualization.
10. It provides the best isolation.
Partial Virtualization
When entire operating systems cannot run in the virtual machine, but some or many applications can, it is known as
Partial Virtualization. Basically, it partially simulates the physical hardware of a system.
This type of virtualization is far easier to execute than full virtualization. This is very successful when computer
resources are shared amongst multiple users.
Situations that need backward compatibility or portability require full virtualization. Here partial virtualization falls
woefully short. This is because it is difficult to anticipate which features have been used by a particular application.
Partial virtualization was used in the first-generation, time sharing system, the CTSS. This was a historical milestone
since it paved the way to full virtualization.
Address space virtualization is a key form of partial virtualization. Here, each virtual machine consists of an
independent address space. This needs address relocation hardware, and is present in the most practical examples of
partial virtualization.
Running the whole operating system in the virtual machine can be difficult for a few applications thus the process of
partial virtualization opts. It is one of those types of virtualization that is easier to execute. Moreover, it is highly
successful when computer resources are shared among other website users.
Paravirtualization
Paravirtualization is the category of CPU virtualization which uses hypercalls for operations to handle instructions at
compile time. In paravirtualization, guest OS is not completely isolated but it is partially isolated by the virtual
machine from the virtualization layer and hardware. VMware and Xen are some examples of paravirtualization.
Paravirtualization
1. In paravirtualization, a virtual machine does not implement full isolation of OS but rather provides a
different API which is utilized when OS is subjected to alteration.
2. Paravirtualization is more secure than the Full Virtualization.
3. Paravirtualization uses hypercalls at compile time for operations.
4. Paravirtualization is faster in operation as compared to full virtualization.
5. Full Virtualization is more portable and compatible. Paravirtualization is less portable and compatible.
6. Examples of paravirtualization are Microsoft Hyper-V, Citrix Xen, etc.
7. The guest operating system has to be modified and only a few operating systems support it.
8. Using the drivers, the guest operating system will directly communicate with the hypervisor.
9. It is more streamlined.
10. It provides less isolation compared to full virtualization.
Types of Hypervisors
There are two types of Hypervisors:
Type-I hypervisors:
Hypervisors of type I run directly on top of the hardware. As a result, they stand in for operating systems and
communicate directly with the ISA interface offered by the underlying hardware, which they replicate to allow guest
operating systems to be managed. Because it runs natively on hardware, this sort of hypervisor is also known as a
native virtual machine.
The hypervisor runs directly on the underlying host system. It is also known as a “Native Hypervisor” or “Bare
metal hypervisor”. It does not require any base server operating system. It has direct access to hardware resources.
Examples of Type 1 hypervisors include VMware ESXi, Citrix XenServer, and Microsoft Hyper-V hypervisor.
Type-II hypervisors:
To deliver virtualization services, Type II hypervisors require the assistance of an operating system. This means
they’re operating system-managed applications that communicate with it via the ABI and simulate the ISA of virtual
hardware for guest operating systems. Because it is housed within an operating system, this form of hypervisor is
also known as a hosted virtual machine.
A hypervisor has a simple user interface that needs some storage space. It exists as a thin layer of software and to
establish a virtualization management layer, it does hardware management function. For the provisioning of virtual
machines, device drivers and support software are optimized while many standard operating system functions are
not implemented. Essentially, to enhance performance overhead inherent to the coordination which allows multiple
VMs to interact with the same hardware platform this type of virtualization system is used.
A Host operating system runs on the underlying host system. It is also known as ‘Hosted Hypervisor”. Such kind of
hypervisors doesn’t run directly over the underlying hardware rather they run as an application in a Host
system(physical machine). Basically, the software is installed on an operating system. Hypervisor asks the operating
system to make hardware calls. An example of a Type 2 hypervisor includes VMware Player or Parallels Desktop.
Hosted hypervisors are often found on endpoints like PCs. The type-2 hypervisor is very useful for engineers, and
security analysts (for checking malware, or malicious source code and newly developed applications).
HYPERVISOR REFERENCE MODEL :
There are 3 main modules coordinates in order to emulate the underlying hardware:
DISPATCHER:
The dispatcher behaves like the entry point of the monitor and reroutes the instructions of the virtual machine
instance to one of the other two modules.
ALLOCATOR:
The allocator is responsible for deciding the system resources to be provided to the virtual machine instance. It
means whenever a virtual machine tries to execute an instruction that results in changing the machine resources
associated with the virtual machine, the allocator is invoked by the dispatcher.
INTERPRETER:
The interpreter module consists of interpreter routines. These are executed, whenever a virtual machine executes a
privileged instruction.