Virtualization and Cloud
Virtualization and Cloud
d Computing
Prof. Chih-Hung Wu
Dept. of Electrical Engineering
National University of Kaohsiung
Email: [email protected]
URL: http://www.johnw.idv.tw
ICAL
Outline
ICAL
In the computer-age
ICAL
A Lot of Servers/Machines...
Web server
Mail server
Database server
File server
Proxy server
Application server
and many others
ICAL
A Lot of Servers/Machines...
Power consumption
Greater wattage per unit area than ever
Electricity overloaded
Cooling at capacity
Environmental problem
Green IT
ICAL
Virtualization
Virtualization -- the abstraction of computer resources.
Virtualization hides the physical characteristics of computing r
esources from their users, be they applications, or end users.
This includes making a single physical resource (such as a ser
ver, an operating system, an application, or storage device) ap
pear to function as multiple virtual resources; it can also includ
e making multiple physical resources (such as storage devices
or servers) appear as a single virtual resource.
ICAL
Applications
Operating
System
Hardware
ICAL
Virtualization
Applications
Operating
System
Hypervisor
Hardware
ICAL
Applications
Operating
System
Application
Application
Applications
Application
Application
Operating
Operating
Operating
Operating
System
Operating
System
System
System
System
Hypervisor
Hardware
Hardware
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 virtualization
managers.
ICAL
Capacity Utilization
Virtualized system (high)
High utilized*
Low utilized
ICAL
Why now?
19601999
IBM, CP-40, CP/CMS, S/360-370, VM370, Virtua
l PC, VMware
20002005
IBM z/VM, Xen
2006
Intel VT-x
AMDs AMD-V
2008
ICAL
Hardware evolution
ICAL
Software maturity
ICAL
Types of Virtualization
Virtual memory
Desktop virtualization
Platform virtualization
Full virtualization
Paravirtualization
Hardware-assisted virtualization
Partial virtualization
OS-level virtualization
Hosted environment (e.g. User-mode Li
nux)
Storage virtualization
Network virtualization
Application virtualizationPortable applica
Full virtualization
Binary transaltion
Hardware-assisted virtualization
Paravirtualization
OS-level virtualization
Hosted environment (e.g. User-mode Li
nux)
tion
Cross-platform virtualization
Emulation or simulation
Hosted Virtual Desktop
Category in Wiki
Hardware level
Operating system level
Application level
ICAL
Full Virtualization
A certain kind of virtual machine environment: one that provides a complet
e simulation of the underlying hardware.
The result is a system in which all software (including all OSs) 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 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 producti
vity.
ICAL
Full Virtualization
It needs a single machine that could be multiplexed among many use
rs. Each such virtual machine had the complete capabilities of the un
derlying machine, and (for its user) the virtual machine was indistin
guishable from a private system.
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.
ICAL
Full Virtualization
ICAL
But other instructions that would "pierce the virtual machine" cannot be all
owed to execute directly; they must instead be trapped and simulated. Such
instructions either access or affect state information that is outside the virtu
al machine.
Some hardware is not easy to be used for full virtualization, e.g., x86
ICAL
OS kernel
Level -0
Highest
privilege
OS services
(device driver, etc.)
Level-1
Level-2
Level-3
Lowest
privilege
Applications
ICAL
Ring 3
Application
Ring 2
Ring 1
Ring 0
OS
Hardware
Direct
Execution
of user and OS
Requests
ICAL
ICAL
Binary translation
ICAL
Binary translation
Ring 3
Application
Ring 2
Ring 1
Guest OS
Ring 0
VMM
Direct
Execution
of user and OS
Requests
Binary translation
of OS Requests
Hardware
ICAL
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-virtuali
zable instructions with hypercalls that communicate directly with the virtua
lization layer hypervisor.
The hypervisor also provides hypercall interfaces for other critical kernel o
perations such as memory management, interrupt handling and time keepin
g.
Paravirtualization is different from full virtualization, where the unmodifie
d OS does not know it is virtualized and sensitive OS calls are trapped usin
g binary translation.
Paravirtualization cannot support unmodified OS
Example:
Xen -- modified Linux kernel and a version of Windows XP
ICAL
OS assisted (Paravirtualization)
Ring 3
Application
Ring 2
Ring 1
Ring 0
Direct
Execution
of user and OS
Requests
Paravirtualized
Guest OS
Virtualization layer
Hardware
Hypercalls to the
Virtualization Layer
replace
non-virtualiable
OS instructions
ICAL
Privileged and sensitive calls are set to automatically trap to the hyp
ervisor, removing the need for either binary translation or paravirtua
lization.
The guest state is stored in Virtual Machine Control Structures (VTx) or Virtual Machine Control Blocks (AMD-V).
High hypervisor to guest transition overhead and a rigid programmi
ng model
ICAL
Ring 3
Non-root
Mode
Privilege
Levels
Ring 2
Ring 1
Ring 0
Root Mode
Privilege
Levels
Application
Direct
Execution
of user and OS
Requests
Guest OS
VMM
Hardware
OS requests traps
to VMM without
binary translation
or paravirtualization
ICAL
OS-Level Virtualization
OS-level virtualization
kernel of an OS allows for multiple is
olated user-space instances, instead of
just one.
Each OS instance looks and feels like
a real server
OS-Level Virtualization
OS
OS
OS
Container 1 Container 2 Container 3
OS virtualization
layer
Standard
Host OS
Hardware
ICAL
Confusion
OS-Level Virtualization. A type of server virtualization techn
ology which works at the OS layer. The physical server and si
ngle instance of the operating system is virtualized into multip
le isolated partitions, where each partition replicates a real ser
ver. The OS kernel will run a single operating system and prov
ide that operating system functionality to each of the partition
s.
Operating system virtualization refers to the use of software to
allow system hardware to run multiple instances of different o
perating systems concurrently, allowing you to run different ap
plications requiring different operating systems on one comput
er system. The operating systems do not interfere with each ot
her or the various applications.
ICAL
Application virtualization
Application runs on
Different OS, platform, etc.
Same OS, different version/framework
Encapsulation of OS/platform
Improve portability, manageability and compatibility of applicati
ons
ICAL
Memory Virtualization
To run multiple virtual machines on a single system, another level of memory virtu
alization is required.
The VMM is responsible for mapping guest physical memory to the actual machine
memory, and it uses shadow page tables to accelerate the mappings.
VM2
VM1
Process 1
Process 2
Process 1
Process 2
Virtual memory
Physical memory
Machine memory
ICAL
Source: VMware white paper, Understanding Full Virtualization, Paravirtualization, and Hardware Assist
ICAL
Hardware Assisted
Virtualization
OS Assisted Virtualization
/ Paravirtualization
Technique
Hypercalls
Guest
Modification
/
Compatibility
Unmodified Guest OS
Excellent compatibility
Unmodified Guest OS
Excellent compatibility
Guest OS codified to
issue Hypercalls so it
can't run on Native
Hardware or other
Hypervisors Poor
compatibility;
Not available on Windows
OSes
Performance
Good
Used By
VMware, Microsoft,
Parallels
VMware, Microsoft,
Parallels, Xen
VMware, Xen
Guest OS
yes
yes
XenLinux runs only on
Hypervisor
Xen Hypervisor
Independent
VMI-Linux is Hypervisor
and Hardware Assist
agnostic
? Source: VMware white paper, Understanding Full Virtualization, Paravirtualization,
ICAL
Virtualization
ICAL
Virtualization
ICAL
The state-of-the-art
Running a Xen or a cluster of Xens
Applications
Application
Application
Application
Application
Virtualization
Operating
Operating
System
Operating
Operating
System
Operating
System
System
System
Hypervisor
Hardware
or
Application
Applications
Application
Application
Application
Application
Application
Application
Application
Operating
Operating
OperatingOperating
Operating
Operating
System
System
Operating
Operating
System
Operating
System
System
System
System
System
System
or
Hypervisor
Hardware
Hardware
Hardware
ICAL
Applications
Application
Application
Application
Application
Applications
Application
Application
Application
Application
Operating
Operating
System
Operating
Operating
System
Operating
System
System
System
Operating
Operating
System
Operating
Operating
System
Operating
System
System
System
Hypervisor
Hypervisor
Hardware
Hardware
Applications
Application
Application
Application
Application
Applications
Application
Application
Application
Application
Operating
Operating
System
Operating
Operating
System
Operating
System
System
System
Operating
Operating
System
Operating
Operating
System
Operating
System
System
System
Hypervisor
Hypervisor
Hardware
Hardware
Management
System
Virtualization
ICAL
Applications
Application
Application
Application
Application
Operating
Operating
System
Operating
System
Operating
Operating System
System
System
Hypervisor
Hardware
ICAL
Popular hypervisors
Xen
KVM
QEMU
virtualBox
VMWare
Xen is the selected hypervisor of the project.
ICAL
ICAL
ICAL
ICAL
ICAL
Open platform
Rich web interface for managing the cloud in
frastructure
Deploy a new service by dragging and droppi
ng a virtual machine with the web interface
ICAL
Compatibility
Legacy software/database
Paravirtualization
Modifiable OS?
ICAL
Issues in Cloud-API
ICAL
ICAL
Reference
VMWare
IBM
Miscrosoft
Intel
AMD
http://www.xen.org/
http://en.wikipedia.org/
http://www.parallels.com/
http://www.webopedia.com/