Hypervisors: everything you have always wanted to learn about them

Types of Hypervisors: VMware ESXi, Xen, OpenVZ, KVM


The word 'hypervisor' sounds pretty, but what does this term mean, and what role hypervisors play in cloud technologies? Let's clear this topic right now.



Virtualization and hypervisor

Virtualization is a technology that creates a virtual representation of several computers or servers on the hardware base of one physical computer, or a bare-metal server, or a cluster of servers. This hardware base is named a host; it has a CPU, RAM, drive space, etc. Physical resource capacities diversified by specific software to arrange several virtual machines independent from each other.


De-facto, virtualization is an illusion of the existence of several autonomic computers, i.e., virtual machines (or instances) based on one physical computer. And a hypervisor is an author of this illusion.  


A hypervisor is a software to distribute resource capacities of hardware among a few different operating systems allowing their simultaneous launch.


In other words, a hypervisor creates copies (clones) of its hardware resources from one physical computer, and each “clone” is visible from the user as a separate device. On each virtual machine, you can install a guest OS that is not tied to the host hardware.


The hypervisor isolates the running OS from each other, so each of them exclusively uses the resources allocated to it. But if necessary, the hypervisor allows the operating systems of virtual machines and interact with each other. The shared access to some files and data exchange on a local network can be used for communications among the OSs.


Thus, we have several virtual machines instead of one physical machine, and each of them works with its own software independently of the others. However, each of the virtual machines is just a set of files on the host drive. And if the physical server is disabled, the hypervisor will stop working, and all virtual machines will disappear. No host, no illusion (as somebody jokes).


Usually, there are two types of hypervisors, Type-1 and Type-2. But there is also the so-called hybrid hypervisor that combines the characteristics of both types.


Type-1 hypervisors

The Type-1 hypervisor is also called the microkernel, or the X-hypervisor. It is an autonomous hypervisor that runs on the bare metal. The Type-1 hypervisor is a specific compact operating system that is installed directly on a dedicated (bare-metal) server and has the main features of the OS:


The first type of hypervisor
  • provides an abstract resources from systems running on top of it for applications instead of using a set of hardware (the so-called upper-level);
  • manages a set of resources by distributing CPU time, RAM, input-output devices between programs that use server resources (the so-called lower-level).

The Type-1 hypervisor provides a guest OS that is running on top of it with an abstraction, or a virtual machine service. Thus, each guest operating system gets from the hypervisor an illusion of full control over all the "lower-level" resources of the computer. It is similar to how if the OS was running on real hardware in the privileged, or kernel mode of CPU. This mode is also called a supervisor mode.


Most of the current CPUs of Intel and AMD processors for desktops and servers support virtualization technology and dividing the OS into two privilege levels — kernel-mode (privileged) and user-mode. At the same time, the application for managing computing resources has much fewer capabilities.



Advantages of Type One Hypervisor

The essential characteristics of Type-1 hypervisor is an approximately small code size — its code size is two orders of magnitude (i.e., hundreds of times) smaller than most current operating systems. Thus, it provides an equally smaller number of possible critical errors of the entire system. It is crucial because an OS failure on one of the user's virtual machines should not affect the operation of all other VMs created on the same physical server. One of the most important requirements for a hypervisor is the security as the hypervisor gets full control of the hardware resources of the server where virtualization is performed. So, the task of the hypervisor is a secured execution of machine instructions without allowing the guest OS to:


  • block interruptions;
  • modify the mapping tables for virtual RAM pages to physical one for the entire computer;
  • modify the data in the memory cells allocated for other running processes (except cases when it is previously provided by the logic of work, within data exchange).

The scheme of the virtual machine (VM)

System calls are also intercepted and executed inside the hypervisor, but for each guest OS, it looks like a regular execution of instructions in the kernel-mode. In other words, the hypervisor creates an illusion for the guest operating system that the host executes its code at the hardware level, in privileged mode, although de-facto it operates in user-mode. So, if one of the guest OSs crashes, the rest will continue operating.


