Unit II Notes - Virtualization

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 49

Virtualization Technology

Prof. Rajender Nath


Department of Computer Science & Applications
Kurukshetra University, Kurukshetra
Haryana, India – 136119
Email: rnath2k3@gmail.com
What is Virtualization?
 Virtualization allows an abstract, logical view on physical
resources and includes servers, data stores, networks,
software etc.
The basic idea is to pool physical resources and manage
them as whole. Individual requests ca n be served as
required from these resources
What is Virtualization?
 Virtualization is a framework or methodology of dividing
the resources of a Physical system into multiple virtual
resources.
 One physical machine runs one OS at any given time. By
virtualizing the machine, we are able to run several
operating systems (and all of their applications) at the same
time.
 It is the key enabling technology of cloud computing and
allows pooling of resources.
Traditional Architecture Vs Virtualization

Traditional Computer Architecture Virtualized Computer Architecture


Benefits of Virtualization

•Reduced time for server


• Resource pooling provisioning
• Server consolidation •Rapidly deploy new servers
• Easy to deploy
•Reduced H/W cost • Reduced admin & labor
•Reduced power & cooling cost
• Increased availability •Better management
• Optimizes physical
•Less space required resources by doing more
with less
Drawbacks of Virtualization

• Slightly harder to conceptualize


• Not supported by all applications
Types of Virtualization
Virtual memory
Desktop virtualization
Platform virtualization
◦Full virtualization
◦Paravirtualization
◦Hardware-assisted virtualization
◦Partial virtualization
◦OS-level virtualization
Types of Virtualization…
◦Hosted environment (e.g. User-mode Linux)
Storage virtualization
Network virtualization
Application virtualization (Portable application)
◦Cross-platform virtualization
◦Emulation or simulation
◦Hosted Virtual Desktop
Platform Virtualization (PV)
PV allows to run any desired os & appls in virtual
environments
There are two different models:
1. Full Virtualization
2. Para virtualization
Both solutions are implemented on the basis of
hypervisor or virtual machine monitor
Hypervisor/Virtual Machine Monitor (VMM)

Hypervisor is a software program that manages


multiple operating systems (or multiple instances of the
same operating system) on a single computer system.
The hypervisor manages the system's processor,
memory, and other resources to allocate what each
operating system requires.
Hypervisors are designed for a particular processor
architecture and may also be called VMM.
Three requirements for Hypervisor/VMM

VMM should provide an environment for programs which is


essentially identical to the original machine

The programs that run in this environment should slow


at worst, only minor decreases in speed

VMM should be in complete control of the system


resources
Virtualization Architecture

Hypervisor/
Types of Hypervisor/VMM

Type-1 Hypervisor:
is built directly on
the top of h/w.
Types of Hypervisor/VMM

Type-2 Hypervisor:
runs under a
traditional basic os.
Full Virtualization
A certain kind of virtual machine environment: one that provides a
complete simulation of the underlying hardware.
The result is a system in which all software (including all OS’s)
capable of execution on the raw hardware can be run in the virtual
machine.
Comprehensively simulate all computing elements as instruction set,
main memory, interrupts, exceptions, and device access.
Full virtualization is only possible given the right combination of
hardware and software elements.
Full Virtualization…
Full virtualization has proven highly successful
◦Sharing a computer system among multiple
users
◦Isolating users from each other (and from the
control program) and
◦Emulating new hardware to achieve
improved reliability, security and productivity.
Full Virtualization…

It needs a single machine that could be multiplexed


