Virtualization is nothing but abstracting operating system, application, storage or network away from the true underlying hardware or software. It creates the illusion of physical hardware to achieve the goal of operating system isolation. In last decade, data centers were occupied by a large number of physical servers, network switches, storage devices. It consumed a lot of power and manpower to maintain the data centers. In that period, there were many companies were researching about the hardware emulation/simulation like QEMU, virtual PC etc.. It’s very hard to list all the virtualization types here. So I have just listed down only the server virtualization types.
- Full Virtualization (Hardware Assisted/ Binary Translation )
- Hybrid Virtualization
- OS level Virtualization
Virtual machine simulates hardware to allow an unmodified guest OS to be run in isolation. There is two type of Full virtualizations in the enterprise market. On both full virtualization types, guest operating system’s source information will not be modified.
- Software assisted full virtualization
- Hardware-assisted full virtualization
Software Assisted – Full Virtualization (BT – Binary Translation )
It completely relies on binary translation to trap and virtualize the execution of sensitive, non-virtualizable instructions sets. It emulates the hardware using the software instruction sets. Due to binary translation, it often criticized for performance issue. Here is the list of software which will fall under software assisted (BT).
- VMware workstation (32Bit guests)
- Virtual PC
- VirtualBox (32-bit guests)
- VMware Server
Hardware-Assisted – Full Virtualization (VT)
Hardware-assisted full virtualization eliminates the binary translation and it directly interrupts with hardware using the virtualization technology which has been integrated on X86 processors since 2005 (Intel VT-x and AMD-V). Guest OS’s instructions might allow a virtual context execute privileged instructions directly on the processor, even though it is virtualized.
Here is the list of enterprise software which supports hardware-assisted – Full virtualization which falls under hypervisor type 1 (Bare metal )
- VMware ESXi /ESX
The following virtualization type of virtualization falls under hypervisor type 2 (Hosted).
- VMware Workstation (64-bit guests only )
- Virtual Box (64-bit guests only )
- VMware Server (Retired )
Paravirtualization works differently from the full virtualization. It doesn’t need to simulate the hardware for the virtual machines. The hypervisor is installed on a physical server (host) and a guest OS is installed into the environment. Virtual guests aware that it has been virtualized, unlike the full virtualization (where the guest doesn’t know that it has been virtualized) to take advantage of the functions. In this virtualization method, guest source codes will be modified with sensitive information to communicate with the host. Guest Operating systems require extensions to make API calls to the hypervisor. In full virtualization, guests will issue a hardware calls but in paravirtualization, guests will directly communicate with the host (hypervisor) using the drivers. Here is the lisf of products which supports paravirtualization.
- IBM LPAR
- Oracle VM for SPARC (LDOM)
- Oracle VM for X86 (OVM)
The below diagram might help you to understand how Xen supports both full virtualization and paravirtualization. Due to the architecture difference between windows and Linux based Xen hypervisor, Windows operating system can’t be para-virtualized. But it does for Linux guest by modifying the kernel. But VMware ESXi doesn’t modify the kernel for both Linux and Windows guests.
Xen supports both Full virtualization and Para-virtualization
Hybrid Virtualization: ( Hardware Virtualized with PV Drivers )
In Hardware assisted full virtualization, Guest operating systems are unmodified and it involves many VM traps and thus high CPU overheads which limit the scalability. Paravirtualization is a complex method where guest kernel needs to be modified to inject the API. By considering these issues, engineers have come with hybrid paravirtualization. It’s a combination of both Full & Paravirtualization. The virtual machine uses paravirtualization for specific hardware drivers (where there is a bottleneck with full virtualization, especially with I/O & memory intense workloads), and the host uses full virtualization for other features. The following products support hybrid virtualization.
- Oracle VM for x86
- VMware ESXi
The following diagram will help you to understand how VMware supports both full virtualization and hybrid virtualization. RDMA uses the paravirual driver to bypass VMkernel in hardware-assisted full virtualization.
OS level Virtualization:
Operating system-level virtualization is widely used.It also knowns “containerization”. Host Operating system kernel allows multiple user spaces aka instance.In OS-level virtualization, unlike other virtualization technologies, there will be very little or no overhead since its uses the host operating system kernel for execution. Oracle Solaris zone is one of the famous containers in the enterprise market. Here is the list of other containers.
- Linux LCX
- AIX WPAR
Each virtualization technologies have their own advantages and disadvantages. The choice of virtualization heavily depends on use and cost.
There are a lot of technologies are evolving and enterprise products support multiple virtualization types to improve the performance and reduce the resource overhead. I know its bit hard to understand and classify the virtualization technologies. But I have tried my level best to put it together.
Share it! Comme it !! Be sociable !!!