Hardware virtualization. The term virtualization is ambiguous. Usually one uses the term virtualization in computer technology. Typically is meant by virtualization the processor virtualization. In addition to the processor virtualization, there are also other possibilities. This includes, for example, the partitioning disks or network virtualization by VLAN.
Hardware virtualization is a hardware support, which facilitates the operation of virtual machines on a real computer or accelerated. With virtualization, you can run multiple software systems run on the same hardware. This can for example be different operating systems. Virtualization makes sense when a hardware system is underutilized and the resources should be used in parallel for other systems.
Since an increasing frequency for processors simply can not so, the processor manufacturers, Intel and AMD in particular, rely on alternative performance-enhancing techniques for processors. In addition to multi-core processors, multimedia enhancements and 64-bit virtualization functions are considered the pioneering development.
Reasons for hardware virtualization:
1. Increase reliability
2. better utilization of IT systems by consolidating hardware
3. lower IT costs
4. lower power consumption
The most important feature of hardware virtualization is the reliability. If an application itself or even bring the entire operating system to crash, the other virtual machines continue to run. The operation of different applications in multiple environments is the most common application. For example, to applications for security and data protection separated hold. But in order not to have to provide your own hardware for each application, virtual machines are created, on which then the applications can operate separately from one another.
At first glance, hardware virtualization seems to be something for servers. But even normal users can benefit from it. For example, two environments for working with the computer. The one normal and the other in connection with the Internet. Has the Internet system worms or viruses captured, it is deleted and set up again. Such a thing can be automated, for example, at every system startup. So you always have a clean system. This could also go so far that insecure programs run in its own environment, so that the operating system from the outside is not vulnerable.
A virtual machine is a software container that an installed operating system pretends it an illusory world, be emulated in the common hardware components. Usually have operating system via standard drivers with whom they can address the emulated hardware. Virtual machines have only a limited graphics performance. 3D software and playback and editing videos is not fast enough doable in a virtual machine. With virtually the hardware is meant is the operating system in the virtual machine. Because CPU, memory, video card, drives and interfaces are the parallel operation systems not directly available. A running in the background virtualization software monitors the access to the hardware. It organizes and manages the virtual machines (VM). This task can for example take a hypervisor. It requires a small portion of hardware performance, especially processor and memory, in order to do its work.
OS hardware virtualization with container
In the operating system virtualization only one operating system runs. Then multiple virtual runtime environments are generated (Jails), which act on the current programs as normal operating systems. The applications see only the applications with which they share their virtual environment. The runtime environments are created quickly, because they are only images of the host system. However, can not be modified individual images. Only the basic system can be changed and that then changes the images. Examples are FreeBSD Jails, Solaris Zone / Container, Linux VServer, OpenVZ and Virtuozzo.
System virtualization with hypervisor
In the system virtualization, one or more complete systems is modeled on which any operating system can be executed. The systems are based on real hardware. So you can simulate different virtual systems and equip them with different hardware. Examples include VMWare Workstation, Virtual PC, Virtual Server and Parallels.
Hypervisor / virtual machine monitor (VMM)
The hypervisor is also referred to as a Virtual Machine Monitor (VMM). He creates and manages virtual hardware. As a rule, a hypervisor within the virtual machine standard interfaces. At the same time it provides an abstraction layer available that prevents access to the driver to the hardware. This ensures that different operating systems are not mutually get in the way.
A distinction is made between two types. Type 1 and Type 2. A type 1 hypervisor runs as the operating system directly on the hardware (native). The overall system uses so little resources. But the hypervisor has to bring all the drivers for all the hardware. A type 2 hypervisor is based on a full-fledged operating system (hosted) and makes use of all resources available to him in this environment.
The hypervisor can therefore be a full-fledged operating system (Type 1). It is then an operating system for an operating system. It provides a virtualization layer that makes it possible to run multiple operating systems simultaneously on a computer system. The hypervisor provides the operating systems the impression they would alone run on the system and have the hardware on its own. The hypervisor while ensuring that an operating system does not destroy the data of another OS, or even have access to it. It prevents the operating systems come into conflict with each other. The safety requirements for the hypervisor are correspondingly high.
- OS virtualization with container (Jail)
Solaris / OpenSolaris
UML - User Mode Linux
Linux Containers (LXC)
- System virtualization with hypervisor (Type 1)
vSphere Hypervisor, formerly ESX / ESXi (VMware)
Proxmox VE (Proxmox)
KVM - Kernel-based Virtual Machine (Open Source)
QEMU - Quick emulator (Free Software)
- System virtualization with hypervisor (Type 2)
VMware Workstation / Player
Windows Virtual PC
Originally virtualization was pure software thing. However, for some functions need virtualization software hardware support. 64-bit and multi-core processors support virtualization. Only with a large address space and a lot of processing power, virtualization sense. Multiple parallel virtual machines rely on. Otherwise the operating comfort suffers from creeping execution speed of applications.
When hardware support is not so much the speed increase, but additional functions. Those are specific functions in the processor and the chipset. Command Extensions to processors there, AMD AMD-V (Pacifica) and Intel VT-x. Whether AMD-V or Intel VT-x, with the virtualization support of the processor can run the hypervisor virtualization faster. AMD-V AMD and Intel VT-x are not sufficient for the hardware virtualization. Additionally needed is also second level address translation (SLAT). This is an address management accelerator, which is located in the CPU and is reflected in a higher speed. In the AMD Nested Page Tables (NPT) or Rapid Virtualization Indexing (RVI) is. When Intel says Extended Page Tables (EPT).
As a rule, virtualization is a mandate of the processor. But even when the I / O virtualization to support CPU, BIOS and chipset is needed. Then you can reach through a certain PCIe component directly to a virtual machine, so that it can install a driver for this device. This is interesting especially for graphics cards.
Intel Vanderpool Technology (VT-x)
Vanderpool Technology or VT-x, and Virtualization Technology for Directed I / O, short VT-d, form the virtualization support from Intel, which was installed installed since November 2005 in the two Pentium 4 processors 662 and 672. During the year 2006, the other processor types Centrino (Yonah), Pentium D (Presler), Pentium 4 and Celeron (Cedar Mill), the Xeon and Itanium-series have been equipped with VT.
AMD Pacifica (AMD-V)
The virtualization support for AMD's AMD-V (Pacifica) or Secure Virtual Machine (SVM), which is incorporated in the AMD processors since 2006. In connection with the security features Pacifica Presidio is always called. Both techniques are closely related.
What use VT-x (Intel) and AMD-V?
Note: The following description is simplistic and general.
A processor is normally designed on only one operating system to execute. When a computer system now in addition to a host hosts a guest operating system (virtual machine), it is not possible without changes to the original code, to differentiate the instruction execution between host and guest. If specific instructions to access the same resource, then there may be crashes and data loss. Even simple instructions on how to back up and writing of status registers in the processor, can cause problems.
In order to eliminate problems should the code before executing searches on these problematic instructions and replaced if necessary. For checking the hypervisor or virtual machine monitor (VMM) is responsible. Because each instruction must be checked, this is the performance of the whole system something in knees. In principle, the VMM must pretend the virtual machines that they have the processor on its own.
Much better virtualization support is by the processor. This virtualization slightly faster (speed advantage). This helps especially "easy" virtualization solutions. Much more important is that under a 32-bit operating system and a 64-bit guest operating systems can be executed when the processor supports virtualization. Because with special virtualization instructions can be the virtual machines move in an environment where browsing is no longer necessary to problematic instructions.
If the virtualization support still does not very much to increase in speed, it is because, as most instructions still trapped by the VMM Need to become. This means that the virtualization support of the processor is not particularly extensive. The processor can not deal with all the instructions themselves.
Whether instructions by the VMM or the processor are treated depends on the extent of the virtualization support the processor. The treatment by the processor is faster in all cases. But in principle always a VMM necessary to take care of the organization and the more complex instructions.
Applications hardware virtualization
Virtual machines are rarely in use. But there are already discussed concrete applications. Some of it is already possible. With a new software branch is expected.
1. Software developers use virtual machines to test their products on different operating systems.
2. On workstations could create different work environments. A normal work surface, a surface for internet access and for special hardware resources. Thus, the various surfaces against hardware and software errors, viruses and worms protect.
3. Certain applications for older operating systems can be run in a virtual machine. At the same time, a current operating system to work with a full range of services.
4. If two applications are not compatible, you can install and run them under their own virtual environments.
hardware virtualization in the server environment
better system utilization reached
more easily manageable
Reduce energy costs - comply> Environmental Policies
higher security and stability
implement faster requirements
hardware virtualization in the desktop environment
higher security and stability
hardware virtualization on a large scale
From 20 virtual machines on a single computer, the monitor, the update management and performance measurement to the fore. It provides, among other things, the question of how to einspielt an update patch on all virtual machines, without the each virtual machine has to be stopped and started. A distribution and control mechanism must be in a position to the virtual machines automatically on a to distribute other hardware.