among many users.
Each such virtual machine had the complete
capabilities of the underlying machine, and (for its
user) the virtual machine was indistinguishable from
a private system.
Full Virtualization (Examples)
◦First demonstrated with IBM's CP-40 research
system in 1967
◦Re-implemented CP/CMS in IBM's VM family from
1972 to the present.
◦Each CP/CMS user was provided a simulated, stand-
alone computer.
Full Virtualization -- challenge
Security issues -- Interception
Simulation of privileged operations -- I/O instructions
The effects of every operation performed within a given
virtual machine must be kept within that virtual machine –
virtual operations cannot be allowed to alter the state of
any other virtual machine, the control program, or the
hardware.
Full Virtualization -- challenge
Some machine instructions can be executed directly by the
hardware,
E.g., memory locations and arithmetic registers.
But other instructions that would "pierce the virtual machine"
cannot be allowed to execute directly; they must instead be trapped
and simulated. Such instructions either access or affect state
information that is outside the virtual machine.
Some hardware is not easy to be used for full virtualization, e.g., x86
OS assisted (Paravirtualization)
Paravirtualization – via an modified OS kernel as guest OS
◦ It is very difficult to build the more sophisticated binary translation
support necessary for full virtualization.
◦ Paravirtualization involves modifying the OS kernel to replace non-
virtualizable 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.
OS assisted (Paravirtualization)…
◦Paravirtualization is different from full virtualization,
where the unmodified OS does not know it is virtualized
and sensitive OS calls are trapped using binary translation.
◦Paravirtualization cannot support unmodified OS
Example:
◦Xen -- modified Linux kernel and a version of Windows XP
Operating System Virtualization
Also called Jail or Container
OS-level virtualization
◦ kernel of an OS allows for multiple isolated user-space
OS-Level Virtualization
instances, instead of just one.
◦ Each OS instance looks and feels like a real server OS OS OS
Container 1 Container 2 Container 3
OS virtualization virtualizes servers on the operating
system (kernel) layer. This creates isolated containers on
OS virtualization
a single physical server and OS instance to utilize layer
hardware, software, data center and management
efforts with maximum efficiency. Standard
Host OS
OS-level virtualization implementations that are capable
of live migration can be used for dynamic load balancing Hardware
of containers between nodes in a cluster.
Operating System Virtualization…
Examples: IBM LPARs (Logical PARtitions), Container
technology for Sun Solaris, OpenVZ for Linux, Linux-VServer,
FreeBSD Jails, and Virtuozzo
OS virtualization help cloud environment to solve security
and confidentiality problems
Application Virtualization
also called process Virtualization
 Method of deploying and maintaining applications
from a central location without requiring a local
installation of the application on the client
computer
The virtual execution environment provides a
standard API for cross platform execution and
manages the consumption of application’s local
resources
Application Virtualization…
Application Virtualization…
also called process Virtualization
Virtual environment (VE) provides all app files and
components required by the program for its
execution. VE acts as a buffer b/w app and os
preventing conflicts with other apps or os
components. In cloud environments, app
virtualization is an important foundation for SaaS
dynamic provisioning
Application Virtualization…
also called process Virtualization
There are two methods

Hosted Application: the app is available on


