KVM – KERNEL BASED VIRTUAL MACHINE

www.redhat.com/f/pdf/rhev/DOC-KVM.pdf

BACKGROUND
Virtualization has begun to transform the way that enterprises are deploying and managing their
infrastructure, providing the foundation for a truly agile enterprise, so that IT can deliver an infrastructure
that is flexible, scalable, and most importantly economical by efficiently utilizing resources.
10 years ago virtualization was unheard of in the x86 market it was reserved for mainframe and high end
UNIX systems. Over the last 3 to 4 years there has been exponential growth in the virtualization market both in terms of customer adoption and in terms of the rise of the number vendors in the virtualization space; from new hypervisor vendors to virtualization management vendors too numerous to mention.

KVM
Kernel-based Virtual Machine (KVM) project represents the latest generation of open source virtualization. The goal of the project was to create a modern hypervisor that builds on the experience of previous generations of technologies and leverages the modern hardware available today.

KVM is implemented as a loadable kernel module that converts the Linux kernel into a bare metal
hypervisor. There are two key design principals that the KVM project adopted that have helped it mature
rapidly into a stable and high performance hypervisor and overtake other open source hypervisors.

Firstly, because KVM was designed after the advent of hardware assisted virtualiaztion, it did not have to
implement features that were provided by hardware. The KVM hypervisor requires Intel VT-X or AMD-V
enabled CPUs and leverages those features to virtualize the CPU. By requiring hardware support rather than optimizing with it if available, KVM was able to design an optimized hypervisor solution without requiring the “baggage” of supporting legacy hardware or requiring modifications to the guest operating system.

Secondly the KVM team applied a tried and true adage – “don't reinvent the wheel”.
There are many components that a hypervisor requires in addition to the ability to virtualize the CPU and
memory, for example: a memory manager, a process scheduler, an I/O stack, device drivers, a security
manager, a network stack, etc. In fact a hypervisor is really a specialized operating system, differing only
from it's general purpose peers in that it runs virtual machines rather than applications.

Since the Linux kernel already includes the core features required by a hypervisor and has been hardened
into an mature and stable enterprise platform by over 15 years of support and development it is more
efficient to build on that base rather than writing all the required components such as a memory manager,
scheduler, etc from the ground up.

In this regard the KVM projected benefited from the experience of the Xen. One of the key challenges of the Xen architecture is the split architecture of domain0 and the Xen hypervisor. Since the Xen hypervisor provides the core platform features within the stack, it has needed to implement these features, such as scheduler and memory manager from the ground up.
For example while the Linux kernel has a mature and proven memory manager including support for NUMA and large scale systems, the Xen hypervisor has needed to build this support from scratch. Likewise features like power management which are already mature and field proven in Linux had to be
re-implemented in the Xen hypervisor.

Another key decision made by the KVM team was to incorporate the KVM into the upstream Linux kernel. The KVM code was submitted to the Linux kernel community in December of 2006 and was accepted into the 2.6.20 kernel in January of 2007. At this point KVM became a core part of Linux and is able to inherit key features from the Linux kernel. By contrast the patches required to build the Linux Domain0 for Xen are still not part of the Linux kernel and require vendors to create and maintain a fork of the Linux kernel. This has lead to an increased burden on distributors of Xen who cannot easily leverage the features of the upstream kernel. Any new feature, bug fix or patch added to the upstream kernel must be back-ported to work with the Xen patch sets.

In addition to the broad Linux community KVM is supported by some of the leading vendors in the software industry including Red Hat, AMD, HP, IBM, Intel, Novell, Siemens, SGI and others.

Comments

Popular posts from this blog

Huawei - eNSP (Enterprise Network Simulation Platform)

Useful Websites & Forums (Non-IT)

Useful Websites & Forums (IT/Technical/Educational)

Internet Traffic Generators

Network/Telecom Vendors (National & International)

Create iSCSI Share via FreeNAS - Step by Step

Cisco Simulator: Cisco IOS-On-UNIX (Cisco IOU)

Cisco IOS Collection