Module 2 Virtualization Updated
Module 2 Virtualization Updated
10/22/2024 Virtualization-Module 2
3.1.1 Introduction
Virtualization
• Virtualization is the creation of a virtual rather
than actual version of something, such as an
operating system, a server, a storage device or
network resources
• One of the fundamental Concepts of Cloud
Computing
What is Virtualization?
Why are virtualized environments so popular
today?
– Increased performance and computing capacity
●
PCs are having immense computing power.
– Underutilized hardware and software resources
●
Limited use of increased performance & computing capacity.
– Lack of space
●
Continuous need for additional capacity.
– Greening initiatives
●
Reduce carbon footprints
●
Reducing the number of servers, reduce power
consumption.
– Rise of administrative costs
●
Power and cooling costs are higher then IT equipments.
Virtualized Environments
• Virtualization is a method of logically dividing
the system resources between different
applications
• Application Virtualization
• Desktop Virtualization
• Server Virtualization
• Network Virtualization
• Storage Virtualization
Applications
Application - level
Virtualization
Programming Languages
Programming
Execution Stack
Language level
Virtualization
Operative Systems
OS- level Virtualization
Hardware
Hardware - level
Virtualization
●
Three major components of Virtualized
Environments
– Guest – system component that interacts
with Virtualization Layer.
– Host – The host represents the original
environment where the guest is
supposed to be managed.
– Virtualization Layer –The virtualization layer
is responsible for recreating the same or a
different environment where the guest will
operate.
Virtual Image Applications Applications
Guest
10/22/2024 Virtualization-Module 2
Taxonomy of Virtualization Techniques
• Virtualization covers a wide range of emulation techniques
that are applied to different areas of computing.
• A classification of these techniques helps to better understand
their characteristics and use.
• Virtualization is mainly used to emulate execution
environment , storage and networks.
• Execution Environment classified into two :-
– Process-level – implemented on top of an existing operating
system.
– System-level – implemented directly on hardware and do not or
minimum requirement of existing operating system
Taxonomy of virtualization
3.3.1 Execution Virtualization
●
It defines the interfaces between
the levels of abstractions, which
hide implementation details.
●
Virtualization techniques actually
replace one of the layers and
intercept the calls that are directed
towards it.
1. Machine Reference Model
●
The model for Hardware is expressed in terms of the Instruction
Set Architecture (ISA).
– ISA for processor, registers, memory and the interrupt management.
●
Application Binary Interface (ABI) separates the OS layer from
the application and libraries which are managed by the OS.
– System Calls defined
– Allows probabilities of applications and libraries across
OS.
Machine Reference Model [Cont.]
●
API – it interfaces applications to
libraries and/or the underlying OS.
●
Layered approach simplifies
the development and
implementation of computing
system.
●
ISA has been divided into two
security classes:-
– Privileged Instructions
– Nonprivileged Instructions
ISA: Security Classes
●
Nonprivileged instructions
– That can be used without interfering with
other tasks because they do not access
shared resources. Ex. Arithmetic , floating
& fixed point.
●
Privileged instructions
– That are executed under specific
restrictions and are mostly used for
sensitive operations, which expose
(behavior-sensitive) or modify (control-
sensitive) the privileged state.
●
Behavior-sensitive – operate on the I/O
●
Control-sensitive – alter the state of the
CPU register.
Privileged Hierarchy:
Security Ring
●
Ring-0 is in most privileged
level
, used by the kernel.
●
Ring-1 & 2 used by the OS-
level services
●
and , R3 in the least
privileged level , used by
the user.
●
Recent system support
two
levels :-
– Ring 0 – supervisor
2. Hardware-level virtualization
●
It is a virtualization technique that
provides an abstract execution environment
in terms of computer hardware on top of
which a guest OS can be run.
●
It is also called as system virtualization.
●
A fundamental element of hardware
virtualization is the hypervisor, or Virtual
Machine Manager (VMM).
●
It recreates a hardware environment, where
guest operating systems are installed.
Hardware-level virtualization
Hypervisor
●
Hypervisor runs above the supervisor
mode.
●
It runs in supervisor mode.
●
It recreates a h/w environment.
●
It is a piece of s/w that enables us to
run one or more VMs on a physical
server(host).
●
Two major types of hypervisor
– Type -I
– Type-II
Type-I Hypervisor
●
It runs directly on top of the hardware.
●
Takes place of OS.
●
Directly interact with the ISA exposed
by the underlying hardware.
●
Also known as native virtual
machine.
Type-II Hypervisor
●
It require the support of
an operating system to
provide virtualization
services.
●
Programs managed by
the OS.
●
Emulate the ISA of
virtual h/w.
●
Also called hosted
virtual machine.
Virtual Machine Manager (VMM)
●
Main Modules :-
– Dispatcher
●
Entry Point of VMM
●
Reroutes the instructions issued by VM
instance.
– Allocator
●
Deciding the system resources to be provided
to the
VM.
●
Invoked by dispatcher
– Interpreter
●
Consists of interpreter routines
●
Executed whenever a VM executes a
privileged instruction.
●
Virtual Machine Manager (VMM)
Criteria of VMM
●
The criteria that need to be met by a virtual
machine manager to efficiently support
virtualization were established by Goldberg
and Popek in 1974. Three properties have
to be satisfied:
●
Equivalence – a guest running under
the control of a virtual machine
manager should exhibit the same
behavior as when executed directly
on the physical host.
●
Resource control – The virtual
machine manager should be in
complete control of virtualized
resources.
●
Efficiency – a statistically
dominant fraction of the
machine instructions should
be executed without intervention
from the VMM. All safe guest
instructions are executed by
the hardware directly.
10/22/2024 Virtualization-Module 2
Theorems
●
Popek and Goldberg provided a
classification of the instruction set and
proposed three theorems that define
the properties that hardware
instructions need to satisfy in order to
efficiently support virtualization.
●
Classification of IS-
– Privileged Instructions
●
Those that trap if the processor is in user mode and do not trap if it is in
system mode (supervisor mode).
●
Control sensitive Instructions
●
Those that attempt to change the configuration of resources in the
system.
Theorems-1
●
Theorems 1
– For any conventional third-generation
computer, a VMM may be constructed
if the set of sensitive instructions for
that computer is a subset of the set of
privileged instructions.
Theorems
●
Theorems 2
– A conventional third-generation
computers is recursively virtualizable
if:
●
It is virtualizable and
●
A VMM without any timing dependencies
can be constructed for it.
Theorems
●
Theorems 3
– A hybrid VMM may be constructed
third- generation machine in which the
set of user- sensitive instructions is a
subset of the set of privileged
instructions.
– In HVM, more instructions are interpreted
rather than being executed directly.
3. Hardware virtualization Techniques
●
CPU installed on the host is only
one set, but each VM that runs on
the host requires their own CPU.
●
It means CPU needs to virtualized,
done by hypervisor.
●
Hardware-assisted virtualization
– In this hardware provides
architectural support for building a
VMM able to run a guest OS in
complete isolation.
– Intel VT and AMD V extensions.
– Early products were using binary
translation to trap some sensitive
instructions and provide an emulated
version
– Also known as native virtualization, in
this technique, underlying hardware
provides special CPU instructions to
aid virtualization.
– This technique is also highly portable as
the hypervisor can run an unmodified
guest OS. This technique makes
hypervisor implementation less complex
and more maintainable.
10/22/2024 Virtualization-Module 2
10/22/2024 Virtualization-Module 2
●
Full virtualization
– Ability to run program (OS) directly on top of a
virtual machine and without any modification.
– VMM require complete emulation of the entire
underneath h/w
– Advantages
●
Complete isolation
●
Enhanced security
●
Ease of emulation of different architectures and
coexistence
– Key challenge is interception of privileged
instructions
- This process was introduced by IBM in the year
1966. It is considered to be the first software
solution for server virtualization. It uses binary
translation and a direct approach method.
- In this, the guest OS is fully isolated
using the virtual machine from the
virtualization layer and hardware.
• Examples of full virtualization include
Microsoft and Parallels systems.
• It is considered to be less secure in
comparison to paravirtualization.
10/22/2024 Virtualization-Module 2
10/22/2024 Virtualization-Module 2
●
Paravirtualization
– Not-transparent virtualization
– Thin VMM
– Expose software interface to the virtual
machine that is slightly modified from the
host.
– Guest OS need to be modified.
– Simply transfer the execution of
instructions which were hard to
virtualized, directly to the host.
• Paravirtualization is the category of CPU
virtualization which uses hyper calls 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.
10/22/2024 Virtualization-Module 2
10/22/2024 Virtualization-Module 2
●
Partial virtualization
– Partial emulation of the underlying
hardware
– Not allow complete isolation to guest
OS.
– Address space virtualization is a
common feature of comtemporary
operating systems.
– Address space virtualization used in
time- sharing system.
10/22/2024 Virtualization-Module 2
Comparison between the Full Virtualization and
paravirtualization in Operating System
S.no Full Virtualization ParaVirtualization
In paravirtualization, a virtual
In Full virtualization, virtual
machine does not implement
machines permit the execution of
full isolation of OS but rather
1 the instructions with the running of
provides a different API which is
unmodified OS in an entirely
utilized when OS is subjected to
isolated way.
alteration.
Paravirtualization is faster in
Full Virtualization is slow than
4.
10/22/2024 2 operation as compared to full
paravirtualization in Virtualization-Module
operation.
S.No Full Virtualization ParaVirtualization
●
It is mostly used to achieve ease of
deployment of application, managed
execution and portability across different
platform and OS.
●
It consists of a virtual machine executing the
byte code of a program, which is the result of
the compilation process.
●
Produce a binary format representing the
machine code for an abstract architecture.
●
Example
– Java platform – Java virtual machine (JVM)
– .NET provides Common Language
Infrastructure (CLI)
●
They are stack-based virtual machines
Advantage of programming/process- level VM
●
Provide uniform execution
environment
across different platforms.
●
This simplifies the development
and deployment efforts.
●
Allow more control over the execution
of programs.
●
Security; by filtering the I/O
operations
●
Easy support for sandboxing
6. Application-level virtualization
●
It is a technique allowing
applications to run in runtime
environments that do not natively
support all the features required by
such applications.
●
In this, applications are not installed
in the
expected runtime environment.
●
This technique is most concerned
with :-
– Partial file system
3.3.2 Types of Virtualization
1. Application Server Virtualization
• Application virtualization helps a user to have
remote access of an application from a server.
• The server stores all personal information and
other characteristics of the application but
can still run on a local workstation through the
internet.
• Example of this would be a user who needs to
run two different versions of the same
software.
• Technologies
10/22/2024 that
Virtualization-Module 2 use application
2. Network Virtualization
●
It combines h/w appliances and specific
software for the creation and management
of a virtual n/w.
●
It can aggregate different physical
networks into a single logical network.
●
The ability to run multiple virtual
networks with each has a separate control
and data plan. It co-exists together on top
of one physical network. It can be
managed by individual parties that
2. Network Virtualization
•Network virtualization provides a facility to
create and provision virtual networks—logical
switches, routers, firewalls, load balancer, Virtual
Private Network (VPN), and workload security
within days or even in weeks.
10/22/2024 Virtualization-Module 2
Levels of Virtualization
1) Instruction Set Architecture Level (ISA)
- ISA virtualization can work through ISA emulation.
This is used to run many legacy codes that were written
for a different configuration of hardware. These codes
run on any virtual machine using the ISA.
- With this, a binary code that originally needed some
additional layers to run is now capable of running on
the x86 machines. It can also be tweaked to run on the
x64 machine. With ISA, it is possible to make the
virtual machine hardware agnostic.
10/22/2024 Virtualization-Module 2
- For the basic emulation, an interpreter is needed, which
interprets the source code and then converts it into a
hardware format that can be read. This then allows
processing. This is one of the five implementation levels of
virtualization in cloud computing.
10/22/2024 Virtualization-Module 2
Levels of Virtualization
2) Hardware Abstraction Level (HAL)
- HAL lets the virtualization perform at the level of the hardware.
This makes use of a hypervisor which is used for functioning.
- At this level, the virtual machine is formed, and this manages
the hardware using the process of virtualization.
- It allows the virtualization of each of the hardware components,
which could be the input-output device, the memory, the
processor, etc.
- Multiple users will not be able to use the same hardware and
also use multiple virtualization instances at the very same time.
This is mostly used in the cloud-based infrastructure.
10/22/2024 Virtualization-Module 2
Levels of Virtualization
3) Operating System Level
- At the level of the operating system, the virtualization model is
capable of creating a layer that is abstract between the operating
system and the application. This is an isolated container that is on
the operating system and the physical server, which makes use of
the software and hardware. Each of these then functions in the
form of a server.
- When there are several users, and no one wants to share the
hardware, then this is where the virtualization level is used.
Every user will get his virtual environment using a virtual
hardware resource that is dedicated. In this way, there is no
question of any conflict.Virtualization-Module 2
10/22/2024
Levels of Virtualization
4) Library Level
- The operating system is cumbersome, and this is when the
applications make use of the API that is from the libraries at
a user level. These APIs are documented well, and this is
why the library virtualization level is preferred in these
scenarios. API hooks make it possible as it controls the link
of communication from the application to the system.
10/22/2024 Virtualization-Module 2