qemuとkvm

kvmについて

・正式名称は「Kernel-based Virtual Machine」
Linuxカーネルのモジュール。
Linuxそのものをハイパバイザーにする。
KVMLinuxの仮想化支援機構。カーネル2.6.20以降から標準搭載されている。
KVMqemuと組み合わせることで完全仮想化に対応する。
・完全仮想化なのでハードウェアの仮想化も必要となる。
・ハードウェアの仮想化部分はCPUが肩代わりする方式をとっており、完全仮想化のオーバヘッドを軽減している。
・そのためKVMを動かすにはx86系のCPUの仮想化支援機能が必要。
KVMのゲストOSはホストOSから見ると、ひとつのプロセス。
KVMの実装にqemuが採用されている。

qemuについて

qemu仮想マシンエミュレータ
kvmが開発される前から存在していた。
qemuを実行できるCPUはx86およびPowerPC
・エミュレートできるCPUには制限がある。
kvmなしでもqemu単体で動作できる。そのためCPUの仮想化支援機構がなくても動作する。
・cpuをそのままエミュレートすると、性能が劇的に低下する。そこでqemuでは実cpuに仮想マシンのプログラムを動作させることで、実行速度を上げている。

コメント

どうやらqemu単体でも仮想環境の構築は可能。
それでも仮想CPUはそのまま動かすと、速度が低下する。
しかし、qemu+KVMだと、Linuxカーネルモジュールや実CPUを使うことで、仮想CPUを動作する負荷を低減できる。らしい。