Virtualization Technologies - Full Virtualization versus Para-VirtualizationBy Angsuman Chakraborty, Gaea News Network
Thursday, October 9, 2008
There are several ways to implement virtualization. Two leading approaches are full virtualization and para-virtualization.
Full virtualization provides total abstraction of the underlying physical system and create a complete virtual system in which the guest operating system can execute. No modification is required in the guest operating system or application; the guest OS or application is not even aware that it is running within a virtualized environment. The guest OS executes on the VM just as they would on a physical system. This approach can be advantageous because it enables complete decoupling of the software from the hardware. As a result, full virtualization can streamline migration of applications and workloads between different physical systems. Full virtualization provides complete isolation of different virtualized applications, which makes this approach highly secure by design. Microsoft Virtual Server and Vmware ESX Server are examples of full virtualization.
However full virtualization may incur performance and resource penalty. The Virtual machine monitor must provide the VM with an image of an entire system, including virtual BIOS, virtual memory space, and virtual devices. The VM monitor must also create and maintain data structures for the virtual components, like memory page table. These data structures must be updated for every corresponding access by the virtual machines.
In contrast, para-virtualization presents each virtual machine with an abstraction of the hardware that is similar to but not identical to the underlying physical hardware. Para-virtualization attempts to provide most services directly from the underlying hardware instead of abstracting it. Para-virtualization allows for near-native performance.
Para-virtualization requires modifications to the guest operating systems that are running on the VMs. As a result the guest operating systems are aware that they are executing on a VM.
The term “paravirtualization” was first used in the research literature in association with the Denali virtual machine monitor. The term is also used to describe the Xen, L4 and TRANGO hypervisors. All these projects use paravirtualization techniques to support high performance virtual machines on x86 hardware by implementing a virtual machine that does not implement the hard-to-virtualize parts of the actual x86 instruction set.
Para-virtualization is developing field and may have potential security issues with guest OS cache data, unauthenticated connections etc.
Xen is a popular open source virtualization software based on para-virtualization technology which is being widely adopted by Linux hosting providers. Xen is mostly used to virtualize Linux systems. VMware also supports para-virtualization in its Workstation product. Othe rpopular products are Qemu and VirtualBox which is based on Qemu.
Tags: Full Virtualization, Hardware Virtualization, Open Source, Para-Virtualization, Virtual Machine, Virtualization, Vmware, Xen