Appendix B: Common Types Of Software-Layer Abstraction For Virtual Machines - Compaq BL10e - HP ProLiant - 512 MB RAM Introduction Manual

Server virtualization technologies for x86-based hp bladesystem and hp proliant servers, 3rd edition
Hide thumbs Also See for BL10e - HP ProLiant - 512 MB RAM:
Table of Contents

Advertisement

Appendix B: Common types of software-layer abstraction
for virtual machines
Binary translation
With binary translation technology, the guest OS is not aware it is operating on virtualized hardware.
The hypervisor manages the access of each guest OS to the physical hardware resources by masking
the hardware from the guest OS. It emulates portions of the system hardware and provides the guest
OS with the illusion of a standard physical server with well-defined hardware devices. The hypervisor
ensures that any instructions from the guest OS that affect system parameters—such as privileged
instructions to the CPU—are handled in a way that does not affect the operation of other guest
operating systems or cause OS kernel faults. The hypervisor traps the instruction and performs
necessary translations that make the guest OS think it has complete control over the server hardware.
Hosted OS, application-layer abstraction
Another software-only approach uses a hypervisor layer that is hosted by an underlying OS. Because
it resides as an application on top of the host OS, this type of abstraction inherits its hardware
support and device compatibility from the host OS. This provides an advantage for customers who
want to run an older, legacy OS on newer server hardware. However, the tradeoff for this hardware
compatibility is the performance overhead required by the hypervisor layer. Typically, such hosted
solutions are used in smaller, departmental environments rather than in large data center deployments
because the hosted solutions often lack capabilities such as dynamic load balancing or clustering.
Hardware- assisted virtualization (full virtualization)
With hardware-assisted virtualization (sometimes referred to as full virtualization), the hypervisor is
assisted by the processor hardware such as AMD-V or Intel VT-x processor virtualization technologies.
In this scenario, when the guest OS makes a privileged instruction call, the processor (CPU) traps the
instruction and returns it to the hypervisor to be emulated. Once the operation is serviced by means of
the hypervisor, the modified instruction is returned back to the CPU for continued execution.
Hardware assistance reduces the software overhead required by the hypervisor.
Hardware assistance from AMD-V and Intel VT-x technologies extends the x86 instruction set with new
instructions that affect the processor, memory, and local I/O address translations. The new instructions
enable guest operating systems to run in the standard Ring-0 architectural layer, as they were
designed to do, removing the need for ring compression.
Paravirtualization
Paravirtualization refers to a technique in which the guest OS includes modified (paravirtualized) I/O
drivers for the hardware. Unlike a binary translation approach, the hypervisor does not need to trap
and translate all privileged layer instructions between the guest OS and the actual server hardware.
Instead, the modified guest OS makes calls directly to the virtualized I/O services and other
privileged operations. Therefore, paravirtualization techniques have the potential to exhibit faster raw
I/O performance than binary translation techniques.
Some of the hypervisor implementations that use this method (Citrix XenServer, Red Hat Enterprise
Linux 5, and SUSE Linux Enterprise) are unique in that they support paravirtualization when using a
modified guest OS and hardware-assisted virtualization when the guest OS is not virtualization-
aware.
18

Advertisement

Table of Contents
loading

Table of Contents