A hypervisor is computer software, firmware, or hardware that allows you to create and host virtual machines (VMs). With a hypervisor, a computer (the host machine) can support one or more virtual machines (guest machines) by virtually sharing its resources (CPU, RAM, network, etc).
In most cases this is used to virtualize servers. A VPS at TransIP is an example of a virtual machine hosted on a hypervisor.
Type of hypervisors
Hypervisors are classified into two types:
- Type1: 'Native' or 'Bare-Metal' hypervisors
- Type2: Hosted hypervisors
Type1
A Type1 Hypervisor runs directly on the hardware to monitor the hardware and host VMs. This is why it owes its nicknames 'Native' and 'Bare-Metal'. Some examples of Type1 Hypervisors are: KVM (uses TransIP), Microsoft Hyper-V, VMWare ESX, and Citrix Xen.
Type2
A Type2 hypervisor is a software hypervisor that runs from an operating system (i.e. Hosted). Some examples of Type 2 hypervisors are: QEMU (uses TransIP) Oracle VirtualBox, VMware Workstation, Parallels Desktop.
Type 1 vs Type 2
A hypervisor creates a virtual CPU (vCPU) for the guest machine. The hypervisor translates instructions for the vCPU to the physical CPU. This has a dramatic impact on the performance of your VM. Modern CPUs therefore come with virtualization extensions, such as Intel VT-x and AMD-V. This links a piece of the physical CPU directly to the vCPU and vCPU instructions are then handled directly by the physical CPU.
This means that in practice a Type 1 hypervisor is always faster than a Type 2 hypervisor. For our VPS platform we use QEMU/KVM: With QEMU you can use KVM as accelerator. Physical CPU virtualization extensions can then be used, negating the disadvantage of a type 2 hypervisor.
Paravirtualization
Paravirtualization is another term you may come across when using (Type 2) hypervisors. This is a virtualization technique that provides software interfaces (eg a network adapter) to the virtual machines in a manner that is quite similar, but not 100% identical, to the underlying hardware–software interface.
The goal of paravirtualization is to speed up communication between the VM and the underlying hardware. This is especially applied when implementing a hardware interface via software is too slow.
With that, we have come to the end of this article. Should you have any questions about this article, don't hesitate to contact our support department. You can reach them via the 'Contact us' button at the bottom of this page.