Module 2-1
Module 2-1
16-Mar-24 Virtualization-Module 2
Contents
3.1 Basics of Virtualization
3.1.1 Introduction
3.1.2 Characteristic of Virtualized Environments
3.3 Taxonomy of Virtualization Techniques
3.3.1 Execution Environment
1. Machine Reference Model
2. Hardware Level Virtualization
3. Hardware Virtualization Techniques
4. Operating system-level virtualization
5. Programming language-level virtualization
6. Application-level virtualization
3.3.2 Types of Virtualization
1.Application Virtualization.
2.Network Virtualization.
3.Desktop Virtualization.
4.Storage Virtualization.
5.Server Virtualization.
6.Data virtualization.
3.4 Implementation Level of Virtualization
16-Mar-24 Virtualization-Module 2
3.1 Basics of Virtualization
16-Mar-24 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
16-Mar-24 Virtualization-Module 2
What is Virtualization?
16-Mar-24 Virtualization-Module 2
16-Mar-24 Virtualization-Module 2
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.
16-Mar-24 Virtualization-Module 2
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
16-Mar-24 Virtualization-Module 2
Applications
Application - level
Virtualization
Programming Languages
Programming
Execution Stack
Language level
Virtualization
Operative Systems
OS- level Virtualization
Hardware
Hardware - level
Virtualization
16-Mar-24 Virtualization-Module 2
● 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.
16-Mar-24 Virtualization-Module 2
Guest Virtual Image Applications Applications
16-Mar-24 Virtualization-Module 2
Increased Security
– Ability to control the execution of a guest
– Guest is executed in emulated environment.
– Virtual Machine Manager control and filter the
activity of the guest.
– Hiding of resources.
– Having no effect on other users/guest
environment.
16-Mar-24 Virtualization-Module 2
Managed Execution types
– Sharing
● Creating separate computing environment within the
same host.
● Underline host is fully utilized.
– Aggregation
● A group of separate hosts can be tied together and
represented as single virtual host.
– Emulation
● Controlling & Tuning the environment exposed to
guest.
– Isolation
● Complete separate environment for guests.
16-Mar-24 Virtualization-Module 2
Managed Execution
16-Mar-24 Virtualization-Module 2
Portability
16-Mar-24 Virtualization-Module 2
3.3 Taxonomy of Virtualization Techniques
16-Mar-24 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
16-Mar-24 Virtualization-Module 2
Taxonomy of virtualization
16-Mar-24 Virtualization-Module 2
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.
16-Mar-24 Virtualization-Module 2
1. Machine Reference Model
16-Mar-24 Virtualization-Module 2
Machine Reference Model [Cont.]
16-Mar-24 Virtualization-Module 2
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.
16-Mar-24 Virtualization-Module 2
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 mode
– Ring 3 – user mode
16-Mar-24 Virtualization-Module 2
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.
16-Mar-24 Virtualization-Module 2
Hardware-level virtualization
16-Mar-24 Virtualization-Module 2
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
16-Mar-24 Virtualization-Module 2
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.
16-Mar-24 Virtualization-Module 2
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.
● Trap is triggered and the corresponding routine is
16-Mar-24 executed. Virtualization-Module 2
Virtual Machine Manager (VMM)
16-Mar-24 Virtualization-Module 2
Criteria of VMM
16-Mar-24 Virtualization-Module 2
● 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.
16-Mar-24 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).
16-Mar-24 Virtualization-Module 2
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.
● Recursive virtualization is the ability to run a virtual machine
manager on top of another virtual machine manager.
● This allows nesting hypervisors as long as the capacity of the
underlying resources can accommodate that. Virtualizable
hardware is a prerequisite to recursive virtualization
16-Mar-24 Virtualization-Module 2
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.
– All instructions in virtual supervisor mode are interpreted.
Whenever there is an attempt to execute a behavior-sensitive or
control-sensitive instruction, HVM controls the execution directly
n or gains the control via a trap.
– Here all sensitive instructions are caught by HVM that are
bm m m16-Mar-24
simulated Virtualization-Module 2
Full virtualization
● Full virtualization refers to the ability to run a program,
most likely an operating system, directly on top of a virtual
machine and without any modification,
● as though it were run on the raw hardware.
● To make this possible, virtual machine managers are
required to provide a complete emulation of the entire
underlying hardware
16-Mar-24 Virtualization-Module 2
-The principal advantage of full virtualization is complete
isolation, which leads to enhanced security, ease of
emulation of different architectures, and coexistence of
different systems on the same platform.
16-Mar-24 Virtualization-Module 2
- VMware can virtualize any x86 operating system using a
combination of binary translation and direct execution
techniques.
- This approach translates kernel code to replace
nonvirtualizable instructions with new sequences of
instructions that have the intended effect on the virtual
hardware.
- Meanwhile, user level code is directly executed on the
processor for high performance virtualization.
16-Mar-24 Virtualization-Module 2
- Each virtual machine monitor provides each Virtual
Machine with all the services of the physical system,
including a virtual BIOS, virtual devices and virtualized
memory management.
- This combination of binary translation and direct
execution provides Full Virtualization as the guest OS is
fully abstracted (completely decoupled) from the
underlying hardware by the virtualization layer.
- The guest OS is not aware it is being virtualizedand
requires no modification.
16-Mar-24 Virtualization-Module 2
- Full virtualization is the only option that requires no
hardware assist or operating system assist to virtualize
sensitive and privileged instructions.
- The hypervisor translates all operating system
instructions on the fly and caches the results for future
use, while user level instructions run unmodified at native
speed.
16-Mar-24 Virtualization-Module 2
16-Mar-24 Virtualization-Module 2
● Paravirtualization
– Para-“ is an English affix of Greek origin that means "beside,"
"with," or "alongside.” Given the meaning “alongside
virtualization,” paravirtualization refers to communication between
the guest OS and the hypervisor to improve performance and
efficiency.
– Paravirtualization, involves modifying the OS kernel to replace
nonvirtualizable instructions with hypercalls that communicate
directly with the virtualization layer hypervisor.
– The hypervisor also provides hypercall interfaces for other critical
kernel operations such as memory management, interrupt
handling and time keeping.
16-Mar-24 Virtualization-Module 2
- This is possible when the source code of the
operating system is available, and this is the reason
that paravirtualization was mostly explored in the
open source and academic environment.
- While it is very difficult to build the more
sophisticated binary translation support necessary for
full virtualization, modifying the guest OS to enable
paravirtualization is relatively easy
16-Mar-24 Virtualization-Module 2
16-Mar-24 Virtualization-Module 2
● Partial virtualization
● Partial virtualization provides a partial emulation of
the underlying hardware, thus not allowing the
complete execution of the guest operating system in
complete isolation.
● Partial virtualization allows many applications to run
transparently, but not all the features of the operating
system can be supported, as happens with full
virtualization.
16-Mar-24 Virtualization-Module 2
An example of partial virtualization is address
space virtualization used in time-sharing
systems; this allows multiple applications and
users to run concurrently in a separate memory
space, but they still share the same hardware
resources (disk, processor, and network).
16-Mar-24 Virtualization-Module 2
16-Mar-24 Virtualization-Module 2
Hardware Assisted Virtualization
- Hardware vendors are rapidly embracing virtualization and
developing new features to simplify virtualization techniques.
- First generation enhancements include Intel Virtualization
Technology (VT-x) and AMD’s AMD-V which both target privileged
instructions with a new CPU execution mode feature that allows
the VMM to run in a new root mode below ring 0.
- privileged and sensitive calls are set to automatically trap to the
hypervisor, removing the need for either binary translation or
paravirtualization.
- The guest state is stored in Virtual Machine Control Structures (VT-
x) or Virtual Machine Control Blocks (AMD-V). Processors with
Intel VT and AMD-V became available in 2006, so only newer
16-Mar-24 Virtualization-Module
systems contain these hardware assist2 features
16-Mar-24 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 machines
machine does not implement full
permit the execution of the instructions
1 isolation of OS but rather provides a
with the running of unmodified OS in an
different API which is utilized when
entirely isolated way.
OS is subjected to alteration.
Paravirtualization is faster in
Full Virtualization is slow than
16-Mar-244. Virtualization-Module 2 operation as compared to full
paravirtualization in operation.
virtualization.
S.No Full Virtualization ParaVirtualization
The guest operating system will issue Using the drivers, the guest operating system
8.
hardware calls. will directly communicate with the hypervisor.
• The chroot operation changes the file system root directory for a
process and its children to a specific directory.
16-Mar-24 Virtualization-Module 2
Advantage and Disadvantages
16-Mar-24 Virtualization-Module 2
6. Application-level virtualization
● Application-level virtualization is a technique allowing
applications to be run in runtime environments that do not
natively support all the features required by such
applications.
● In this scenario, applications are not installed in the
expected runtime environment but are run as though they
were.
● In general, these techniques are mostly concerned with
partial file systems, libraries, and operating system
component emulation. S
16-Mar-24 Virtualization-Module 2
Interpretation: In this technique every source instruction is
interpreted by an emulator for executing native ISA instructions,
leading to poor performance.
Interpretation has a minimal startup cost but a huge overhead, since
each instruction is emulated.
• Binary translation. In this technique every source instruction is
converted to native instructions
with equivalent functions. After a block of instructions is translated, it
is cached and reused.
Binary translation has a large initial overhead cost, but over time it is
subject to better performance, since previously translated instruction
blocks are directly executed.
16-Mar-24 Virtualization-Module 2
3.3.2 Types of Virtualization
16-Mar-24 Virtualization-Module 2
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 that use application virtualization are
hosted applications and packaged applications.
16-Mar-24
•
Virtualization-Module 2
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 potentially confidential to each
16-Mar-24 other. Virtualization-Module 2
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.
16-Mar-24 Virtualization-Module 2
Server consolidation and virtual machine migration
16-Mar-24 Virtualization-Module 2
Pros and cons of virtualization
• Advantages of Virtualization
✓Reduced spending
✓Portability
✓Efficient use of resources.
✓Easier backup and disaster recovery
✓Better business continuity
16-Mar-24 Virtualization-Module 2
Pros and cons of virtualization
• Disadvantages of Virtualization
✓Performance decrease of guest systems as a result of the
intermediation performed by the virtualization layer.
✓In addition, suboptimal use of the host because of the
abstraction layer introduced by virtualization management
software can lead to a very inefficient utilization of the host or a
degraded user experience.
✓more dangerous, are the implications for security, which are
mostly due to the ability to emulate a different execution
environment.
16-Mar-24 Virtualization-Module 2
3.4 Implementation levels of virtualization
Levels of Virtualization
16-Mar-24 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.
16-Mar-24 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.
16-Mar-24 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 mstly used in the cloud-based infrastructure.
16-Mar-24 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.
16-Mar-24 Virtualization-Module 2
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.
16-Mar-24 Virtualization-Module 2
Levels of Virtualization
5) Application Level
- The application-level virtualization is used when there is a
desire to virtualize only one application and is the last of the
implementation levels of virtualization in cloud computing.
One does not need to virtualize the entire environment of the
platform.
- This is generally used when you run virtual machines that use
high-level languages. The application will sit above the
virtualization layer, which in turn sits on the application
program.
- It lets the high-level language programs compiled to be used in
16-Mar-24 Virtualization-Module 2
the application level of the virtual machine run seamlessly.