基于内核的虚拟机

维基百科,自由的百科全书
跳到导航 跳到搜索
KVM
Kvmbanner-logo2 1.png
在Arch Linux宿主机上使用QEMU/KVM运行NetBSD、OpenSolaris和Kubuntu客户机的截图。
Arch Linux宿主机上使用QEMU/KVM运行NetBSDOpenSolarisKubuntu客户机的截图。
原作者 Qumranet英语Qumranet
開發者 开放虚拟化联盟(OVA)
编程语言 C
操作系统 类Unix系统
系統平台 ARMIA-64PowerPCS/390英语IBM ESA/390x86x86-64
类型 虚拟机监视器
许可协议 GNU GPL or LGPL
網站 www.linux-kvm.org
源代码库 編輯維基數據鏈接

基于内核的虚拟机英语:Kernel-based Virtual Machine,縮寫為KVM)是一种用於Linux內核中的虛擬化基礎设施,可將Linux內核轉化為一個虚拟机监视器。KVM于2007年2月5日被導入Linux 2.6.20核心中,以可載入核心模組的方式被移植到FreeBSDillumos上。[1]KVM需要支持硬件虚拟化拓展英语hardware-assisted virtualization特性的处理器。[2]KVM也被移植至FreeBSD[3]illumos[4]上以载入内核模块。

KVM起初支持x86平台处理器并随后被移植到了S/390英语IBM ESA/390[5]PowerPC[6]IA-64平台上。在3.9内核合并时也导入了ARM移植版。[7]

诸多客户操作系统支持KVM,包括Linux的诸多发行版、BSD、SolarisWindowsHaikuReactOSPlan 9AROS研究操作系统英语AROS Research Operating System[8]OS X[9]除此之外,还支持Android 2.2、GNU/Hurd[10](Debian K16)、Minix 3.1.2a、Solaris 10 U3和Darwin 8.0.1,而其他操作系统或新版操作系统都支持KVM,仅仅存在一些限制而已。[11]

半虚拟化英语Paravirtualization support for certain devices is available for 使用Linux、OpenBSD、[12]FreeBSD、[13] NetBSD,[14]Plan 9、[15]和带有VirtIO API[16]的Windows客户机上支持对部分设备的半虚拟化英语Paravirtualization。这项特性支持半虚拟化网卡、半虚拟化磁盘I/O控制器、[17]用于调整客户端内存使用的气球设备(Balloon device)和使用独立计算环境的简单协议英语SPICE (protocol)VMWare驱动程序的VGA图形接口。

内部结构[编辑]

KVM/QEMU环境的高级概述[18]:3

KVM本身并不进行任何模拟。相反,它暴露出一个/dev/kvm接口,用户空间主机可以:

  • 设置客户虚拟机的地址空间。宿主机同样也需用户可用于引导进主操作系统的固件镜像(通常为模拟PC时的自定义BIOS)。
  • 为客户机模拟I/O。
  • 将客户机的视频显示映射回系统宿主机上。

在Linux上,QEMU版本0.10.1及更新版就是一个用户层主机。QEMU使用KVM以近乎原生的速度虚拟化客户机,若无KVM的话则将仅使用软件模拟。

KVM内部使用SeaBIOS英语SeaBIOS作为对16位x86 BIOS的开源模拟。[19]

授权[编辑]

KV的组件使用多个GNU协议授权:[20]

  • KVM内核模块:GPL v2
  • KVM用户模块:LGPL v2
  • QEMU虚拟CPU内核库(libqemu.a)和QEMU PC系统模拟器:LGPL
  • Linu用户模式QEMU模拟器:GPL
  • BIOS文件(bios.bin、vgabios.bin和vgabios-cirrus.bin):LGPL v2或更新

历史[编辑]

阿维·齐维迪(Avi Kivity)在一家名为Qumranet英语Qumranet初创企业开始了KVM的研发工作[21],随后此公司于2008年被紅帽公司收购。[22]

KVM被合并入Linux内核版本2.6.20的主流分支,于2007年2月5日发布。[1]

KVM现由保罗·邦齐尼(Paolo Bonzini)维护。[23]

图形管理工具[编辑]

