基于内核的虚拟机

基于内核的虚拟机英語:,縮寫為)是一种用於Linux內核中的虛擬化基礎设施,可將Linux內核轉化為一個虚拟机监视器。KVM于2007年2月5日被并入Linux 2.6.20核心中。[1]KVM需要支持硬件虚拟化拓展特性的处理器。[2]

KVM
在Arch Linux宿主机上使用QEMU/KVM运行NetBSD和OpenIndiana客户机的截图。
Arch Linux宿主机上使用QEMU/KVM运行NetBSDOpenIndiana客户机的截图。
原作者Qumranet
開發者开放虚拟化联盟(OVA)
当前版本
  • 1.2
源代码库
编程语言C
操作系统类Unix系统
平台ARMIA-64PowerPCS/390x86x86-64
类型虚拟机监视器
许可协议GNU GPLLGPL
网站www.linux-kvm.org

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

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

VirtIO半虚拟化 在Linux、OpenBSD、[10]FreeBSD、[11] NetBSD、[12]Windows上支持对部分设备的半虚拟化。这项特性支持半虚拟化的网卡、半虚拟化的磁盘控制器、[13]用于调整客户端内存使用的气球设备(Balloon device)和使用獨立計算環境簡單協議的VGA图形接口。

内部结构

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

KVM提供抽象的設備,但不模擬處理器。它開放了/dev/kvm接口,供使用者模式的主機使用:

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

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

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

授权

KVM的组件使用多个GNU协议授权:[16]

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

历史

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

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

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

图形管理工具

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

模拟硬件

分类设备
显示卡Cirrus CLGD 5446 PCI VGA卡,具有BochsVESA拓展的虚拟VGA卡[20],QXL顯示卡,使用Virgil作为虚拟3D CPU。[21]
外设组件互连标准i440FX主机及PCI桥PIIX3 [20];Intel Q35與ICH9。
输入设备PS/2键鼠[20],USB鍵鼠
声卡Sound Blaster 16、ENSONIQ AudioPCI ES1370Gravis Ultrasound GF1、CS4231A兼容设备[20],Intel HD Audio
以太网 网卡AMD Am79C970A (Am7990)、E1000(Intel 82540EM, 82573L, 82544GC)、NE2000、瑞昱RTL8139、Red Hat VirtIO
儲存裝置IDESATASCSISASNVMeUSB和VirtIO
看門狗計時器英特尔6300ESB或IB700
随机存取存储器介于50 MB与32 TB之间
中央处理器1 – 160 个CPU

另请参阅

参考文献

  1. . kernelnewbies.org. 2007-02-05 [2014-06-16]. (原始内容存档于2015-07-16).
  2. . [2018-08-14]. (原始内容存档于2020-11-25).
  3. . [2014-09-16]. (原始内容存档于2007-09-29).
  4. . [2014-09-16]. (原始内容存档于2007-09-29).
  5. . [2018-08-14]. (原始内容存档于2013-03-10).
  6. . [2007-05-27]. (原始内容存档于2020-11-25).
  7. . [2014-08-20]. (原始内容存档于2020-11-08).
  8. . Gnu.org. [2014-02-12]. (原始内容存档于2020-11-12).
  9. . Linux-kvm.org. [2014-02-12]. (原始内容存档于2020-11-25).
  10. . [2018-02-04]. (原始内容存档于2020-11-12).
  11. . [2012-10-29]. (原始内容存档于2020-09-29).
  12. . [2013-07-15]. (原始内容存档于2019-11-13).
  13. . linux-iscsi.org. 2012-08-07 [2012-08-12]. (原始内容存档于2020-06-05).
  14. Khoa Huynh; Stefan Hajnoczi. (PDF). ibm.com. Linux Plumbers Conference. 2010 [January 3, 2015].
  15. . seabios.org. 2013-12-21 [2014-06-16]. (原始内容存档于2020-12-09).
  16. 来自Ubuntu 7.04的授权信息/usr/share/doc/kvm/copyright
  17. Interview: Avi Kivity 页面存档备份,存于 on KernelTrap
  18. . Red Hat. 4 September 2008 [16 June 2015]. (原始内容存档于2020-09-25).
  19. Libby Clark. . Linux.com. 7 April 2015 [17 June 2015]. (原始内容存档于2016-03-15).
  20. wiki.qemu.org – QEMU Emulator User Documentation 页面存档备份,存于, read 2010-05-06
  21. . 2013-07-18 [2018-08-14]. (原始内容存档于2013-07-25).

书刊目录

  • Amit Shah. . lwn.net. 2016-11-02 [2017-02-10]. (原始内容存档于2020-11-25).

外部链接

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.