Jump to content

Kernel-based Virtual Machine: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
No edit summary
Added {{expert-subject}} and {{ref improve}} tags to article (TW)
Line 1: Line 1:
{{expert-subject|date=October 2012}}
{{ref improve|date=October 2012}}
{{Infobox software
{{Infobox software
| name = KVM
| name = KVM

Revision as of 11:39, 8 October 2012

KVM
Developer(s)Red Hat, Inc.
Stable release
15 / June 15, 2011; 13 years ago (2011-06-15)
Repository
Written inC
Operating systemLinux kernel
TypePlatform virtualization
LicenseGNU General Public License or GNU Lesser General Public License
Websitewww.linux-kvm.org
(unofficial)

Kernel-based Virtual Machine (KVM) is a virtualization infrastructure for the Linux kernel. KVM supports native virtualization on processors with hardware virtualization extensions.[1] KVM has also been ported to FreeBSD[2] and Illumos[3] in the form of loadable kernel modules.

KVM originally supported x86 and x86-64 processors and has been ported to S/390,[4] PowerPC,[5] and IA-64. An ARM port is in progress,[6] KVM hypervisor porting to ARM Cortex-A15 is made available by Virtual Open Systems.[7]

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.[8] A modified version of QEMU can use KVM to run Mac OS X.[9]

Limited paravirtualization support is available for Linux and Windows guests using the VirtIO framework. This supports a paravirtual Ethernet card, a paravirtual disk I/O controller,[10] 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.[11]

Design

By itself, KVM does not perform any emulation. Instead, a user space program uses the /dev/kvm interface to set up the guest VM's address space, feeds it simulated I/O and maps its video display back onto the host's. QEMU versions 0.10.1 and later make use of this.

Licensing

KVM's parts are licensed under various GNU licenses:[12]

  • 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

Qumranet, a technology startup company, began the development of KVM.[13] Red Hat bought Qumranet in 2008.[14] KVM is maintained by Avi Kivity and Marcelo Tosatti.

Graphical management tools

  • Witsbits - A simplified end-to-end solution for SMB IT staff and IT services providers.
  • 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
  • SolusVM - Supports the management of KVM-based virtual machines as well as Xen and OpenVZ.
  • Virtualbricks - Python/GTK+-based management of KVM and QEMU virtual machines with a complete set of networking tools to emulate a real switched network using VDE.

Emulated hardware

Class Device
Video card Cirrus CLGD 5446 PCI VGA card or dummy VGA card with Bochs VESA extensions[15]
PCI i440FX host PCI bridge and PIIX3 PCI to ISA bridge[15]
Input device PS/2 Mouse and Keyboard[15]
Sound card Sound Blaster 16, ENSONIQ AudioPCI ES1370, Gravis Ultrasound GF1, CS4231A compatible[15]
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-16 CPUs

Implementations

See also

References

  1. ^ KVM FAQ: What do I need to use KVM?
  2. ^ "FreeBSD Quarterly Status Report: Porting Linux KVM to FreeBSD".
  3. ^ "KVM on illumos".
  4. ^ Gmane - Mail To News And Back Again
  5. ^ Gmane Loom
  6. ^ KVM for ARM wiki
  7. ^ KVM for ARM Cortex-A15 port
  8. ^ "KVM wiki: Guest support status". Retrieved 2007-05-27.
  9. ^ "Howto: Mac OS X on KVM".
  10. ^ "SCSI target for KVM wiki". linux-iscsi.org. 2012-08-07. Retrieved 2012-08-12.
  11. ^ "Linux: 2.6.20 Kernel Released". KernelTrap.
  12. ^ Licensing info from Ubuntu 7.04 /usr/share/doc/kvm/copyright
  13. ^ Interview: Avi Kivity on KernelTrap
  14. ^ Red Hat press release on Qumranet purchase
  15. ^ a b c d wiki.qemu.org - QEMU Emulator User Documentation, read 2010-05-06
  16. ^ "Univention Corporate Server 2.4 includes integrated virtualisation tool". http://h-online.com. Heise Media UK Ltd. 2010-09-01. Retrieved 2012-05-14. Bremen, Germany-based Linux specialist Univention has released the final version 2.4 of its Corporate Server (UCS) product.The biggest new feature is inclusion of the "Univention Virtual Machine Manager". (UVMM) {{cite web}}: External link in |work= (help)