User:Egberts/Drafts/Virtualization

Virtualization is Article description::the concept and technique that permits running software in an environment separate from a computer operating system.

The operating system actually running on the hardware is referred to as the host. On this host resides a hypervisor (aka virtual machine manager), which runs virtual machines containing guest software.

Concepts
There are two types of hypervisors:


 * Type 1 hypervisors are installed directly on hardware and are also called bare-metal hypervisors. (VMware ESXi, Xen)
 * Type 2 hypervisors are installed on the underlying operating system. (VMware Workstation, QEMU/KVM)

Type 1 hypervisors provide a higher level of performance as there is no overhead from the interaction of the hypervisor with the guest OS.

Type-2 hypervisor subcategories are broken down into:


 * Software-assisted full virtualization
 * use of machine code translator (qemu/tcg, (VMware Worksation <7)


 * (Pure) hardware-assisted (native) full virtualization - Hardware-assisted virtualization ensures that virtual machines have high performance because “part” of the physical CPU is mapped directly to the virtual CPU (vCPU), and there is no overhead to translate instructions from a vCPU to CPU.
 * use of CPU VT to directly execute binary code. Page Table translation occurs when VM directly process the CPU instructions.  (qemu/kvm, VMware Workstations 7+)  A "pure" hardware-assisted virtualization approach, using entirely unmodified guest operating systems, involves many VM traps, and thus high CPU overheads, limiting scalability and the efficiency of server consolidation. Hardware-assisted virtualization reduces the maintenance overhead of paravirtualization as it reduces (ideally, eliminates) the changes needed in the guest operating system. It is also considerably easier to obtain better performance.


 * Hybrid hardware-assisted full virtualization - This performance hit can be mitigated by the use of paravirtualized drivers; the combination has been called "hybrid virtualization"



Virtualization Software
There is a comparison table of virtualization concepts. QEMU is also broken out by its supported accelerators add-ons as well as its default software-emulation mode.

Containers
Containers provide isolated user space instances.

Orchestration
Container orchestration concerns the details of managing multiple Linux containers. This management layer spins up and spins down individual containers. Examples of container managers are Docker and Mesos, although others exist. There is also container orchestration where K8/docker swarm and related software compete for similar management functions.