The hypervisor is the only software app that runs in the mode of maximum privilege. It is called equivalence. Due to the equivalence, user apps run on a virtual machine in the same manner as on physical equipment, except time characteristics.


At the same time, the code execution time is longer because the hypervisor takes the processor time for its needs, intercepts and analyzes guest OS instructions, as well as emulating the execution of some of them. Besides, the hardware resources are divided among several VMs, and each of them gets on-demand only part of the processor time. However, it's quite enough for the full operation of most processes, since not all of them are constantly and evenly loaded. Some of them may be idle waiting for user actions or the completion of slow peripherals. So, the processor time is effectively used because the system redistributes it to other active processes in multitasking mode.


Type-1 hypervisors are Xen, VMware ESXi, Hyper-V, and many others.


XEN (XENSERVER, CITRIX HYPERVISOR)

Xen hypervisor was created within the research project at Cambridge University, and the first public release XenSource was presented in 2003. Since 2007, XenSource has been absorbed by Citrix, so some products are given new names. Xen is a cross-platform hypervisor that supports hardware virtualization and paravirtualization. It contains a minimal amount of code since most of the components are taken outside. Xen is a fully open-source hypervisor licensed under the GNU GPL 2, that provides unlimited ability to modify the product. By supporting paravirtualization and hardware virtualization, Xen is also a hybrid type of hypervisor.


VMWARE ESXI

The autonomous hypervisor VMware ESXi is an Enterprise-class virtualization solution developed by VMware. Like other VMware products, ESXi is available both on a free version, with limited functionality, and on a paid basis, with advanced features, e.g., centralized management of all virtual machines on all project hosts using the vCenter platform. But even the free version of this hypervisor successfully implements all the required functions of the hypervisor. Users note the high stability of the product, ease of administration, minimal code, a wide range of supported guest systems — most of the essential OS versions that are used by the corporate customers.


HYPER-V

The Hyper-V hypervisor is a system solution for hardware virtualization manufactured by Microsoft Corporation for x64-systems. It exists in two versions — as a role in server operating systems of the Windows family (Windows Server 2008, Windows Server 2012, etc., as well as in the x64-bit Pro and Enterprise versions of Windows 8, Windows 8.1, Windows 10), and as a single product of  Microsoft Hyper-V Server. Many users who are fans of Microsoft products consider Hyper-V the most convenient and usable solution for virtualization. By the way, the Azure cloud is completely built on the native products of MS.


TYPE-2 HYPERVISORS AND HYBRID ONES

The Type-2 hypervisor is also called a hosted hypervisor. It is an additional application layer located on top of the primary operating system.


The second type of hypervisor: VirtualBox, VMware Workstation, KVM

In fact, the hosted hypervisor operates as one of the processes performed by the primary OS (as a rule, Linux). In this case, the hypervisor capabilities are much more reduced — it manages the guest operating systems, and the host OS takes over the emulation and management of physical server resources.


The most popular Type-2 hypervisors are Oracle VM VirtualBox, VMware Workstation, KVM.


Oracle VM VirtualBox

Oracle VM VirtualBox is a modular, cross-platform hypervisor manufactured by Oracle Corp. for various operating systems Linux, macOS, Microsoft Windows, FreeBSD, Solaris/OpenSolaris, ReactOS, DOS, and others. It was created in 2007 at Sun Microsystems Corporation; then, after Oracle merged SunMicrosystems, the hypervisor development continued. The source code for the base version is open-source under the GNU GPL, so the hypervisor is popular and available for unlimited modification. BTW, VirtualBox is capable of supporting 64-bit guest systems, even if the host OS is 32-bit.


VMWARE WORKSTATION

The first version of the hypervisor VMware Workstation, developed by VMware, a member of the EMC Corporation, was released in 1999. It is proprietary software that works with x86-64 host operating systems Microsoft Windows, Linux, Ubuntu, CentOS. Supports over 200 guest OS. For testing, the free version of the Workstation Player is accessible to users. However, this version of the hypervisor has significantly fewer features compared to the Pro version.


