cloud computing : virtualization
VIRTUAL MACHINES AND VIRTUALIZATION OF CLUSTERS AND DATA CENTERS
Implementation
Levels Of 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.
Ø 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.
Levels
of Virtualization Implementation:
A
traditional computer runs with a host operating system specially tailored for
its hardware architecture, as shown in Figure . After virtualization, different
user applications 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 virtualization
software creates the abstraction of VMs by interposing a virtualization layer
at various levels of a computer system.
Ø Common
virtualization layers include the
1.
instruction set architecture (ISA) level
2.
hardware level
3.
operating system level
4.
library support level
5.
application level
Instruction
Set Architecture Level:
Ø At the
ISA level, virtualization is performed by emulating a given ISA by the ISA of
the host machine.
Ø 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.
Hardware
Abstraction Level:
Ø Hardware-level
virtualization is performed right on top of the 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
intention is to upgrade the hardware utilization rate by multiple users
concurrently.
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.
Library
Support Level:
Ø Most
applications use APIs exported by user-level libraries rather than using
lengthy system calls by the OS.
Ø 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.
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 process-level virtualization.
Ø 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.
Relative
Merits of Different Approaches:
Comments
Post a Comment