KVMの分類って¶
仮想化の概念というか分類方法って色々記事があるけど、人によって微妙に異なるなぁと感じる。じゃあKVMってどの分類だと一番理解しやすいのなぁと考えた。まあ、 KVMのホワイトペーパー を読むのが一番なのだが、これに載っている、(最近流行のOSの仮想化技術に)共通するHypervisorモデルという図はXenがモデルで、これとの対比で出ているKVMの概念図だけではKVM Driverの位置づけの概念がどうも理解しにくい 1 。Linux Kernelって何に相当するんだ、と。で、以前買った、「仮想化技術 完全攻略ガイド」と「すべてわかる仮想化大全」と「UNIX magazine 2007年冬号」の仮想化特集を読み返してみた。うーん、やっぱり色々ある分類には当てはまらない。でもUNIX magazineのp.40 図3の仮想化システムのアーキテクチャの本文中の説明文を見る限りだと、KVMはこれに当てはまるんだよな。
(C)の方式では、ホストOSのデバイスドライバを利用するため、仮想化マシンモニタは多様なデバイスに対応可能になる。
ただ図をみると、仮想マシンモニタは実マシン上で動き、仮想マシンはその上で動くから、KVMとはどうも違う。単に、図が間違っているだけ? KVM自体はLinuxのユーザモードやカーネルモードのプロセスとも違い、新たな第三のゲストモードのプロセスなので、KVM自体のアーキテクチャ自体が新しいものと考えるのが妥当な気もする。まぁ、分類なんてそれだけで学問が出来てしまうくらいなので 2 、分類なんて新しい実装が出来ればその分だけ新しい系統樹の枝が出来るのかもしれないなぁ。どのレベルで分類するか、というのもあるし 3 。