Virtualization New1
Virtualization New1
and Cloud
Computing
Definition
Virtualization is the ability to run multiple operating systems on a
single physical system and share the underlying hardware
resources.
It is the process by which one computer hosts the appearance of
many computers.
Virtualization is used to improve IT throughput and costs by using
physical resources as a pool from which virtual resources can be
allocated.
Virtualization
Virtualization is a computer architecture technology by which multiple
virtual machines (VMs) are multiplexed in the same hardware
machine.
The purpose of a VM is to enhance resource sharing by many users
and improve computer performance in terms of resource utilization
and application flexibility.
Hardware resources (CPU, memory, I/O devices, etc.) or software
resources (operating system and software libraries) can be virtualized
in various functional layers.
The idea is to separate the hardware from the software to yield better
system efficiency. For example, computer users gained access to
much enlarged memory space when the concept of virtual memory
was introduced.
Similarly, virtualization techniques can be applied to enhance the use
of compute engines, networks, and storage.
Virtualization Architecture
• A Virtual machine (VM) is an isolated
runtime environment (guest OS and
applications)
• Multiple virtual systems (VMs) can run on
a single physical system
Hypervisor
A hypervisor, a virtual machine manager/monitor (VMM), or
virtualization manager, is a program that allows multiple operating
systems to share a single hardware host.
Each guest operating system appears to have the host's
processor, memory, and other resources all to itself. However, the
hypervisor is actually controlling the host processor and resources,
allocating what is needed to each operating system in turn and
making sure that the guest operating systems (called virtual
machines) cannot disrupt each other.
Benefits of Virtualization
Sharing of resources helps cost reduction
Isolation: Virtual machines are isolated from each other as if they
are physically separated
Encapsulation: Virtual machines encapsulate a complete
computing environment
Hardware Independence: Virtual machines run independently of
underlying hardware
Portability: Virtual machines can be migrated between different
hosts.
Virtualization in Cloud Computing
Cloud computing takes virtualization one step further:
You don’t need to own the hardware
Resources are rented as needed from a cloud
Various providers allow creating virtual servers:
Choose the OS and software each instance will have
The chosen OS will run on a large server farm
Can instantiate more virtual servers or shut down existing ones within
minutes
You get billed only for what you used
Implementation Levels of
Virtualization
A traditional computer runs with a host operating system specially
tailored for its hardware architecture, as shown in Figure. After
virtualization, different user applications are managed by their own
operating systems (guest OS) can run on the same hardware,
independent of the host OS. This is often done by adding additional
software, called a virtualization layer.
This virtualization layer is known as hypervisor or
virtual machine monitor (VMM). The VMs are
shown in the upper boxes, where applications run
with their own guest OS over the virtualized CPU,
memory, and I/O resources.
The main function of the software layer for
virtualization is to virtualize the physical hardware
of a host machine into virtual resources to be
used by the VMs, exclusively.
Virtualization levels
Instruction Set Architecture
Level
At the ISA level, virtualization is performed by emulating a given ISA by the
ISA of the host machine.
For example, MIPS binary code can run on an x86-based host machine with
the help of ISA emulation.
With this approach, it is possible to run a large amount of legacy binary code
written for various processors on any given new hardware host machine.
Instruction set emulation leads to virtual ISAs created on any hardware
machine.
The basic emulation method is through code interpretation. An interpreter
program interprets the source instructions to target instructions one by one.
One source instruction may require tens or hundreds of native target
instructions to perform its function. Obviously, this process is relatively slow.
For better performance, dynamic binary translation is desired. This approach
translates basic blocks of dynamic source instructions to target instructions.
The basic blocks can also be extended to program traces or super blocks to
increase translation efficiency.
Instruction set emulation requires binary translation and optimization. A
virtual instruction set architecture (V-ISA) thus requires adding a processor-
specific software translation layer to the compiler.
Hardware Abstraction
Level virtualization is performed right on top of the
Hardware-level
bare hardware.
On the one hand, this approach generates a virtual hardware
environment for a VM.
On the other hand, the process manages the underlying
hardware through virtualization.
The idea is to virtualize a computer’s resources, such as its
processors, memory, and I/O devices.
The intention is to upgrade the hardware utilization rate by
multiple users concurrently.
The idea was implemented in the IBM VM/370 in the 1960s.
More recently, the Xen hypervisor has been applied to virtualize
x86-based machines to run Linux or other guest OS
applications.
Operating System Level
This refers to an abstraction layer between traditional OS and
user applications.
OS-level virtualization creates isolated containers on a single
physical server and the OS instances to utilize the hardware and
software in data centers.
The containers behave like real servers. OS-level virtualization
is commonly used in creating virtual hosting environments to
allocate hardware resources among a large number of mutually
distrusting users.
It is also used, to a lesser extent, in consolidating server
hardware by moving services on separate hosts into containers
or VMs on one server.
Library Support Level
Most applications use APIs exported by user-level libraries
rather than using lengthy system calls by the OS.
most systems provide well-documented APIs, such an
interface becomes another candidate for virtualization.
Virtualization with library interfaces is possible by controlling
the communication link between applications and the rest of
a system through API hooks.
The software tool WINE has implemented this approach to
support Windows applications on top of UNIX hosts.
Another example is the vCUDA which allows applications
executing within VMs to leverage GPU hardware acceleration.
User-Application Level
Virtualization at the application level virtualizes an
application as a VM. On a traditional OS, an application
often runs as a process.
Therefore, application-level virtualization is also known as
Virtual Machines and Virtualization of Clusters and Data
Centers process-level virtualization.
The most popular approach is to deploy high level
language (HLL) VMs.
In this scenario, the virtualization layer sits as an
application program on top of the operating system, and
the layer exports an abstraction of a VM that can run
programs written and compiled to a particular abstract
machine definition. Any program written in the HLL and
compiled for this VM will be able to run on it.
The Microsoft .NET CLR and Java Virtual Machine (JVM) are
two good examples of this class of VM.
User-Application Level
Other forms of application-level virtualization are known as
application isolation, application sandboxing, or application
streaming.
The process involves wrapping the application in a layer that is
isolated from the host OS and other applications.
The result is an application that is much easier to distribute and
remove from user workstations.
An example is the LANDesk application virtualization platform
which deploys software applications as self-contained,
executable files in an isolated environment without requiring
installation, system modifications, or elevated security
privileges
Types of Virtualization
Full Virtualization
Para Virtualization
Hardware Virtualization
Virtualization of CPU, Memory and I/O devices.
OS Virtualization
OS Virtualization
OS Virtualization
OS Virtualization
OS Virtualization
Type 1 Hypervisor
A hypervisor that can be natively installed and run directly on a physical
host is called a Type 1 hypervisor.