Hypervisor

from Wikipedia, the free encyclopedia

Hypervisor , also called virtual machine monitor (from English virtual machine monitor , VMM for short ), is the name for a class of systems in practical computer science , which act as an abstracting layer between the actual hardware (and possibly the operating system already installed on the system ) and other operating systems to be installed. Such systems make it possible to define a virtual environment (hardware resources, esp. CPU , memory, hard disk space, available peripherals), which serves as the basis for the installation of (guest) operating systems regardless of the actual hardware.

properties

Hypervisors allow the simultaneous operation of several guest systems on one host system. The hypervisor manages the allocation of resources for individual guest systems. It distributes the hardware resources in such a way that all resources are available for each individual guest operating system as required, as if there were only one operating system. This can take place through hardware emulation , hardware virtualization or paravirtualization. Each guest system has its own complete computer with all hardware elements (processor, drives, memory, etc.).

The actually existing hardware environment is known as the host system. Any operating system installed on it is called the host operating system.

The virtual environment with the installed guest operating system (often also referred to as a virtual machine or guest system) can run on all host systems on which the hypervisor is installed or run. From the guest system's point of view, it does not matter on which hardware environment the hypervisor itself is installed, since the hypervisor abstracts from the actual hardware. It is the task of the hypervisor to distribute the hardware resources to the virtual machines as required.

In their 1974 article "Formal Requirements for Virtualizable Third Generation Architectures", Gerald J. Popek and Robert P. Goldberg laid the formal foundations and set out the basic requirements for an architecture to support hypervisors.

Hypervisors can, if the requirements as in the above Articles are fulfilled by the hardware, are implemented completely software-based, d. H. In principle, no virtualization-specific expansions are required in the processor. However, since both speed and security advantages can be achieved through expansions in the processor (instruction set), many processor architectures offer instruction expansions implemented on the hardware side for virtualization.

Word origin

"Hyper" comes from the Greek and means "over". “Visor” can be derived from the Latin “videre”, which means “to see”. Translated logically, it is a system which, as a “supervisor”, “overlooks” or “monitors” something or other systems.

Classification

Type 1 hypervisor
Type 2 hypervisor

In his doctoral thesis “Architectural Principles for Virtual Computer Systems” from 1973, R. Goldberg differentiates between two types of hypervisors:

  • A type 1 hypervisor ( native or bare metal ) is based directly on the hardware and does not require any prior operating system installation. However, this assumes that the hardware of the host system of the type 1 hypervisor is supported by appropriate drivers.
  • A type 2 hypervisor ( hosted ) is based on a full operating system , on the host system, and uses the device drivers of the operating system to access the hardware of the host system. Type 2 hypervisors can therefore run on all host systems on which host operating systems supported by the hypervisor can run.

The term hypervisor is used inconsistently in publications and in the press, as it is limited in some sources to type 1 or to type 2 with paravirtualization . Sources from IBM use the term hypervisor in general, i.e. for type 1 and type 2. Sources from VMware also speak of bare metal hypervisors (type 1) to distinguish them from type 2 hypervisors and use the term hypervisor for Category type-1 as well as type-2.

The roots of virtualization in the mainframe area

The first hypervisors that enabled virtualization were the SIMMON test tool developed by IBM based on the then new System / 360 hardware and the CP-40 research system , the first version of which was completed in 1967 and later the first version of IBM's CP / CMS Operating system with the designation CP-40 / CMS has been further developed. CP-40 / CMS also ran on the System / 360 hardware, which was modified so that for the first time an implementation of virtual memory management was available. Before 1967, virtualization was only implemented in some operating systems in the sense that several application programs could be executed at the same time (for example CTSS and IBM M44 / 44X) and the same hardware (transparent for the application programs) was shared. With CP-40 / CMS it was possible for the first time to run multiple operating systems in separate virtual machines.

For the IBM System / 360-67 , the CP-40 was completely reimplemented and, as the CP-67, became the first commercially available production system with implemented complete virtualization. The hardware was first delivered in 1967 - it already contained features such as hardware-implemented page translation tables for virtual memory and other technologies that allowed kernel tasks, I / O and interrupt handling to be virtualized. In the same year CP-40 and CP-67 were used on the first mainframe computers. From 1968 to 1972 IBM made the source code of CP / CMS available to its customers without support.

CP / CMS was part of IBM's efforts to provide a robust time-sharing system for its mainframe computers . Since the hypervisor could run several operating systems in parallel, it increased reliability and robustness: Even if one operating system failed, the other operating systems could continue to work without being affected. It also allowed the parallel operation of different (partly experimental) versions of the operating systems.

