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上で動作している通常のプロセスを指しています。