Chap2-New_Virtulization
Chap2-New_Virtulization
Virtualization
• In computing, virtualization is a broad term that
refers to the abstraction of computer resources
• It is "a technique for hiding the physical
characteristics of computing resources from the
way in which other systems, applications, or end
users interact with those resources.
• This includes making a single physical resource
(such as a server, an operating system, an
application, or storage device) appear to function
as multiple logical resources;
• or it can include making multiple physical
resources (such as storage devices or servers)
appear as a single logical resource."
WHAT IS 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
people compute.
Hardware-independence
of operating system and
applications
Virtual machines can be
provisioned to any system
Can manage OS and
application as a single unit
by encapsulating them
into virtual Machines
Virtualization Benefits
•Maximizing Resources/Sharing
•Reducing Hardware Cost
•Minimizing Maintenance Requirements
•Enjoying Benefits of OS Services
•Using Multiple systems/ Isolation
•Testing Beta software and Maintaining Legacy
applications
•Increasing system Security
•Disaster Management
•Encapsulation
•Portability
•Hardware Independance
HOSTED ARCHITECTURE
BARE-METAL (HYPERVISOR) ARCHITECTURE
Virtualization categories:
• It is divided into two main categories:
– Platform virtualization:- It involves the
simulation of virtual machines.
– Resource virtualization:- It involves the
simulation of combined, fragmented, or simplified
resources.
Platform Virtualization
• The creation of a virtual machine using a
combination of hardware and software is referred
to as platform virtualization
• Platform virtualization is performed on a given
hardware platform by "host" software (a control
program), which creates a simulated computer
environment (a virtual machine) for its "guest"
software.
• The "guest" software, which is often itself a
complete operating system, runs just as if it were
installed on a stand-alone hardware platform.
• Typically, many such virtual machines are
simulated on a given physical machine.
• For the "guest" system to function, the simulation
must be robust enough to support all the guest
system's external interfaces, which (depending on
the type of virtualization) may include hardware
drivers.
Platform Virtualization
• There are several approaches to platform
virtualization, listed below based on how complete
a hardware simulation is implemented.
• (The following terms are not universally-recognized
as such, but the underlying concepts are all found
in the literature.)
• Emulation or simulation
• Native virtualization and full virtualization
• Partial virtualization
• Paravirtualization
• Operating system-level virtualization
• Application Virtualization
Emulation, paravirtualization,
and full virtualization
Platform Virtualization
• Emulation or simulation
– The virtual machine simulates the complete
hardware, allowing an unmodified "guest" OS
for a completely different CPU to be run.
– This approach has long been used to enable
the creation of software for new processors
before they were physically available.
– Examples include Bochs, PearPC, PPC version
of Virtual PC, QEMU without acceleration, and
the Hercules emulator.
– Emulation is implemented using a variety of
techniques, from state machines to the use of
dynamic recompilation on a full virtualization
platform.
Platform Virtualization
• Native virtualization and full virtualization
– the virtual machine simulates enough hardware to
allow an unmodified "guest" OS (one designed for
the same CPU) to be run in isolation.
– Typically, many instances can be run at once. This
approach was pioneered in 1966 with CP-40 and
CP[-67]/CMS, predecessors of IBM's VM family.
• Examples include Virtual Iron, VMware
Workstation, VMware Server (formerly GSX
Server), Parallels Desktop, Adeos, Mac-on-Linux,
Win4BSD, Win4Lin Pro, and z/VM.
Platform Virtualization
• Paravirtualization
– the virtual machine does not necessarily simulate
hardware, but instead (or in addition) offers a
special API that can only be used by modifying the
"guest" OS.
– This system call to the hypervisor is called a
"hypercall" in Xen, Parallels Workstation and
Enomalism; it is implemented via a DIAG
("diagnose") hardware instruction in IBM's CMS
under VM (which was the origin of the term
hypervisor).
• Examples include VMware ESX Server, Win4Lin
9x, and z/VM.
Virtualization Ranging from Hardware to
Applications in Five Abstraction Levels
Implementati Performanc Applicatio Implementatio Application
on Level e n n Complexity Isolation
Flexibility
Advantage:
•Has higher performance and good application isolation
Shortcoming & limitation:
•Very expensive to implement (complexity)
Virtualization at Operating System (OS) level:
It is an abstraction layer between traditional OS and user placations.
•This virtualization creates isolated containers on a single physical server
and the OS-instance to utilize the hardware and software in datacenters.
•Typical systems: Jail / Virtual Environment / Ensim's VPS / FVM
Advantage:
•Has minimal starup/shutdown cost, low resource requirement, and high
scalability; synchronize VM and host state changes.
Advantage:
•It has very low implementation effort
Advantage:
•has the best application isolation
Figure 3.16 Four VCPUs are exposed to the software, only three cores are actually
present. VCPUs V0, V1, and V3 have been transparently migrated, while VCPU V2
has been transparently suspended. (Courtesy of Wells, et al., “Dynamic
Heterogeneity and the Need for Multicore Virtualization”, ACM SIGOPS Operating
Systems Review, ACM Press, 2009 [68] )
Virtual Cores vs. Physical Processor Cores
Physical cores Virtual cores
The actual physical cores present in the There can be more virtual cores visible to
processor. a single OS than there are physical cores.
More burden on the software to write Design of software becomes easier as the
applications which can run directly on hardware assists the software in dynamic
the cores. resource utilization.
The lowest level of system software has The lowest level of system software need