Kernel-based Virtual Machine
| |
Original author(s) | Qumranet |
---|---|
Developer(s) | Open Virtualization Alliance (OVA) |
Stable release | 1.2.0 / September 5, 2012 |
Written in | C |
Operating system | Unix-like |
Type | Hypervisor |
License | GNU General Public License or GNU Lesser General Public License |
Website |
www.linux-kvm.org (unofficial) |
KVM (Kernel-based Virtual Machine) is a virtualization infrastructure for the Linux kernel which turns it into a hypervisor. KVM requires a processor with hardware virtualization extension.[1] KVM has also been ported to FreeBSD[2] and Illumos[3] in the form of loadable kernel modules.
KVM originally supported x86 processors and has been ported to S/390,[4] PowerPC,[5] and IA-64. An ARM port was merged during the 3.9 kernel merge window.[6]
A wide variety of guest operating systems work with KVM, including many flavours of Linux, BSD, Solaris, Windows, Haiku, ReactOS, Plan 9, and AROS Research Operating System.[7] In addition Android 2.2, GNU/Hurd[8] (Debian K16), Minix 3.1.2a, Solaris 10 U3, Darwin 8.0.1 and more OSs and some newer versions of these with limitations are known to work.[9] A modified version of QEMU can use KVM to run Mac OS X.[10]
Paravirtualization support for certain devices is available for Linux, OpenBSD,[11] FreeBSD,[12] NetBSD,[13] Plan 9[14] and Windows guests using the VirtIO framework. This supports a paravirtual Ethernet card, a paravirtual disk I/O controller,[15] a balloon device for adjusting guest memory usage, and a VGA graphics interface using SPICE or VMware drivers.
KVM uses SeaBIOS.
Linux 2.6.20 (released February 2007) was the first to include KVM.[16]
Design
By itself, KVM does not perform any emulation. Instead, it simply exposes the /dev/kvm interface, with which a user-space host can then:
- Set up the guest VM's address space. The host must also supply a firmware image (usually a custom BIOS when emulating PCs) with which the guest can bootstrap into its main OS.
- Feed it simulated I/O.
- Map its video display back onto the host.
On Linux, QEMU versions 0.10.1 and later is one such host. It will use KVM when available to virtualize guests at near-native speeds, but otherwise fall back to software-only emulation.
Licensing
KVM's parts are licensed under various GNU licenses:[17]
- KVM kernel module: GPL v2
- KVM user module: LGPL v2
- QEMU virtual CPU core library (libqemu.a) and QEMU PC system emulator: LGPL
- Linux user mode QEMU emulator: GPL
- BIOS files (bios.bin, vgabios.bin and vgabios-cirrus.bin): LGPL v2 or later
History
Avi Kivity began the development of KVM at Qumranet, a technology startup company.[18] Red Hat bought Qumranet in 2008.[19] KVM is maintained by Paolo Bonzini and Gleb Natapov.
Graphical management tools
- KIMCHI - web-based virtualization management tool for KVM
- UCS Virtual Machine Manager - web-based virtualization management tool for different virtualization technologies like KVM and Xen under Microsoft Windows and numerous Linux distributions; Integrated by default in the Enterprise Linux solution Univention Corporate Server.
- Archipel – An opensource libvirt-based Web UI, which uses XMPP to communicate with its "agents" installed on servers
- Witsbits – Simplified SaaS based centralized management with web UI.
- Virtual Machine Manager – Supports creating, editing, starting, and stopping KVM-based virtual machines, as well as live or cold drag-and-drop migration of VMs between hosts.
- ConVirt – Manages creating, editing, starting, and stopping KVM-based virtual machines, as well as live or cold drag-and-drop migration of VMs between hosts.
- Proxmox Virtual Environment – Free virtualization management package including KVM and OpenVZ. It has a bare-metal installer, a web-based remote management GUI, and optional commercial support.
- OpenNode – RHEL/CentOS-based open-source server virtualization and management solution with a simple bare-metal installer, providing KVM+OpenVZ host and standard libvirt, func management interfaces together with standard CLI tools like virsh and vzctl.
- OpenQRM - Management platform for managing heterogeneous data center infrastructures.
- SolusVM – Supports the management of KVM-based virtual machines as well as Xen and OpenVZ.
- Virtualizor – Supports the management of KVM-based virtual machines as well as Xen and OpenVZ.
Emulated hardware
Class | Device |
---|---|
Video card | Cirrus CLGD 5446 PCI VGA card or dummy VGA card with Bochs VESA extensions[20] |
PCI | i440FX host PCI bridge and PIIX3 PCI to ISA bridge[20] |
Input device | PS/2 Mouse and Keyboard[20] |
Sound card | Sound Blaster 16, ENSONIQ AudioPCI ES1370, Gravis Ultrasound GF1, CS4231A compatible[20] |
Ethernet Network card | AMD Am79C970A (Am7990), E1000 (Intel 82540EM, 82573L, 82544GC), NE2000, and Realtek RTL8139 |
Watchdog timer | Intel 6300ESB or IB700 |
RAM | 50 MB – 32 TB |
CPU | 1–160 CPUs |
Implementations
- Illumos based distributions
- OpenIndiana
- Red Hat Enterprise Linux (RHEL) 5.4 and above
- SmartOS
- SUSE Linux Enterprise Server (SLES) 11 SP1 and above
- Ubuntu 10.04 LTS and above
- Gentoo Linux
- Univention Corporate Server
See also
- Xen
- Comparison of platform virtual machines
- Open Virtualization Alliance
- Lguest
- oVirt
- libvirt
- libguestfs
- Vx32
- OpenNebula
- OpenStack
- CloudStack
References
- ↑ KVM FAQ: What do I need to use KVM?
- ↑ "FreeBSD Quarterly Status Report: Porting Linux KVM to FreeBSD".
- ↑ "KVM on illumos".
- ↑ Gmane - Mail To News And Back Again
- ↑ Gmane Loom
- ↑ KVM/ARM Open Source Project
- ↑ "KVM wiki: Guest support status". Retrieved 2007-05-27.
- ↑ http://www.gnu.org/software/hurd/hurd/status.html
- ↑ http://www.linux-kvm.org/page/Guest_Support_Status
- ↑ "Howto: Mac OS X on KVM".
- ↑ "OpenBSD man page virtio(4)". Retrieved 2013-07-15.
- ↑ "virtio binary packages for FreeBSD". Retrieved 2012-10-29.
- ↑ "NetBSD man page virtio(4)". Retrieved 2013-07-15.
- ↑ "plan9front". Retrieved 2013-02-11.
- ↑ "SCSI target for KVM wiki". linux-iscsi.org. 2012-08-07. Retrieved 2012-08-12.
- ↑ "Linux: 2.6.20 Kernel Released". KernelTrap.
- ↑ Licensing info from Ubuntu 7.04 /usr/share/doc/kvm/copyright
- ↑ Interview: Avi Kivity on KernelTrap
- ↑ Red Hat press release on Qumranet purchase
- ↑ 20.0 20.1 20.2 20.3 wiki.qemu.org – QEMU Emulator User Documentation, read 2010-05-06
External links
- Official website
- Wikibook QEMU & KVM
- First benchmarks of KVM
- "News, Blogs and Resources on the Linux (KVM) Kernel-Based Virtual Machine"
- Available KVM-Implementation from Collax
- UnifiedSessionsManager – An OpenSource based Service and Sessions Manager for QEMU/KVM
|
|