Internet and is transmitted to the client using a
streaming protocol
Virtual appliance: the app can be downloaded
and used on the coutomer’s own computer
Application Virtualization…
(Advantages)
Easier administration
Automatic management of updates & patches
Compatibility (all users work with same s/w portfolio
Global availability
RAM Virtualization

 Pooling of physical storage from multiple


network storage devices into what appears to
be a single storage device that is managed
from a central console.
 The VMM is responsible for mapping guest
physical memory to the actual machine
memory, and it uses shadow page tables to
accelerate the mappings.
 Traditional way is to have the VMM maintain a
shadow of the VM’s page table
 The shadow page table controls which pages
of machine memory are assigned to a given
VM
 When OS updates it’s page table, VMM
updates the shadow
Storage Virtualization (SV)
SV separates the data store from the classical file server
and to pool physical storage system
Appls use these pools to dynamically meet their storage
requirements
For data transfer SAN/LAN are used
Data for cloud offerings is mostly available in the form of
web objects that can be retrieved/manipulated from
Internet
Storage Virtualization (SV)…
An abstract admin layer is interposed b/w the clients and
storage landscape to decouple representation of data
from its physical storage
Data storage can be organized into hierarchy (tier), data
among tiers managed automatically
Say tier-0 : highest availability, costly, high quality
tier-n: slower, cheaper, lesser quality
Data can be moved among tiers without affecting service
Storage Virtualization (SV)…
Advantages
Used for storage as a service
Central management allows to operate the
distributed storage system at a lower cost
Automated lifecycle management for data sets (tiers)
By using snapshots, even large data quantities can be
backed up without a special backup window
Network Virtualization

 Network virtualization is a
method of combining the
available resources in a network
by splitting up the available
bandwidth into channels, each of
which is independent from the
others, and each of which can be
assigned (or reassigned) to a
particular server or device in real
time.
Network Virtualization

 Network virtualization is
intended to optimize network
speed, reliability, flexibility,
scalability, and security.
 Each virtual network:

◦ is a collection of virtual nodes


and virtual links
◦ is a subset of underlying
physical network resources
Hypervisors Technologies

Hypervisor - VMWare
Host CPU - x86,x86-64,
Host OS – Windows, Linux,
Guest OS – Windows, Linux, Solaris, FreeBSD,
NetWare, OS/2, SCO, BeOS, Darwin
Arch: Full Virtualization
Popular hypervisors…

Hypervisor - VMWare ESX


Host CPU - x86,x86-64,
Host OS – no host OS
Guest OS – Windows, Linux, Solaris, FreeBSD,
NetWare, OS/2, SCO, BeOS, Darwin
Arch: Para Virtualization
Popular hypervisors…

Hypervisor - Xen
Host CPU - x86,x86-64, /A-64
Host OS – NetBSD, Linux, Solaris
Guest OS – Windows XP and 2003 Server, Linux,
Solaris, FreeBSD, NetBSD
Arch: Para Virtualization
Popular hypervisors…

Hypervisor - KVM
Host CPU - x86,x86-64, /A-64, S390, PowerPC
Host OS – NetBSD, Linux, Solaris
Guest OS – Windows XP and 2003 Server, Linux,
Solaris, FreeBSD, NetBSD
Arch: Para Virtualization
XEN Hypervisor
Starts as part of the Kernel OS
• Each virtualized OS has its own
domain (called DomU)
• All succeeding Virtual Machines
have to communicate with the
hardware through Dom0
• Dom0 goes through the Hypervisor
to the hardware.
• Dom0 is only thing that has
hardware access.
KVM Hypervisor

• Hypervisor uses AMD-V and Intel


VT-x technology to change its
architecture.
• KVM lives in the kernel as part
of the standard Linux kernel as
of 2.6.20 (if packages are
enabled)
• Uses QEMU to do all the
hardware emulation
VMWare Hypervisor
• VMware is a commercial solution for full virtualization. A hypervisor
sits between the guest operating systems and the bare hardware as
an abstraction layer. This abstraction layer allows any operating
system to run on the hardware without knowledge of any other
guest operating system
• VMware also virtualizes the available I/O hardware and places
drivers for high-performance devices into the hypervisor.
• The entire virtualized environment is kept as a file, meaning that a
full system (including guest operating system, VM, and virtual
hardware) can be easily and quickly migrated to a new host for load
balancing.
z/VM Hypervisor
• While the IBM System z™ is a new brand name, it actually has a long heritage
originating back in the 1960s. The System/360 supported virtualization using
virtual machines in 1965. Interestingly, the System z retains backward
compatibility with the older System/360 line.
• The z/VM® is the operating system hypervisor for the System z. At its core is the
Control Program (CP), which provides the virtualization of physical resources to
the guest operating systems, including Linux (see the figure on the next slide).
This permits multiple processors and other resources to be virtualized for a
number of guest operating systems.
• The z/VM can also emulate a guest local area network (LAN) virtually for those
guest operating systems that want to communicate with each other. This is
emulated entirely in the hypervisor, making it highly secure.
Issues in Virtualization for CC
Virtualization implemented on
◦ a single machine (with multi-core CPUs)
◦ a cluster of machines (with multi-core CPUs)
The state-of-the-art
◦ Running a Xen or a cluster of Xens

Applications
Application Application Application
Applications
Application Application Application
Application
Application Application Application

?
Application Application
Operating
Virtualization
Operating Operating Operating
Operating
OperatingSystem Operating
Operating Operating
Operating System Operating System Operating System
System
Operating System Operating System System
System System System
System
System System

Hypervisor or Hypervisor
or
Hardware Hardware Hardware Hardware
Issues related to clouds with Xen
Xen-tools and xm are great for a single machine, but …
Today’s private or public clouds often include hundreds or
thousands of machines.
How to manage the cloud effectively and efficiently
becomes a central issue in cloud computing.
Cloud Computing (References)
CC A Hands on Approach – Arshdeep Bahga, Vijay Madisetti, Universities Press, 2014
VMWare ®
IBM ®
Miscrosoft®
Intel ®
AMD ®
http://www.xen.org/
http://en.wikipedia.org/
http://www.parallels.com/
http://www.webopedia.com/
Any Query ?
Thank You

You might also like