Kernel-based Virtual Machine (KVM) は、Linuxカーネルハイパーバイザとして機能させるための仮想化モジュールである。Linuxカーネルのメインラインにバージョン2.6.20でマージされ、このカーネルは、2007年2月5日にリリースされた[1]。KVMは、VTAMD-Vなどのハードウェアの仮想化拡張を必要とする[2]。KVMは、他のオペレーティングシステム (OS) であるFreeBSD[3]illumos[4]にも、ローダブル・カーネル・モジュールの形態で移植されている。

KVM
ゲストOSのNetBSDOpenIndianaをホストOSのArch Linux上で動作させているQEMU/KVMのスクリーンショット
作者 Qumranet英語版
リポジトリ ウィキデータを編集
プログラミング
言語
C
対応OS Unix-like
プラットフォーム ARMIA-64PowerPCS/390x86x86-64
種別 仮想化
ライセンス GPL または LGPL
公式サイト www.linux-kvm.org
テンプレートを表示

KVMはもともとx86プロセッサ向けに設計されたが、後にS/390[5]PowerPC[6]IA-64ARM向けにも移植されている[7]

KVMは、Linux、BSD、SolarisWindowsHaikuReactOSPlan 9AROS Research Operating System[8]macOS[9]など、非常に幅広いゲストOSに対してハードウェア支援仮想化英語版を提供する。また、Android 2.2、GNU/Hurd[10](Debian K16)、Minix 3.1.2a英語版、Solaris 10 U3、Darwin 8.0.1などのOSや上記OSの新しいバージョンでは、何らかの制限の元で動作することが知られている[11]

さらに、KVMでVirtIO[12] APIを利用することで、Linux、OpenBSD[13]、FreeBSD[14]、NetBSD[15]、Plan 9[16]、WindowsのゲストOSに対して、準仮想化の機能も提供する。準仮想化対象には、準仮想イーサネットカード、ディスクI/Oコントローラー[17]、ゲストOSの仮想記憶管理の動作を変更するバルーンデバイス (balloon device)、SPICE英語版またはVMwareを使用したVGAグラフィックインタフェースも含まれる。

歴史

編集

KVMの開発は、テクノロジーのスタートアップであるQumranet英語版で、Avi Kivityにより始められた[18]。Qumranetは、2008年レッドハットに買収された[19]

KVMは、Linuxカーネルのメインラインにバージョン2.6.20でマージされた。このLinuxカーネルは、2007年2月5日にリリースされた[20]

KVMは、Paolo Bonziniによりメンテナンスされている[21]

内部構造

編集
 
KVM/QEMUによる仮想化環境の全体の概要[22]:3

KVM自体はエミュレーションは全く実行しない。そのかわりに、/dev/kvmインタフェースを公開することによって、ユーザースペースのホストが以下の機能を利用できるようにする。

  • ゲストVMのアドレス空間のセットアップ。ホストは、ゲストがメインOS内にブートストラップするために利用するファームウェアイメージ(通常、PCをエミュレートする時のカスタムBIOSである)も提供する必要がある。
  • ゲストのシミュレートされたI/Oをフィード。
  • ゲストのビデオディスプレイをシステムホストにマッピング。

Linuxでは、QEMUのバージョン0.10.1以降がユーザー空間のホストの1例である。QEMUは、ゲストをネイティブに近い速度で仮想化できる場合にはKVMを使うが、そうでない場合には、ソフトウェアのみのエミュレーションにフォールバックする[23]

内部では、KVMは、16ビットx86BIOSのオープンソース実装としてSeaBIOS英語版を利用している。

エミュレート対象ハードウェア

編集
種別 デバイス
ビデオカード Cirrus CLGD 5446 PCI VGAカード、Bochs VESA拡張を利用したダミーVGAカード[24]、VirtIO、QXL VGA
PCI I440FX or Q35
入力デバイス PS/2マウスおよびキーボード[24]
サウンドカード Sound Blaster 16英語版、ENSONIQ AudioPCI ES1370英語版 AC97、Gravis Ultrasound GF1英語版、CS4231A compatible[24]、HD Audio
イーサネット ネットワークカード AMD Am79C970A(Am7990英語版)、E1000(Intel 82540EM, 82573L, 82544GC)、NE2000英語版、Realtek RTL8139英語版、VirtIO
ウォッチドッグタイマー Intel 6300ESBまたはIB700
RAM 50 MB - 32 TB
CPU 1 – 160 CPU