IBM announced the System / 370 as the successor to the System / 360 series in 1970 without virtualization support, but added this functionality in 1972. Since then, virtualization has been a component of all successor systems (all modern systems such as System z are fully backwards compatible with the S / 360 series mainframes of the 1960s). The announcement of support for virtualization in 1972 also contained the announcement of the VM / 370 operating system, a re-implementation of the CP / CMS system for the S / 370 series. In contrast to CP / CMS, IBM offered software support for this version, although for a long time it was still supplied in the form of source code. The abbreviation “VM” stood for virtual machine - the aim was to emphasize that all hardware interfaces, not just some, were virtualized. Both VM and CP / CMS enjoyed great acceptance on the part of universities, research institutions, business customer users and within IBM itself. Nevertheless, VM and CP / CMS lost after a series of fierce disputes and discussions within IBM between "time-sharing" supporters and " batch-processing "supporters compared to the batch-based MVS operating system on the ground - after all, VM was viewed for decades as IBM's" other "operating system next to MVS. After the year 2000, VM gained in importance again, as it served in the form of z / VM, among other things, as a platform for "Linux for zSeries".

In 1985, IBM introduced the PR / SM hypervisor and with it the concept called Logical Partitioning , which is still used today on the System / 390 , zSeries , pSeries and iSeries platforms .

Expressions

Unix and Linux server hypervisors

The large Unix manufacturers, in particular Sun Microsystems, HP, IBM and SGI, have been selling server solutions with virtualization support since the late 1990s. These solutions were mostly only available with very large and correspondingly expensive systems. But there were also some solutions in the middle price segment, such as B. IBM's pSeries Server, Sun / Oracle's CoolThreads Server and HP's Superdome Server.

From 2005 onwards, several influencing factors led to a resurgence in efforts to use virtualization technologies among Unix and Linux server manufacturers:

  • More powerful hardware allows each individual machine to process more things in parallel
  • Efforts to simplify server management and consolidation of existing servers
  • The need to manage large multiprocessor and server cluster installations - for example in server and render farms
  • Improvement of security, reliability and greater hardware independence through hypervisor installations
  • The possibility of running complex, operating system-dependent applications on different hardware platforms and operating systems

The hypervisor technologies offered by the major server manufacturers are shown in the following sections:

Sun / Oracle

Although Solaris was always the only guest system officially supported by Sun / Oracle on their Logical Domains Hypervisor, ports from Linux ( Ubuntu and Gentoo ) and FreeBSD have been available since the end of 2006 , which can also run on the Sun / Oracle Logical Domains Hypervisor. Wind River “Carrier Grade Linux” also runs on Sun's hypervisor. Full virtualization based on the SPARC processors turned out to be relatively easy: Since its introduction in the mid-1980s, Sun had consciously taken care to keep the architecture free of artifacts that would have prevented virtualization.

Sun's Logical Domains Hypervisor is a Type 1 hypervisor because it runs directly on the hardware and controls / monitors the execution of the guest systems.

HP

HP calls its technology to operate multiple guest systems on its systems based on the Itanium processor, "Integrity Virtual Machines" (Integrity VM). The Itanium platform supports HP-UX , Linux, Windows and OpenVMS as guest operating systems. However, HP's own HP-UX operating system is best adapted to the "Integrity VM" and offers virtualization support with features such as processor and memory hot swaps (i.e. exchange of processors or memory during operation) as well as kernel updates without reboot, which are withheld from the other operating systems.

The Integrity VM Hypervisor is a hybrid form in terms of the (Type-1, Type-2) classification. The Integrity VM hypervisor is essentially based on HP-UX and runs directly on the hardware in the sense of a type 1 hypervisor. The guest operating systems run parallel to the Integrity VM hypervisor, which, as a special form of the HP-UX OS, would in principle also allow the execution of HP-UX applications (even if this is not recommended by HP). For this reason, we cannot speak of a pure type 1 hypervisor here, but only of a hybrid form.

IBM

IBM offers virtualization support through a technology called Logical Partitioning (LPAR) on the System / 390 , zSeries , pSeries and iSeries platforms . The hypervisor called "PowerVM" by IBM works on all of the platforms mentioned as a bare-metal (type 1) hypervisor implemented in the firmware, which ensures isolation between the logical partitions (LPARs). Processor capacity is either explicitly allocated to the LPARs or dynamically allocated on the basis of available capacity where it is most urgently needed due to the high load. LPAR groups can manage shared CPU capacity in the form of a pool - IBM calls this feature Multiple Shared Processor Pools (MSPPs) and makes it available in servers with the POWER6 processor. LPAR and MSPP capacity allocations can be customized. Memory is either permanently allocated to each LPAR at start-up or made available dynamically and with regard to of the address space controlled by the PowerVM (to protect the address spaces of the different VMs). I / O adapters can either “belong” exclusively to an LPAR or be shared between LPARs using a mechanism called Virtual I / O Server (VIOS). The Power Hypervisor provides hot swap features for processors, memory, I / O adapters, fans, hard drives, controllers, etc. (which features are supported depends on the exact model) for high reliability, short maintenance windows and high availability.

x86 hypervisor

