Home » Virtualisation: Concepts for newcomers

Virtualisation: Concepts for newcomers

Archived
12 years 9 months ago

Virtualisation brings a whole new set of tools to the toolbox of a modern IT infrastructure. In this text we briefly present our perception of virtualisation and a brief description techniques and technologies that CITE applies for virtualising IT infrastructures.

Virtualisation Pros and Cons

Pros

  • Flexibility: Ιnfrastructure can be reshaped without new hardware
  • Easier to manage on a per machine basis, as virtualised hardware tends to be uniform.
  • Easier to migrate in new hardware as most physical resources are virtualised and fully hidden from the guest machine, while the benefits of increased performance are directly visible in the guest.
  • Increased base OS compatibility, as older operating systems and applications can be hosted on modern and in principle incompatible hardware.
  • Increased failure resilience as it is easier to backup / recover systems, move into new hardware, duplicate systems. Related features are offered directly by the virtualisation platform.

Note: Different virtualisation techniques might reduce some of the aforementioned advantages of virtualisation, for the benefit of performance.

Cons

  • Reduced performance: while performance drop can be negligible for CPU and memory operations, it can become substantial for I/O (disk, network, USB) depending on virtualisation techniques applied.
  • Reduced advanced hardware compatibility at the guest OS: as resources are virtualised they become mostly invisible to the guest. Solutions that overcome or soften the effects of this do exist, such as USB sharing, paravirtualised drivers, specialised host drivers, etc.

Virtualisation Concepts

Guest: The virtual machine that resides on a physical machine and a virtualisation technique. Host: The physical machine where virtualisation is applied.

Paravirtualisation: A set of techniques that require that the guest operating system is directly or indirectly aware of the fact that it is a guest operating system. Modified kernels and drivers are some of the techniques applied.

Full Virtualisation: A technique that requires no modifications of the guest system. Can be achieved with or without special hardware.

Hardware Assisted Virtualisation: Virtualisation that depends on extended capacities of the hardware (like vt-x and vt-d).

Virtualisation Platforms

In what follows we present a brief summary of hardware virtualization solutions that we have expertise on.

Xen

XEN is open source virtual machine monitor on top of which more guest domains (virtual machines) are hosted. The XEN hypervisor is the lowest layer of a XEN server. Through this layer all virtual machines access the hardware as it is only the hypervisor that has direct access to the physical system resources. The XEN hypervisor is installed as the first guest domain (Dom0) and it is a properly modified version of a UNIX-type operating system. After installing the hypervisor we have a XEN system on which we can create many unprivileged guest domains. Those unprivileged guest domains are called Domain-Us or DomUs. Dom0 provides the tools for creating resources and managing those DomUs. XEN hypervisor supports two types of DomUs: paravirtualized and hardware virtual machines (HVMs). Regardless the virtualization type, every guest domain is isolated from the others and also none of the DomUs have direct access to the systems’ physical hardware. For using paravirtulization (or else software virtualization) technique we must use a modified UNIX-like operating system as a DomU. In that case the DomUs’ operating system is aware that is running on top of XEN hypervisor thus it is modified so that can communicate directly with it. When paravirtualization is emploied we do not need any special hardware-assisted virtualization technology (AMD-V, Intel VT). Such modified operating systems, to be used as paravirtualized DomUs, are available for several flavours of UNIX-like operating systems. In the case of Hardware Virtual Machines we are allowed to use any unmodified operating system. In this case the guest operating system is not aware that is running on a hypervisor therefore we need a hardware-assisted virtualization technology (AMD-V, Intel VT) along with a BIOS capable of enabling the CPU’s virtualization capabilities. HVMs operating system can be any UNIX-like or Windows operating system.

Hyper-V

Hyper-V is a hypervisor-based virtualization solution offered from Microsoft Corporation. Hyper-V is integrated to Microsoft Windows Server 2008 (standard, enterprise, datacenter) and is also available as a standalone version of the Hyper-V role in Server 2008 called Microsoft® Hyper-V™ Server 2008. The architecture of Hyper-V is similar to that found in XEN. Here we also have a Hyper-V hypervisor at the lowest layer paired with a privileged Dom0 having direct access to system hardware. Hyper-V supports Hardware Virtual Machines as unprivileged guests and requires hardware-assisted virtualization technology (AMD-V, Intel VT). HVMs run isolated, not aware the Hyper-V’s exiastance. They have also no direct access to physical system hardware. Managing of virtual machines in case of using Microsoft Windows Server 2008 with Hyper-V role enabled is done through Windows Server 2008 and in case of using Microsoft® Hyper-V™ Server 2008 through shell or remotely. Operating systems available for HVMs include Windows and UNIX variations.

VMware

VMware offers a range of virtualization products some of which runs as desktop applications and some standalone. VMware vSphere (commercial) and VMware vSphere Hypervisor (free) are enterprise-class virtualization solution. VMware vSphere Hypervisor is based on VMware ESXi. Unlike XEN and Hyper-V it uses hardware vendors’ drivers and a POSIX-like kernel developed by VMware which is called VMkernel and which fully manages the virtual server. Virtual machines run on top of the VMkernel. Supported virtualized operating systems are Windows, Unix-like, Netware and more.

KVM (Kernel Based Virtual Machine)

KVM (Kernel-based Virtual Machine) is an open source virtualization solution for Linux on x86 hardware. It requires hardware-assisted virtualization technology (AMD-V, Intel VT) and a BIOS capable to enable CPU virtualization. KVM instead of having a "bare metal," hypervisor uses linux kernel as hypevisor through a loadable kernel module, kvm.ko, and a processor specific module, kvm-intel.ko or kvm-amd.ko, depending on systems’ CPU. Also requires a modified version of QEMU to virtualize hardware resources. In KVM a virtual machine is implemented as a linux process. Supported guest operating systems include Windows, Unix-like, Netware and more.

Disclaimer:

  • The article expresses personal opinions of experts in CITE. As such it cannot be considered as a documented comparison or analysis of the aforementioned hypervisors and their characteristics.