KVMのアーキテクチャ

KVMのアーキテクチャの概要を説明します。

ここでは、ハイパーバイザ上で動作するOSをゲストOS, ハイパーバイザを操作するOSをホストOSとしています。

KVMの構成は大きく以下の2つに分けられます
  • KVMカーネルモジュール
  • KVM対応ハイパーバイザ(qemu-kvm)

ホストOSはqemuを用いて、ゲストOSのハードウェアをエミュレーションをしています。 ゲストOSの動作を高速化するために、ホストOSにロードされたKVMモジュールを介して、 エミュレーションを実行しています。 なお、ホストOSのKVMモジュールはIntel-VTx, AMD-Vをサポートしているハードウェアである必要があります。ゲストOSにKVM対応の準仮想化ドライバ(virtio)が組み込まれていることにより、ハードウェアの動作を高速化することができます。

KVMで仮想化を実現している構成は以下のようになっています。ユーザプロセスはホストOS上で動作している通常のプロセスを指しています。