In 2005, CPU manufacturers began to integrate virtualization support in their products in the x86 sector: For example, Intel processors Intel VT-x (codenamed Vanderpool) and Intel APICv have integrated for interrupt virtualization, AMD processors AMD-V (codenamed Pacifica ) and AMD AVIC for interrupt virtualization and VIA processors VIA VT integrated. Virtualization software that use these processor expansions for virtualization are z. B. VirtualBox , Windows Virtual PC , VMware Workstation , Parallels Desktop for Mac , Xen , VMware ESX / ESXi , KVM and Hyper-V .

With Hyper-V (code-named "Viridian" - formerly "Windows Server Virtualization") is, one supplied by Microsoft for the first time 2008 Type 1 hypervisor; Windows versions from Windows Vista contain enhancements to optimize performance when operated based on Hyper-V.

With VMware ESX / ESXi and Xen is a Type 1 hypervisor.

With VirtualBox , Windows Virtual PC , VMware Workstation and Parallels Desktop for Mac is Type 2 hypervisor that need a base operating system installation.

Storage hypervisors

Embedded systems hypervisor

Since embedded systems often have only very limited resources available (especially battery-powered, mobile or card-integrated "on-chip" systems), important requirements for hypervisors in the embedded area are in particular low memory consumption and low administrative overhead in the form of additional CPU -Computing time. Hypervisors for embedded real-time operating systems (RTOS) as a special form must also be designed taking into account strict real-time requirements.

After all, there are many more competing architectures in the world of embedded systems than in the comparatively manageable world of x86 architectures of the PC world. However, support for virtualization by the operating system requires at least memory protection mechanisms in the form of a memory management unit or at least a simple memory protection unit, and a distinction between a privileged and a user mode at the operating system level. These requirements already rule out the implementation of virtualization on many embedded platforms. The above Features are supported by at least x86 , MIPS , ARM and PowerPC architectures as widespread architectures in the embedded environment.

Since manufacturers of embedded systems usually also deliver their own operating system with the chip and thus have full control over operating system changes, there is less need for full virtualization than in the PC area (where there is a clear separation between hardware and operating system manufacturers). Instead, the performance advantages of paravirtualization often make it the technology of choice in the embedded area. With the ARM Cortex A15, ARM also offers a high-end embedded processor with support for full hardware virtualization.

Further differences between virtualization in the server / desktop area and embedded environments lie in the requirements for efficient sharing of resources between virtual machines, inter-VM communication with high bandwidth and low latency, and fine-grained control of the flow of information between VMs.

Possible applications

Hardware utilization

Before virtualization, each system required its own hardware. However, modern hardware spends most of its time idle. As a result, energy and space are wasted. By operating several systems on the same hardware, the hardware resources can be better utilized and less hardware is required. This leads to direct cost savings for the operator.

Software development

Virtual machines with different guest operating systems allow developers to test their software on the desired target platforms with little effort. If the software to be tested contains serious errors, these only damage the guest system and have no effect on the host system.

Resilience

Through the use of virtual storage pools or failover clusters, the nodes of which are distributed over the VMs of several physical servers, a high level of failure safety can be achieved cost-effectively.

literature

  • R. Goldberg: Architectural Principles for Virtual Computer Systems. Ph.D. thesis, Harvard University, Cambridge, MA, 1972.

Individual evidence

  1. ^ Microsoft Hyper-V , Rheinwerk Computing. 
  2. Gerald J. Popek and Robert P. Goldberg: Formal Requirements for Virtualizable Third Generation Architectures . In: Communications of the ACM . 17, No. 7, 1974, pp. 412-421. doi : 10.1145 / 361011.361073 .
  3. Everything you need to know about the Intel Virtualization Technology ( Memento from August 19, 2014 in the Internet Archive )
  4. ^ Robert P. Goldberg: Architectural Principles for Virtual Computer Systems . February 1, 1973 ( dtic.mil [accessed January 24, 2017]). Architectural Principles for Virtual Computer Systems ( Memento of January 24, 2017 in the Internet Archive )
  5. Everything about virtualization . In: Computerwoche , accessed August 16, 2014
  6. IBM Systems Virtualization , IBM Corporation, Version 2 Release 1 (2005), available on-line at publib.boulder.ibm.com (PDF; 247 kB) - description of basic concepts
  7. vSphere Hypervisor
  8. virtualization quickly becoming open source 'killer app'
  9. a b Wind River To Support Sun's Breakthrough UltraSPARC T1 Multithreaded Next-Generation Processor
  10. ^ Peter Galli: Microsoft Sheds More Light on Windows Hypervisor Technology. In: eweek.com , April 5, 2006.
  11. ^ Marius Strobl: Virtualization for Reliable Embedded Systems . GRIN Publishing GmbH, Munich 2013, ISBN 978-3-656-49071-5 , pp. 5-6.
  12. Micro-kernel based para-virtualization. Sysgo AG, May 2017.
  13. ^ Gernot Heiser : The role of virtualization in embedded systems . In: Proc. 1st Workshop on Isolation and Integration in Embedded Systems (IIES'08) ., Pp. 11–16.