Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 38

Virtualization

Virtualization is one of the hardware


reducing, cost saving and energy saving
technology that is rapidly transforming the
IT landscape and fundamentally changing
the way that peoplecompute.

With Virtualization it is possible to run


multiple operating systems and multiple
applicationson the same SERVER at the
same time, increasing the utilization and
flexibility ofhardware.

Introduction

What is virtualization?

Virtualization is a broad term (virtual memory, storage, network,


etc)
Focus for this course: platform virtualization
Virtualization basically allows one computer to do the job of
multiple computers, by sharing the resources
of a Virtual
single
Virtual
Container
hardware across multiple environmentsContainer
App. A

App. B

App. C

App. D

App. A App. B

App. C App. D

Operating System

Virtualization Layer

Hardware

Hardware

Nonvirtualized system
A single OS controls all
hardware platform
resources

Virtualized system
It makes it possible to run
multiple Virtual Containers on
a single physical platform

Virtualization as an Abstraction of an Environment.

Virtualization enables dynamically provisionable


infrastructure (servers, storage, networking band
width, etc.) while also making it much simpler to
manage. Without Virtualization, resources would
be more difficult to provision and share, making
them less cost effective.

Evolution of Virtualization

Computing Infrastructure 2000


1 machine 1 OS several applications
Applications can affect each other
Big disadvantage: machine utilization is
very low, most of the times it is below
than 25%
App App

App App

X86
Windows
XP

X86
Windows
2003

12% Hardware
Utilization

App App

X86
Suse

18% Hardware
Utilization

App App

X86
Red Hat

10% Hardware
Utilization

15% Hardware Utilization

Evolution of Virtualization

Computing Infrastructure Virtualization


It matches the benefits of high hardware utilization with
running several operating systems (applications) in
separated virtualized environments
Each application runs in its own operating system
Each operating system does not know it is sharing the
underlying hardware with others
App. A

App. B

X86
Windows
XP

X86
Windows
2003

App. C
X86
Suse
Linux

App. D
X86
Red Hat
Linux

X86 Multi-Core, Multi Processor

70% Hardware Utilization

Virtualization types:
Platform virtualization
1. Full virtualization
2. Para virtualization
. Emulation

Platform Virtualization

Platform virtualization (and its subcategories) is what


enables both server and desktop virtualization.
Platform in this context refers to the hardware
platform and its various components. This includes
not only the CPU, but also networking and storage
and even bus attachments such as USB and serial
ports.

The key technology that makes this possible is called


the hypervisor The hypervisor is the component that
virtualizes the platform, making the underlying
physical resources shareable and implementing the
policies for sharing among the multiple users.

Platform virtualization

The users here are called virtual machines, which is an


aggregation of the operating system and application
set.

Note that the hypervisor can be implemented in one of


two major styles. The baremetal hypervisor (type1) sits
directly on the host server and serves as the platform.
The hosted hypervisor (type2) is an application that
runs in the context of a host operating system.

Both are useful styles, but type1hypervisors are


commonly used for server virtualization, where type2 is
used for desktop or laptop based
virtualization.

Operating System Level Virtualization

Virtualization layer sit


between the operating
system and the application
programs that run on the
operating system

Application
Virtual Machine
VMM

Virtual Machine runs


applications, or sets of
applications written for the
operating system but in a
controlled environment
and use host OS API

Applications

OS
Real Machine

VM is really nothing more than a file in some


format. The VM as a file in a host system
(hypervisor) has some interesting benefits as well
as some unique issues.

As a file, it's easy to manage a VM as a template


It's also simple to move a VM from one host
system (hypervisor) to another, as the process is
nothing more than a file copy.

Disadvantages of keeping VMs as files


The fundamental downside of VMs is due to their simplicity. It's
simple to end up with a large number of
VMs and not know exactly what each contain or why they were created
(cloned, snapshotted, etc.).

With VM sprawl comes other issues such as VM contents that become


out of date

When a VM isn't running (inactive), it exists as a file in storage and


can't actively be managed for patches or software updates. This
generally creates a management issue and an additional area of
research.

One potential solution is to catalog the components of the VM within


the wrapper metadata to make it simpler to manage all VMs (whether
active or inactive).

Full Virtualization

Full virtualization provides a sufficient


emulation of the underlying platform that a
guest operating system and application set can
run unmodified and unaware that their
platform is being virtualized.

Providing a full emulation of the platform


means that all platform devices are emulated
with enough detail to permit the guest OS to
manipulate them at their native level (such as
register level interfaces).

Full Virtualization

The device emulation must also emulate


that device's idiosyncrasies, making this
style very costly from a performance
perspective.

As you can imagine, that cost can be quite


high, given that the OS manipulates the
device as it does typically, and the
hypervisor implements emulation at that
level while bridging to a physical device on
the server (which may be a different
device).

Para Virtualization

The
fundamental
issue
with
full
virtualization is the emulation of devices
within the hypervisor.

A solution to this problem is to make the


guest operating system aware that it's
being virtualized. With this knowledge, the
guest OS can short circuit its drivers to
minimize the overhead of communicating
with physical devices.

The guest OS drivers and hypervisor drivers


integrate with one another to efficiently
enable and share physical device access.

Low level emulation of devices is removed,


replaced with cooperating guest and
hypervisor drivers.

Disadvantage of paravirtualization : The


guest must be modified to integrate
hypervisor awareness, but this includes a
tremendous upside in overall performance.

Para virtualization

Eg: Xen hypervisor

Paravirtualization implies an
between the guest OS drivers
hypervisor. This is an obvious
standardization, but unfortunately
not exist.

interface
and the
area for
one does

Emulation

Emulation is the process by which a host emulates, or


imitates, another platform.

Traditionally, emulators were viewed as inefficient


because they mimicked the execution of instructions for a
guest through a number of instructions in the host.

In addition to emulating the platform, the individual


components within the platform require emulation as
well. This includes the CPU (emulating the instructions
and internal behaviors, such as registers and caches), a
simplified version of the memory subsystem and as
device emulation above, and any idiosyncrasies of the
system.

Emulation

This is an extremely useful style


virtualization,
particularly
from
development perspective.

of
a

As developers, we can emulate a new target


environment for the purposes of target
based
development without having that particular
physical hardware environment at our
disposal.

Desktop Virtualization
Desktop virtualization, similar to application
virtualization
In this model of virtualization, a physical
machine is virtualized through a
client/server model
In other words, a physical machine existing
in one location is virtualized to another
(possible remote machine) over a network.

You might also like