fbpx
维基百科

基于内核的虚拟机

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

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

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

在KVM上可以运行诸多客户操作系统,包括Linux的诸多发行版、BSD、SolarisWindowsHaikuReactOSPlan 9AROS研究操作系统英语AROS Research Operating System[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半虚拟化英语Paravirtualization 在Linux、OpenBSD、[10]FreeBSD、[11] NetBSD、[12]Windows上支持对部分设备的半虚拟化英语Paravirtualization。这项特性支持半虚拟化的网卡、半虚拟化的磁盘控制器、[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英语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英语Qumranet初创企业开始了KVM的研发工作[17],随后此公司于2008年被紅帽公司收购。[18]

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

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

图形管理工具

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

另请参阅

  • CloudStack英语CloudStack
  • 虚拟化软件对比英语Comparison of platform virtualization software
  • 内核同页合并英语Kernel same-page merging (KSM)
  • Lguest英语Lguest
  • libguestfs
  • libvirt
  • 开放虚拟化联盟
  • OpenNebula英语OpenNebula
  • OpenStack
  • oVirt英语oVirtoVirt
  • Vx32英语Vx32
  • Xen

参考文献

  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]. (原始内容于2015-07-16). 
  2. ^ KVM FAQ: What do I need to use KVM?. [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. ^ KVM wiki: Guest support status. [2007-05-27]. (原始内容于2020-11-25). 
  7. ^ Running Mac OS X as a QEMU/KVM Guest. [2014-08-20]. (原始内容于2020-11-08). 
  8. ^ status. Gnu.org. [2014-02-12]. (原始内容于2020-11-12). 
  9. ^ Guest Support Status - KVM. Linux-kvm.org. [2014-02-12]. (原始内容于2020-11-25). 
  10. ^ OpenBSD man page virtio(4). [2018-02-04]. (原始内容于2020-11-12). 
  11. ^ virtio binary packages for FreeBSD. [2012-10-29]. (原始内容于2020-09-29). 
  12. ^ NetBSD man page virtio(4). [2013-07-15]. (原始内容于2019-11-13). 
  13. ^ SCSI target for KVM wiki. linux-iscsi.org. 2012-08-07 [2012-08-12]. (原始内容于2020-06-05). 
  14. ^ Khoa Huynh; Stefan Hajnoczi. KVM/QEMU Storage Stack Performance Discussion (PDF). ibm.com. Linux Plumbers Conference. 2010 [January 3, 2015]. [永久失效連結]
  15. ^ SeaBIOS. 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英语KernelTrap
  18. ^ Red Hat Advances Virtualization Leadership with Qumranet, Inc. Acquisition. 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. ^ 20.0 20.1 20.2 20.3 wiki.qemu.org – QEMU Emulator User Documentation (页面存档备份,存于互联网档案馆), read 2010-05-06
  21. ^ . 2013-07-18 [2018-08-14]. (原始内容存档于2013-07-25). 

书刊目录

  • Amit Shah. Ten years of KVM. lwn.net. 2016-11-02 [2017-02-10]. (原始内容于2020-11-25). 

外部链接

  • 官方网站
  • Best practices for the Kernel-based Virtual Machine (页面存档备份,存于互联网档案馆), IBM, second edition, April 2012
  • , KVM Forum 2012, November 8, 2012, by Asias He

基于内核的虚拟机, 提示, 此条目的主题不是kvm切换器, 英語, kernel, based, virtual, machine, 縮寫為kvm, 是一种用於linux內核中的虛擬化基礎设施, 可將linux內核轉化為一個虚拟机监视器, kvm于2007年2月5日被導入linux, 20核心中, kvm需要支持硬件虚拟化拓展, 英语, hardware, assisted, virtualization, 特性的处理器, kvm在arch, linux宿主机上使用qemu, kvm运行netbsd和openind. 提示 此条目的主题不是KVM切换器 基于内核的虚拟机 英語 Kernel based Virtual Machine 縮寫為KVM 是一种用於Linux內核中的虛擬化基礎设施 可將Linux內核轉化為一個虚拟机监视器 KVM于2007年2月5日被導入Linux 2 6 20核心中 1 KVM需要支持硬件虚拟化拓展 英语 hardware assisted virtualization 特性的处理器 2 KVM在Arch Linux宿主机上使用QEMU KVM运行NetBSD和OpenIndiana客户机的截图 原作者Qumranet 英语 Qumranet 開發者开放虚拟化联盟 OVA 目前版本1 2源代码库git wbr kernel wbr org wbr pub wbr scm wbr virt wbr kvm wbr kvm wbr git编程语言C操作系统类Unix系统系統平台ARM IA 64 PowerPC S 390 英语 IBM ESA 390 x86 x86 64类型虚拟机监视器许可协议GNU GPL或LGPL网站www wbr linux kvm wbr orgKVM起初支持x86平台处理器并随后被移植到了S 390 英语 IBM ESA 390 3 PowerPC 4 和IA 64平台上 在3 9内核合并时也导入了ARM移植版 5 在KVM上可以运行诸多客户操作系统 包括Linux的诸多发行版 BSD Solaris Windows Haiku ReactOS Plan 9 AROS研究操作系统 英语 AROS Research Operating System 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半虚拟化 英语 Paravirtualization 在Linux OpenBSD 10 FreeBSD 11 NetBSD 12 Windows上支持对部分设备的半虚拟化 英语 Paravirtualization 这项特性支持半虚拟化的网卡 半虚拟化的磁盘控制器 13 用于调整客户端内存使用的气球设备 Balloon device 和使用獨立計算環境簡單協議的VGA图形接口 目录 1 内部结构 2 授权 3 历史 4 图形管理工具 5 模拟硬件 6 另请参阅 7 参考文献 8 书刊目录 9 外部链接内部结构 编辑 KVM QEMU环境的高级概述 14 3 KVM提供抽象的設備 但不模擬處理器 它開放了 dev kvm接口 供使用者模式的主機使用 设置客户虚拟机的地址空间 宿主机同样也需用户可用于引导进主操作系统的固件镜像 通常为模拟PC时的自定义BIOS 为客户机模拟I O 将客户机的视频显示映射回系统宿主机上 在Linux上 QEMU版本0 10 1及更新版就是一个用户层主机 QEMU使用KVM以近乎原生的速度虚拟化客户机 若无KVM的话则将仅使用软件模拟 KVM内部使用SeaBIOS 英语 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 英语 Qumranet 的初创企业开始了KVM的研发工作 17 随后此公司于2008年被紅帽公司收购 18 KVM被合并入Linux内核版本2 6 20的主流分支 于2007年2月5日发布 1 KVM现由保罗 邦齐尼 Paolo Bonzini 维护 19 图形管理工具 编辑 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卡 具有Bochs与VESA拓展的虚拟VGA卡 20 QXL顯示卡 使用Virgil 英语 Virgil software 作为虚拟3D CPU 21 外设组件互连标准 i440FX 英语 Intel 440FX 主机及PCI桥与PIIX3 英语 PIIX3 20 Intel Q35與ICH9 输入设备 PS 2键鼠 20 USB鍵鼠声卡 Sound Blaster 16 英语 Sound Blaster 16 ENSONIQ AudioPCI ES1370 英语 ES1370 Gravis Ultrasound GF1 英语 Gravis Ultrasound GF1 CS4231A兼容设备 20 Intel HD Audio以太网 网卡 AMD Am79C970A Am7990 英语 Am7990 E1000 Intel 82540EM 82573L 82544GC NE2000 瑞昱RTL8139 英语 RTL8139 Red Hat VirtIO儲存裝置 IDE SATA SCSI SAS NVMe USB和VirtIO看門狗計時器 英特尔6300ESB或IB700随机存取存储器 介于50 MB与32 TB之间中央处理器 1 160 个CPU另请参阅 编辑 自由软件主题 Linux主题 CloudStack 英语 CloudStack 虚拟化软件对比 英语 Comparison of platform virtualization software 内核同页合并 英语 Kernel same page merging KSM Lguest 英语 Lguest libguestfs libvirt 开放虚拟化联盟 OpenNebula 英语 OpenNebula OpenStack oVirt 英语 oVirtoVirt Vx32 英语 Vx32 Xen参考文献 编辑 1 0 1 1 Linux kernel 2 6 20 Section 2 2 Virtualization support through KVM kernelnewbies org 2007 02 05 2014 06 16 原始内容存档于2015 07 16 KVM FAQ What do I need to use KVM 2018 08 14 原始内容存档于2020 11 25 Gmane Mail To News And Back Again 2014 09 16 原始内容存档于2007 09 29 Gmane Loom 2014 09 16 原始内容存档于2007 09 29 KVM ARM Open Source Project 2018 08 14 原始内容存档于2013 03 10 KVM wiki Guest support status 2007 05 27 原始内容存档于2020 11 25 Running Mac OS X as a QEMU KVM Guest 2014 08 20 原始内容存档于2020 11 08 status Gnu org 2014 02 12 原始内容存档于2020 11 12 Guest Support Status KVM Linux kvm org 2014 02 12 原始内容存档于2020 11 25 OpenBSD man page virtio 4 2018 02 04 原始内容存档于2020 11 12 virtio binary packages for FreeBSD 2012 10 29 原始内容存档于2020 09 29 NetBSD man page virtio 4 2013 07 15 原始内容存档于2019 11 13 SCSI target for KVM wiki linux iscsi org 2012 08 07 2012 08 12 原始内容存档于2020 06 05 Khoa Huynh Stefan Hajnoczi KVM QEMU Storage Stack Performance Discussion PDF ibm com Linux Plumbers Conference 2010 January 3 2015 永久失效連結 SeaBIOS seabios org 2013 12 21 2014 06 16 原始内容存档于2020 12 09 来自Ubuntu 7 04的授权信息 usr share doc kvm copyright Interview Avi Kivity 页面存档备份 存于互联网档案馆 on KernelTrap 英语 KernelTrap Red Hat Advances Virtualization Leadership with Qumranet Inc Acquisition Red Hat 4 September 2008 16 June 2015 原始内容存档于2020 09 25 Libby Clark Git Success Stories and Tips from KVM Maintainer Paolo Bonzini Linux com 7 April 2015 17 June 2015 原始内容存档于2016 03 15 20 0 20 1 20 2 20 3 wiki qemu org QEMU Emulator User Documentation 页面存档备份 存于互联网档案馆 read 2010 05 06 Introducing Virgil 3D virtual GPU for qemu 2013 07 18 2018 08 14 原始内容存档于2013 07 25 书刊目录 编辑Amit Shah Ten years of KVM lwn net 2016 11 02 2017 02 10 原始内容存档于2020 11 25 外部链接 编辑官方网站 Best practices for the Kernel based Virtual Machine 页面存档备份 存于互联网档案馆 IBM second edition April 2012 Virtio blk Performance Improvement KVM Forum 2012 November 8 2012 by Asias He Wikibook QEMU amp KVM 取自 https zh wikipedia org w index php title 基于内核的虚拟机 amp oldid 70230137, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。