トップQs
タイムライン
チャット
視点

Kernel-based Virtual Machine

ウィキペディアから

Kernel-based Virtual Machine
Remove ads

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

概要 作者, リポジトリ ...
Remove ads

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グラフィックインタフェースも含まれる。

Remove ads

歴史

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

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

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

内部構造

Thumb
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英語版を利用している。

Remove ads

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

さらに見る 種別, デバイス ...

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

Thumb
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のためのオープンソースの仮想化管理ツール。
Remove ads

ライセンス

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

関連項目

脚注・出典

Loading content...

外部リンク

Loading content...
Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads