Qwiki

Kernel-based Virtual Machine (KVM)

The Kernel-based Virtual Machine (KVM) is a pivotal innovation in the field of computer virtualization. It is a free and open-source virtualization module integrated into the Linux kernel, which allows the kernel to function as a hypervisor. This capability enables the creation and management of multiple virtual machines on a single physical machine, each capable of running its own operating system.

History and Development

KVM was merged into the mainline Linux kernel in version 2.6.20, released on February 5, 2007. Its development was spearheaded by Avi Kivity, a prominent software engineer. The introduction of KVM as a kernel module has significantly contributed to the adoption of virtualization technologies in various sectors, especially in cloud computing.

Technical Overview

KVM leverages hardware virtualization extensions, such as Intel VT or AMD-V, to perform its functions. It consists of a kernel module that transforms the Linux kernel into a type-1 (bare-metal) hypervisor. This allows for efficient management of system resources among multiple virtual environments.

The kernel-mode component of KVM is part of the Linux kernel and adheres to the GNU General Public License, version 2. This module handles low-level operations, while higher-level functionalities are managed by user-space applications, such as QEMU. QEMU is an emulator that provides comprehensive hardware emulation and can be paired with KVM to achieve near-native performance speeds for virtual machines.

Virtual Machine Monitors

Multiple Virtual Machine Monitors (VMMs) can interface with KVM. These include:

  • kvmtool: A lightweight VMM designed specifically for KVM.
  • crosvm: Developed by Google, used primarily in Chrome OS environments.
  • Firecracker: A VMM optimized for running serverless workloads.

Additionally, specialized VMMs can be constructed using frameworks such as rust-vmm.

Management Tools

KVM is supported by various management platforms and tools that enhance its utility in data centers and cloud environments:

  • Proxmox Virtual Environment: A robust solution offering management of virtual machines and containers, utilizing a modified Ubuntu LTS kernel.
  • oVirt: An open-source virtualization management tool built on top of libvirt.
  • OpenQRM: A platform for managing heterogeneous data center infrastructures.
  • GNOME Boxes: A simple user interface for managing libvirt guests on Linux.

Features and Capabilities

KVM provides numerous features, including:

  • Bare-metal installation: Allows KVM to be installed directly on physical hardware to maximize performance.
  • Web-based management GUI: Facilitates remote management of virtual environments.
  • High Availability (HA) clustering: Ensures continuous operation through redundancy and failover capabilities.
  • Unified storage and flexible networking: Integrates storage and networking solutions to streamline data flow and resource management.

Related Topics

KVM continues to be a foundational technology in the field of virtualization, enabling scalable, efficient, and secure computing environments.