KVM

Kernel-based Virtual Machine, KVM, – гипервизор, созданный в октябре 2006 года и почти сразу был интегрированный с основной веткой ядра Linux версии 2.6.20., выпущенной в начале 2007 года. Позже KVM был адаптирован как модуль ядра в FreeBSD. В KVM включены загружаемый модуль ядра kvm.ko, отвечающий за виртуализацию, процессорно-специфический загружаемый модуль для AMD или Intel kvm-amd.ko либо kvm-intel.ko, и компоненты пользовательского режима QEMU. KVM – полностью открытое ПО по лицензии GNU GPL и GNU LGPL. BTW, by creating our cloud infrastructure solution SIM-Cloud IaaS, engineers of SIM-Networks used KVM QEMU for virtualization.


Hybrid hypervisors

The hybrid hypervisor is a type that combines some of the characteristics of both Type-1 and Type-2. The hypervisor directly controls the CPU and RAM, and via the host OS, guest operating systems gain access to I/O devices.


Technologies are constantly evolving, and manufacturers of hypervisors are looking for ways to improve their products, create new versions, more flexible, more integrated to different systems and conditions. In recent years, Xen and Hyper-V hypervisors have increasingly been referred not to the first type, but to the hybrid one, and this is partly true. Current versions of these hypervisors primarily combine the properties of both types.


Paravirtualization

One more popular solution, the paravirtualization, is the installation of a specially modified guest OS, the core of which is changed to work effectively with the Type-2 hypervisor. Sure, we cannot talk about modifying proprietary systems with closed source code, such as Windows. But to modify most versions of Linux, owner permission is not required.


With paravirtualization, guest OSs are modified for running in a virtualized environment. It means that the necessary requirement for paravirtualization is the open-source code of all components of operating systems. However, a significant increase in productivity, proportionate to the performance of a non-virtualized system, makes paravirtualization a popular technology among users.


CONTAINER SOLUTIONS (OPENVZ, JAILHOUSE)

Over the past few years, hypervisors have been pushed into the background by the relatively new technology, containers. The reason is that containers can deploy more applications on the same physical server than hypervisors. Containerized virtualization solutions are based primarily on a refined Linux kernel. In this case, when the Linux kernel is used on the host machine, only the Linux family can be used as guest OSs.


The OpenVZ hypervisor, on which the Virtuozzo platform is based, is widely known as containers. The advantage of the OpenVZ solution is an outstanding performance, maximum use of physical server resources due to the high density of VMs.


Also, an interesting solution is Jailhouse by Siemens. This hypervisor is installed on the bare-metal hardware but launched on a running Linux system and segments it into isolated "cells" of the system for executing user apps.


What kind of hypervisor is better to prefer?

By choosing a hypervisor, you should remember the basic tasks of any type of hypervisor:


  • emulation of computer hardware resources;
  • safe execution of machine instructions;
  • preventing the execution of guest OS commands of the supervisor mode on a host machine (without interception and analysis, emulation of execution).


Hypervisors and virtualization systems for Dedicated Servers and Cloud IaaS: VMware ESXi, Xen, OpenVZ, Virtuozzo, KVM, Jailhouse


But we recommend trusting professional experts in this sophisticated issue — experienced technical specialists will help to choose the optimal virtualization technology for each case. They will take into account the project needs, the available physical hardware, the price of the software, the availability of technical support, and many other critical factors. For example, when you're planning to use VMware ESXi and some other hypervisors, be ready to pay for licenses and purchase high-quality equipment to install a virtualization system.


Before working with hypervisors, you should to:


  • Take time to learn the information on virtualization software vendor's website carefully;
  • Verify that your existing physical hardware meets the minimum technical requirements by the hypervisor;
  • Analyze all features and capabilities of the chosen hypervisor (to the reality justify your expectations).

If you have any questions or need to consult our technical experts in choosing the optimal virtualization technology, do not hesitate to contact us at any time – our Customer Care works 24/7/365: yes, we're on touch around the clock, without weekends and holidays.


Share this:

close