Module 2-Virtualization
Module 2-Virtualization
Module 2-Virtualization
03/28/2023 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
03/28/2023 Virtualization-Module 2
3.1 Basics of Virtualization
03/28/2023 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
03/28/2023 Virtualization-Module 2
What is Virtualization?
03/28/2023 Virtualization-Module 2
03/28/2023 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.
03/28/2023 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
03/28/2023 Virtualization-Module 2
Applications
Application - level
Virtualization
Programming Languages
Programming
Execution Stack
Language level
Virtualization
Operative Systems
OS- level Virtualization
Hardware
Hardware - level
Virtualization
03/28/2023 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.
03/28/2023 Virtualization-Module 2
Virtual Image Applications Applications
Guest
03/28/2023 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.
03/28/2023 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.
03/28/2023 Virtualization-Module 2
Managed Execution
03/28/2023 Virtualization-Module 2
Portability
03/28/2023 Virtualization-Module 2
3.3 Taxonomy of Virtualization Techniques
03/28/2023 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
03/28/2023 Virtualization-Module 2
Taxonomy of virtualization
03/28/2023 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.
03/28/2023 Virtualization-Module 2
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.
03/28/2023 Virtualization-Module 2
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
03/28/2023 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.
03/28/2023 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
03/28/2023 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.
03/28/2023 Virtualization-Module 2
Hardware-level virtualization
03/28/2023 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
03/28/2023 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.
●
Also known as native virtual machine.
03/28/2023 Virtualization-Module 2
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.
03/28/2023 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
03/28/2023 executed. Virtualization-Module 2
Virtual Machine Manager (VMM)
03/28/2023 Virtualization-Module 2
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.
03/28/2023 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.
03/28/2023 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.
03/28/2023 Virtualization-Module 2
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.
03/28/2023 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.
03/28/2023 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.
03/28/2023 Virtualization-Module 2
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.
03/28/2023 Virtualization-Module 2
●
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
03/28/2023 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.
03/28/2023 Virtualization-Module 2
03/28/2023 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
03/28/2023 Virtualization-Module 2
- 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.
03/28/2023 Virtualization-Module 2
03/28/2023 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.
03/28/2023 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.
03/28/2023 Virtualization-Module 2
03/28/2023 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.
03/28/2023 Virtualization-Module 2
03/28/2023 Virtualization-Module 2
Comparison between the Full Virtualization and paravirtualization in
Operating System
S.no Full Virtualization ParaVirtualization
It supports all guest operating systems The guest operating system has to be modified and
7.
without modification. only a few operating systems support it.
The guest operating system will issue Using the drivers, the guest operating system will
8.
hardware calls. directly communicate with the hypervisor.
03/28/2023 Virtualization-Module 2
4. Operating system-level virtualization
●
It offers the opportunity to create different and
separated execution environments for
applications that are managed concurrently.
●
No VMM or hypervisor
●
Virtualization is in single OS
●
OS kernel allows for multiple isolated user
space instances
●
Good for server consolidation.
●
Ex. chroot , Jails, OpenVZ etc.
03/28/2023 Virtualization-Module 2
5. Programming language-level virtualization
●
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
03/28/2023 Virtualization-Module 2
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
03/28/2023 Virtualization-Module 2
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
– Libraries
– Operating System component emulation
03/28/2023 Virtualization-Module 2
3.3.2 Types of Virtualization
03/28/2023 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.
03/28/2023 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 other.
03/28/2023 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.
03/28/2023 Virtualization-Module 2
4. Storage Virtualization
• Storage virtualization is an array of servers that are
managed by a virtual storage system. The servers aren’t
aware of exactly where their data is stored, and instead
function more like worker bees in a hive.
• It makes managing storage from multiple sources to be
managed and utilized as a single repository.
• storage virtualization software maintains smooth
operations, consistent performance and a continuous suite
of advanced functions despite changes, break down and
differences in the underlying equipment.
03/28/2023 Virtualization-Module 2
5. Server Virtualization
- The central-server(physical server) is divided into multiple
different virtual servers by changing the identity number,
processors. So, each system can operate its own operating
systems in isolate manner. Where each sub-server knows the
identity of the central server.
- It causes an increase in the performance and reduces the
operating cost by the deployment of main server resources into
a sub-server resource.
- It’s beneficial in virtual migration, reduce energy consumption,
reduce infrastructural cost, etc.
03/28/2023 Virtualization-Module 2
6. Data Virtualization
- This can be defined as the type of Virtualization wherein data
are sourced and collected from several sources and managed
from a single location.
- No technical knowledge from where such data is sourced and
collected, stored, or formatted for such data.
- The data is arranged logically, and the interested parties and
stakeholders then access the virtual view of such data. These
are reports are also accessed by end-users on a remote basis.
03/28/2023 Virtualization-Module 2
3.4 Virtualization and cloud computing
• Virtualization plays an important role in cloud
computing
• Virtualization technologies are primarily used
to offer configurable computing environments
and storage.
• Hardware virtualization is an enabling factor
for solutions in the (IaaS) market segment
• programming language virtualization is a
technology leveraged in (PaaS) offerings.
03/28/2023 Virtualization-Module 2
Server consolidation and virtual machine migration
03/28/2023 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
03/28/2023 Virtualization-Module 2
Pros and cons of virtualization
• Disadvantages of Virtualization
Software licensing considerations
Possible learning curve
Security holes and new threats
03/28/2023 Virtualization-Module 2
3.4 Implementation levels of virtualization
Levels of Virtualization
03/28/2023 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.
03/28/2023 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.
03/28/2023 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.
03/28/2023 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
03/28/2023
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.
03/28/2023 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
03/28/2023 Virtualization-Module 2
the application level of the virtual machine run seamlessly.
Technology examples
• Xen: paravirtualization
• VMware: full virtualization
• Microsoft Hyper-V
03/28/2023 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)
• https://www.xenproject.org/
03/28/2023 Virtualization-Module 2
Xen architecture and guest OS management.
03/28/2023 Virtualization-Module 2
VMWare: Full Virtualization
• Underlying hardware is replicated made
available
and to the guest operating system
• VMware implements full in the
virtualization Desktop environments
• Type II hypervisor in Server Environment
• Type I in Desktop and Server
hypervisor
Environments
• Direct Execution
• Binary Translation
03/28/2023 Virtualization-Module 2
A full virtualization reference model.
03/28/2023 Virtualization-Module 2
Virtualization solutions by VMware
• End-user (desktop) virtualization
03/28/2023 Virtualization-Module 2
VMware workstation architecture.
03/28/2023 Virtualization-Module 2
Virtualization solutions by VMware
• Server virtualization
• VMWare GSX
• VMWare ESXi
03/28/2023 Virtualization-Module 2
VMware GSX server architecture.
03/28/2023 Virtualization-Module 2
VMware ESXi server architecture.
03/28/2023 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,
03/28/2023 Virtualization-Module 2
VMware Cloud Solution stack.
03/28/2023 Virtualization-Module 2
Microsoft Hyper-V: Server Virtualization
03/28/2023 Virtualization-Module 2
Microsoft Hyper-V architecture.
03/28/2023 Virtualization-Module 2