グラフィカルな管理ツール

編集
 
libvirtはKVMをサポートしている
  • Kimchi英語版 – ウェブベースのKVM仮想化管理ツール。
  • Virtual Machine Manager – はKVMベースの仮想マシンの作成、編集、スタート、ストップに対応している。また、ホスト間でドラッグ・アンド・ドロップによるVMのライブまたはコールドマイグレーションもできる。
  • Proxmox Virtual Environment – KVMとLXCを含むオープンソースの仮想化管理パッケージ。ベアメタルのインストーラ、ウェブベースのリモート管理GUI、HAクラスタースタック、統合ストレージ (unified storage)、柔軟なネットワーク管理 (flexible network)、オプションの商用サポートがある。
  • OpenQRM英語版 – ヘテロジニアスなデータセンターのインフラストラクチャーを管理するための管理プラットフォーム。
  • GNOME Boxes – Linux上のlibvirtのゲストを管理するためのGNOMEインタフェース。
  • oVirt英語版 – libvirtを基盤に構築された、KVMのためのオープンソースの仮想化管理ツール。

ライセンス

編集

KVMの各部品は、以下のように様々なGNUライセンスでライセンスされている[25]

  • 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以降

関連項目

編集

脚注・出典

編集
  1. ^ Linux kernel 2.6.20, Section 2.2. Virtualization support through KVM”. kernelnewbies.org (2007年2月5日). 2014年6月16日閲覧。
  2. ^ KVM FAQ: What do I need to use KVM?
  3. ^ FreeBSD Quarterly Status Report: Porting Linux KVM to FreeBSD”. 2008年10月3日閲覧。
  4. ^ KVM on illumos”. 2011年11月15日閲覧。
  5. ^ Gmane - Mail To News And Back Again”. 2007年9月29日時点のオリジナルよりアーカイブ。2007年5月7日閲覧。
  6. ^ Gmane Loom Archived 2007-09-29 at the Wayback Machine.
  7. ^ KVM/ARM Open Source Project
  8. ^ KVM wiki: Guest support status”. 2007年5月27日閲覧。
  9. ^ Running Mac OS X as a QEMU/KVM Guest”. 2014年8月20日閲覧。
  10. ^ status”. Gnu.org. 2014年2月12日閲覧。
  11. ^ Guest Support Status - KVM”. Linux-kvm.org. 2014年2月12日閲覧。
  12. ^ An API for virtual I/O: virtio”. LWN.net (2007年7月11日). 2014年4月16日閲覧。
  13. ^ OpenBSD man page virtio(4)”. 2018年2月4日閲覧。
  14. ^ virtio binary packages for FreeBSD”. 2012年10月29日閲覧。
  15. ^ NetBSD man page virtio(4)”. 2013年7月15日閲覧。
  16. ^ plan9front”. 2013年2月11日閲覧。
  17. ^ SCSI target for KVM wiki”. linux-iscsi.org (2012年8月7日). 2012年8月12日閲覧。
  18. ^ Interview: Avi Kivity Archived 2007-04-26 at the Wayback Machine. on KernelTrap
  19. ^ Red Hat Advances Virtualization Leadership with Qumranet, Inc. Acquisition”. レッドハット (4 September 2008). 16 June 2015閲覧。
  20. ^ Linux kernel 2.6.20, Section 2.2. Virtualization support through KVM”. kernelnewbies.org (2007年2月5日). 2014年6月16日閲覧。
  21. ^ Libby Clark (7 April 2015). “Git Success Stories and Tips from KVM Maintainer Paolo Bonzini”. Linux.com. 17 June 2015閲覧。
  22. ^ KVM/QEMU Storage Stack Performance Discussion” (PDF). ibm.com. Linux Plumbers Conference (2010年). January 3, 2015閲覧。[リンク切れ]
  23. ^ SeaBIOS”. seabios.org (2013年12月21日). 2014年6月16日閲覧。
  24. ^ a b c wiki.qemu.org – QEMU Emulator User Documentation, read 2010-05-06
  25. ^ Ubuntu 7.04 /usr/share/doc/kvm/copyright からのライセンス情報

外部リンク

編集
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy