Virtualization
Virtualization is a technology that transforms hardware into
software.
Virtualization allows to run multiple operating system on a
single machine.
Each copy of an operating system is installed in to a virtual
machine.
Virtualization technology is one of the fundamental components
of cloud computing.
Virtualization allows the creation of a secure, customizable, and
isolated execution environment for running applications.
which plays a fundamental role in efficiently delivering
Infrastructure-as-a-Service (IaaS) solutions for cloud computing.
Virtualization provides a great opportunity to build elastically
scalable systems that can provision additional capability with
minimum costs.
To emulate an executing environment separate from the one that
hosts such programs.
Motivation : Need of Virtualization
What is the problems in conventional case ?
Companies IT investment for peak capacity
Lack of agility for IT infrastructure
IT maintain cost for every company
Usually suffered from hardware failure risk etc.
These IT complexities force company to find some
solutions.
How to solve these problem ?
Let’s consider some kind of out-sourcing solution
Somebody will handle on demand capacity for me
Somebody will handle high available resource for me
Somebody will handle hardware management for me
Somebody will handle system performance for me
Somebody will …
Frankly, that would be a great solution IF there
were “somebody”.
But who can be this “somebody”, and provide all these
services ?
Infrastructure as a Service will be the solution.
IaaS cloud provider takes care of all the IT
infrastructure complexities.
IaaS cloud provider provides all the infrastructure
functionalities.
IaaS cloud provider guarantees qualified
infrastructure services.
IaaS cloud provider charges clients according to their
resource usage.
But, what make all of these happen so magically ?
Virtualization
Assume that we are going to be an IaaS cloud provider.
Then, what are the problems we are facing ?
Clients will request different operating systems.
Clients will request different storage sizes.
Clients will request different network bandwidths.
Clients will change their requests anytime and ….. So
on…..
There any following strategies ?
Allocate a new physical machine for each incomer.
Prepare a pool of pre-installed machines for different
requests.
Virtualization reference model
Virtualization
Obviously, neither of previous strategies will work.
We need more powerful techniques to deal with that.
Types of Virtualization techniques will help.
For computation resources
Virtual Machine technique
For storage resources
Virtual Storage technique
For communication resources
Virtual Network technique
IaaS Architecture
Infrastructure as a Service (IaaS) delivers computer infrastructure for
cloud user, typically a platform virtualization environment as a service.
Virtualization is an enabling technique to provide an abstraction of
logical resources away from underlying physical resources.
Virtualization Overview
System abstraction :
Computer systems are built on levels of abstraction.
Higher level of abstraction hide details of lower levels.
Each abstraction level make use of the functions
supported from its lower level, and provide another
abstraction to its higher one.
Example: files are an abstraction of a disk
Machine level abstraction :
For OS developers, a machine is defined
by ISA (Instruction Set Architecture).
This is the major division between
hardware and software.
What is Instruction Set Architecture (ISA)?
An ISA is an abstract model of
a computer.
It is also referred to as architecture or
computer architecture.
Examples : X86, ARM, MIPS
OS level abstraction :
For compiler or library developers, a machine is defined by ABI
(Application Binary Interface).
This define the basic OS interface
which may be used by libraries or user.
Examples :
User ISA
OS system call
Virtual Machine
What is Virtual Machine (VM)?
VM is a software implementation of a machine (i.e. a computer) that
executes programs like a real machine.
Virtual machine allows to run multiple operating system as virtual
machines
Each copy of an operating system is installed in to a virtual machine.
Virtualization Definition
A technique of splitting/adding a physical resources/many
resources into desired number of logical resources. e.g.,
CPU, Memory, storage space
Or
A technique that transforms hardware onto software.
Examples:
Virtual Classroom
Virtualization of IT industry
Video calling
Virtualization of Mobile storage space
Virtualization of a system
Virtualization of storage space in a research center
A Case study to show benefits of virtualization
The expenses of clothing company- Before Virtualization
2500 sqft data center
150 physical server (50 for infra and 100 for App)
(4 GB RAM, 2CPU, 128GB HDD)
Cooling system Capex + Opex =
150 physical disk 1.5 crore per
year
Cabling + Power whips
Staff Members
Electricity and Power Backup
Maintenance
Link to study some other case studies
[Link]
After introducing virtualization
AD DNS DHCP ……… Billing
Windows Windows Windows Windows
………
VM1 VM2 VM3 VMn
Hypervisor
Physical machine (Server)
(64GB RAM, 32core CPU, 4 TB HDD)
Traditional Architecture Vs. Virtual Architecture
Virtual Machine Monitor
What’s Virtual Machine Monitor (VMM) ?
VMM or Hypervisor is the software layer providing the virtualization.
System architecture :
VM1 VM2 VM3
Hypervisor concepts
Hypervisor is a software or firmware that creates and runs
virtual machines.
A hypervisor is also called as Virtual Machine Monitor.
Host Machine - A machine on which a hypervisor is running
one or more virtual machines.
Guest Machine - Each virtual machine is guest machine
Hypervisor concepts: Introduced by IBM