基於內核的虛擬機器(英語:Kernel-based Virtual Machine,縮寫為KVM)是一種用於Linux內核中的虛擬化基礎設施,可將Linux內核轉化為一個虛擬機器監視器。KVM於2007年2月5日被併入Linux 2.6.20核心中。[1]KVM需要支援硬件虛擬化拓展英語hardware-assisted virtualization特性的處理器。[2]

Quick Facts 原作者, 開發者 ...
KVM
Thumb
Thumb
Arch Linux宿主機上使用QEMU/KVM執行NetBSDOpenIndiana客戶機的截圖。
原作者Qumranet英語Qumranet
開發者開放虛擬化聯盟(OVA)
目前版本
  • 1.2
編輯維基數據連結
原始碼庫 編輯維基數據連結
程式語言C
作業系統類Unix系統
平台ARMIA-64PowerPCS/390英語IBM ESA/390x86x86-64
類型虛擬機器監視器
特許條款GNU GPLLGPL
網站www.linux-kvm.org
Close

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圖形介面。

內部結構

Thumb
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]

圖形管理工具

Thumb
libvirt支援KVM
  • Kimchi英語Kimchi (software) – 網頁版KVM虛擬化管理工具
  • Virtual Machine Manager – 支援建立、編輯、啟動與停止基於KVM的虛擬機器,同時也支援對宿主之間的即時或冷拖拽虛擬機器遷移。
  • Proxmox虛擬環境 – 一項開源的虛擬化管理包,包括KVM與LXC。同時它還有裸機安裝器、網頁版遠端管理介面、HA叢集堆疊、統一儲存、柔性網絡及可選的商業支援。
  • OpenQRM英語OpenQRM – 用於管理不同數據中心基礎設施的平台。
  • GNOME 機櫃 – Linux上用於管理libvirt客戶機的Gnome介面。
  • oVirt英語oVirt – 用於管理基於libvirt的KVM開源工具。

模擬硬件

More information 分類, 裝置 ...
分類 裝置
顯示卡 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
Close

另請參閱

參考文獻

書刊目錄

外部連結

Wikiwand in your browser!

Seamless Wikipedia browsing. On steroids.

Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.

Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.