|
The most popular
virtualization techniques are currently based on three
technologies
 |
Full-VM or HVM (Hardware
virtual machine) |
|
 |
Containers |
|
 |
Paravirtualization |
|
|
HVM based solution
Although Full-VM/HVM based virtualization can be achieved
using a variety of configurations, we will discuss what
is known as the Hypervisor based approach. In this
approach, the hypervisor, a very thin software layer runs
on the bare hardware. It then manages several operating
systems instances, scheduling the systems resources
between them all. Using hardware virtualization
assistance technologies like Intel VT or AMD-V, these
hypervisors are able to run unmodified operating systems
like many Linux distributions, and many versions of
Windows. As far as the state of the art goes, the CPU is
virtualized using the hardware, but various I/O devices
are still emulated in software. Critical devices like the
network interface and the disk slow down due to this.
There is a penalty on performance.
Container based solution
Container based solutions do not suffer the overhead of
multiple kernels and emulated I/O device. However you
have to note that containers are not designed to run
multiple operating systems. They provide an illusion of a
complete system to each container. A container is just a
set of processes. Since there is only one kernel and the
processes run natively on the hardware, there is no
performance penalty. On Linux for instance, you can run
multiple distributions on the same kernel. Container also
provide the ability to meet SLAs by featuring Quality of
Service (QoS) settings for each VM. You can precisely
specify how much memory and CPU scheduling priority a
particular VM must be offered.
Paravirtualization
The problem of emulating the CPU has been mitigated by technologies
like VT and AMD-V.
There is however a need to emulate various devices. This is the cost
of virtualizing unmodified
operating systems. Paravirtualization is a unique technique where the
guest operating system is
"made aware" of a special platform. Between the hardware and the guest
operating system is a
thin layer, traditionally called a hypervisor. The guest operating
systems requests the hypervisor
if it needs to perform any privileged operation. This avoids the
overhead of the traditional
trap-and-emulate model, while providing raw performance. While the
advantages are obvious,
there is a need to modify the guest operating system specifically for
it to be able to run on the
hypervisor. Xen today, is the most popular paravirtualization system
available, but the only
mainstream OS running on it is Linux. There have been private ports of
the Windows
operating system, however.
|