libvirt英语libvirt支持KVM
  • Kimchi英语Kimchi (software) – 网页版KVM虚拟化管理工具
  • Virtual Machine Manager – 支持创建、编辑、开始于关闭基于KVM的虚拟机,同时也支持对宿主之间的实时或冷拖拽虚拟机迁移。
  • Proxmox虚拟环境 – 一项开源的虚拟化管理包,包括KVM与LXC。同时它还有裸机安装器、网页版远程管理界面、HA集群堆栈、统一存储、柔性网络及可选的商业支持。
  • OpenQRM英语OpenQRM – 用于管理不同数据中心基础设施的平台。
  • GNOME 機櫃 – Linux上用于管理libvirt客户机的Gnome界面。
  • oVirt英语oVirt – 用于管理基于libvirt的KVM开源工具。

模拟硬件[编辑]

分类 设备
显示卡 Cirrus CLGD 5446 PCI VGA卡、具有BochsVESA拓展的虚拟VGA卡[24]或使用Virgil英语Virgil (software)作为虚拟3D CPU。[25]
外设组件互连标准 i440FX英语Intel 440FX主机及PCI桥PIIX3英语PIIX3 PCI至ISA桥[24]
输入设备 PS/2键鼠[24]
声卡 Sound Blaster 16英语Sound Blaster 16、ENSONIQ AudioPCI ES1370英语ES1370Gravis Ultrasound GF1英语Gravis Ultrasound GF1、CS4231A兼容设备[24]
以太网 网卡 AMD Am79C970A (Am7990英语Am7990)、E1000(Intel 82540EM, 82573L, 82544GC)、NE2000与瑞昱RTL8139英语RTL8139
看門狗計時器 因特尔6300ESB或IB700
随机存取存储器 介于50 MB与32 TB之间
中央处理器 1 – 160 个CPU

另请参阅[编辑]

参考文献[编辑]

  1. ^ 1.0 1.1 Linux kernel 2.6.20, Section 2.2. Virtualization support through KVM. kernelnewbies.org. 2007-02-05 [2014-06-16]. 
  2. ^ KVM FAQ: What do I need to use KVM?
  3. ^ FreeBSD Quarterly Status Report: Porting Linux KVM to FreeBSD. 
  4. ^ KVM on illumos. 
  5. ^ Gmane - Mail To News And Back Again
  6. ^ Gmane Loom互联网档案馆存檔,存档日期2007-09-29.
  7. ^ KVM/ARM Open Source Project
  8. ^ KVM wiki: Guest support status. [2007-05-27]. 
  9. ^ Running Mac OS X as a QEMU/KVM Guest. [2014-08-20]. 
  10. ^ status. Gnu.org. [2014-02-12]. 
  11. ^ Guest Support Status - KVM. Linux-kvm.org. [2014-02-12]. 
  12. ^ OpenBSD man page virtio(4). [2018-02-04]. 
  13. ^ virtio binary packages for FreeBSD. [2012-10-29]. 
  14. ^ NetBSD man page virtio(4). [2013-07-15]. 
  15. ^ plan9front. [2013-02-11]. 
  16. ^ An API for virtual I/O: virtio. LWN.net. 2007-07-11 [2014-04-16]. 
  17. ^ SCSI target for KVM wiki. linux-iscsi.org. 2012-08-07 [2012-08-12]. 
  18. ^ Khoa Huynh; Stefan Hajnoczi. KVM/QEMU Storage Stack Performance Discussion (PDF). ibm.com. Linux Plumbers Conference. 2010 [January 3, 2015]. [永久失效連結]
  19. ^ SeaBIOS. seabios.org. 2013-12-21 [2014-06-16]. 
  20. ^ 来自Ubuntu 7.04的授权信息/usr/share/doc/kvm/copyright
  21. ^ Interview: Avi Kivity 互联网档案馆存檔,存档日期2007-04-26. on KernelTrap英语KernelTrap
  22. ^ Red Hat Advances Virtualization Leadership with Qumranet, Inc. Acquisition. Red Hat. 4 September 2008 [16 June 2015]. 
  23. ^ Libby Clark. Git Success Stories and Tips from KVM Maintainer Paolo Bonzini. Linux.com. 7 April 2015 [17 June 2015]. 
  24. ^ 24.0 24.1 24.2 24.3 wiki.qemu.org – QEMU Emulator User Documentation, read 2010-05-06
  25. ^ Introducing Virgil - 3D virtual GPU for qemu. 2013-07-18. (原始内容存档于2013-07-25). 

书刊目录[编辑]

外部链接[编辑]