Solutions
Storage
Virtualization
iSCSI For VMware
iSCSI For XenServer
iSCSI For Windows

Products
Desktops
Workstations
Servers
Storage
Accessories

Company Info
About Us
Contact

Customer Services
Secure Services
Tech Support
Pro Support

Information
What is Linux?
Ubuntu Server

Announcements
Openvirt 2.0 Released
New Opteron Servers
More...

News
CentOS 5.5 Released
Ubuntu 10.04 Released
More...
 

Virtualization Explained

Virtualization Techniques

The various software technologies currently available offer different ways of implementing virtualization. Here we explain the most common methods of virtualization on x86 based hardware.

There are essentially three different techniques currently being used for virtualization:

  1. Full virtualization using a type 1, type 2 or embedded hypervisor
  2. Para-virtualization using a type 1 hypervisor
  3. Operating system-level virtualization

 

Full Virtualization

A technique used to provide a complete simulation of the underlying hardware. This means that all software that can run natively on the hardware can be run in the virtual machine. This means in theory all operating systems and applications. A hypervisor, also called a virtual machine monitor (VMM), controls the host processor and resources, allocating what is needed to each operating system in turn and making sure that the guest operating systems (the virtual machines) cannot disrupt each other. With full virtualization, the guest OS is not aware it is being virtualized and requires no modification.

Type 1 hypervisor
Also known as native or bare-metal. A technique used where the virtualization layer runs directly on the host's hardware. The host and guest operating systems run on another level above the hypervisor. Since it has low level direct access to the hardware, a type 1 hypervisor is more efficient than a hosted application and delivers greater performance. Examples of the type 1 hypervisor approach are VMware ESX and Xen based systems.

Type 2 hypervisor
The virtualization layer runs on top of an existing operating system and is in effect a hosted application. The virtual machine monitor provides each virtual machine with all the services of the physical system, including a virtual BIOS, virtual devices and virtual memory. Examples of a type 2 hypervisor are Sun's VirtualBox, VMware Server and VMware Workstation.

Embedded hypervisor
The virtualization layer is embedded into an operating system kernel. The only current example of an embedded hypervisor is KVM which is embedded into the Linux kernel. The real benefit with this approach is that the hypervisor code is dramatically leaner than either type 1 or type 2. And with the hypervisor embedded into the Linux kernel, the guest operating systems benefit from excellent disk and network I/O performance.

 

Para-virtualization

Also known as OS assisted virtualization. The guest operating systems kernel is modified to replace certain instructions with hypercalls that communicate directly with the hypervisor. The para-virtualization approach can result in lower virtualization overhead. However, parts of the guest operating systems must be modified. The guest OS kernel has to have hypervisor-specific code. In essence, the guest OS "knows" it is being virtualized. An example of para-virtualization is a Xen based system.

 

Operating System-Level Virtualization

A technique where the kernel of an operating system allows for multiple isolated user-space instances. These instances are known as containers, Virtual Private Servers (VPSs), or Virtual Environments (VEs). This form of virtualization usually imposes little or no overhead. However, it is not as flexible as other virtualization approaches since it cannot host a guest OS that is different from the host one. For example, with Linux as the host operating system, only Linux distributions can be run as the guest operating systems. The same kernel is used for both the host operating system and all guest operating systems. An examples of OS level virtualization is OpenVZ.

 

Back to Virtualization Solutions