Understanding Virtualization Techniques
Understanding Virtualization Techniques
10/22/2024 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
[Link] Virtualization.
[Link] Virtualization.
[Link] Virtualization.
[Link] Virtualization.
[Link] Virtualization.
[Link] virtualization.
3.4 Implementation Level of Virtualization
10/22/2024 Virtualization-Module 2
3.1 Basics of Virtualization
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
10/22/2024 Virtualization-Module 2
What is Virtualization?
10/22/2024 Virtualization-Module 2
10/22/2024 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.
10/22/2024 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
10/22/2024 Virtualization-Module 2
Applications
Application - level
Virtualization
Programming Languages
Programming
Execution Stack
Language level
Virtualization
Operative Systems
OS- level Virtualization
Hardware
Hardware - level
Virtualization
10/22/2024 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
10/22/2024
will operate. Virtualization-Module 2
Virtual Image Applications Applications
Guest
10/22/2024 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.
10/22/2024 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.
10/22/2024 Virtualization-Module 2
Managed Execution
10/22/2024 Virtualization-Module 2
Portability
10/22/2024 Virtualization-Module 2
3.3 Taxonomy of Virtualization
Techniques
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
10/22/2024 Virtualization-Module 2
Taxonomy of virtualization
10/22/2024 Virtualization-Module 2
Paravirtualization is a type of virtualization where software instructions
from the guest operating system running inside a virtual machine can
use “hypercalls” that communicate directly with the hypervisor. This
provides an interface very similar to software running natively on the
host hardware.
10/22/2024 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.
10/22/2024 Virtualization-Module 2
1. Machine Reference Model
10/22/2024 Virtualization-Module 2
Hypervisor
● Hypervisor: 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
10/22/2024 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.
10/22/2024 Virtualization-Module 2
10/22/2024 Virtualization-Module 2
Virtual Machine Manager (VMM)
● Main Modules :-
– Dispatcher: Entry Point of VMM, Context Switching: Switch the CPU between
different VMs, ensuring that each VM gets its share of processing time.
– Allocator: The allocator is responsible for managing resources (like CPU, memory,
and I/O devices) between different VMs
– Interpreter: The interpreter is responsible for translating instructions from the
guest VMs into something that the underlying hardware or hypervisor can
understand.
10/22/2024 Virtualization-Module 2
Virtual Machine Manager (VMM)
10/22/2024 Virtualization-Module 2
3. Hardware virtualization Techniques (T1, T2,
T3,T4)
● Hardware virtualization techniques are methods used to
create virtual instances of computing resources, allowing
multiple operating systems or applications to run on a
single physical machine as if they had their own dedicated
hardware.
● This is typically achieved through a Virtual Machine
Monitor (VMM) or hypervisor, which manages the
interaction between virtual machines (VMs) and the
physical hardware.
10/22/2024 Virtualization-Module 2
● T1: Hardware-assisted virtualization
● Description: Modern CPUs from Intel and AMD provide hardware
support for virtualization, which reduces the need for software-
based instruction emulation.
● How It Works: Special CPU extensions (Intel VT-x and AMD-V) are
used to run VMs in a more isolated and secure environment.
These extensions allow guest OSes to execute privileged
instructions directly on the hardware without hypervisor
intervention.
● Example: Any modern hypervisor like VMware ESXi, KVM, and
Hyper-V can use these CPU extensions.
10/22/2024 Virtualization-Module 2
– 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
•.
10/22/2024 Virtualization-Module 2
10/22/2024 Virtualization-Module 2
T3: Paravirtualization
– Paravirtualization is a virtualization technique that differs from both
full virtualization and hardware-assisted virtualization in how it
handles the interaction between the guest operating system (OS) and
the hypervisor, particularly regarding security rings and privileged
instruction handling.
Key Characteristics:
•Modified Guest OS: The guest OS is modified to communicate with the
hypervisor via hypercalls, which are explicit API calls made by the guest OS
to the hypervisor, replacing privileged instructions.
10/22/2024 Virtualization-Module 2
Paravirtualization is a type of virtualization where software instructions
from the guest operating system running inside a virtual machine can
use “hypercalls” that communicate directly with the hypervisor. This
provides an interface very similar to software running natively on the
host hardware.
10/22/2024 Virtualization-Module 2
• 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
T4: Partial virtualization
– Partial emulation of the underlying hardware
Also known as Selective Virtualization: Why?
•In partial virtualization, only certain hardware components or features
are virtualized. For instance, the CPU or memory may be virtualized, while
other resources like the I/O devices may be directly accessed by the guest
OS without the need for hypervisor intervention.
10/22/2024 Virtualization-Module 2
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.
10/22/2024 Virtualization-Module 2
10/22/2024 Virtualization-Module 2
Comparison between the Full Virtualization and
paravirtualization in Operating System
[Link] 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
4. operation as compared to full
10/22/2024 paravirtualization in operation.
Virtualization-Module 2 virtualization.
[Link] 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.
10/22/2024 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.
10/22/2024 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
10/22/2024 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.
10/22/2024 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
✔More efficient IT operations
10/22/2024 Virtualization-Module 2
Pros and cons of virtualization
• Disadvantages of Virtualization
✔Software licensing considerations
✔Possible learning curve
✔Security holes and new threats
10/22/2024 Virtualization-Module 2
3.4 Implementation levels of virtualization
Implementation Levels of Virtualization
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. ((refers to anything designed to be
compatible across the most common systems))
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 mstly 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 [Link]-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
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
10/22/2024 Virtualization-Module 2
the application level of the virtual machine run seamlessly.
Technology examples
• Xen: paravirtualization
• VMware: full virtualization
• Microsoft Hyper-V: full virtualization
10/22/2024 Virtualization-Module 2
Xen: paravirtualization
• Xen is an open-source initiative
• Developed by a group of researchers at the
University of Cambridge
• XenSource.
• Desktop virtualization or server virtualization
• Xen Cloud Platform (XCP)
• [Link]
10/22/2024 Virtualization-Module 2
In computer software, an application binary interface (ABI)
is an interface between two binary program modules. During a trap, the execution of a process is set as a
Often, one of these modules is a library or operating high priority compared to user code
system facility, and the other is a program that is being run
by a user
Xen architecture and guest OS management.
10/22/2024 Virtualization-Module 2
VMWare: Full
Direct execution protocol: To make a program run as fast
as one might expect, not surprisingly OS developers came
up with a technique, which we call limited direct execution.
Virtualization The “direct execution” part of the idea is simple: just run
the program directly on the CPU.
10/22/2024 Virtualization-Module 2
Virtualization solutions by VMware
• End-user (desktop) virtualization
10/22/2024 Virtualization-Module 2
VMware workstation architecture.
10/22/2024 Virtualization-Module 2
Virtualization solutions by VMware
• Server virtualization
• VMWare GSX
• VMWare ESXi
10/22/2024 Virtualization-Module 2
VMware GSX server architecture.
10/22/2024 Virtualization-Module 2
VMware ESXi server architecture.
10/22/2024 Virtualization-Module 2
GSX (aka VMware Server) is a virtualization layer that run on host OS
(Linux or Windows), use Host OS drivers and can have same
limitation of the host OS environment (for example the 4GB limit for a
Windows Server Standard). ESX is a bare metal virtualization layer (or
type-1 hypervisor).
10/22/2024 Virtualization-Module 2
Virtualization solutions by VMware
• Infrastructure virtualization and cloud
computing solutions
• VMware provides a set of products covering
the entire stack of cloud computing,
10/22/2024 Virtualization-Module 2
VMware Cloud Solution stack.
10/22/2024 Virtualization-Module 2
Microsoft Hyper-V: Server Virtualization
10/22/2024 Virtualization-Module 2
Microsoft Hyper-V architecture.
10/22/2024 Virtualization-Module 2