Gentoo Linux で kvm-qemu: Xen から kvm に移行しました


 ここ数ヶ月ほど kvm をいじっていたが、その結果を踏まえて Xen から kvm に移行することにした。ホストに Linux のみを使う前提だと Xen のメリットは

  • これまでの実績。
  • Linux 上で動作するのではなく、Xen ハイパーバイザ上で全てのドメインが動いている。
  • 準仮想化環境において共通のカーネルイメージを使用できる。
  • 遅ればせながら dom-0 向け機能がバニラカーネルにマージされた。

それに対して kvm は

  • 早い時期にカーネルにマージされた。
  • 開発の迅速さ。
  • ホストとなる Linux カーネル上で動作しているため、パワーマネジメントなどカーネルの機能を使える。
  • 各ゲストはホスト上では 1 プロセスとして見え、負荷や使用リソースを容易に観測できる。
  • VirtIO で準仮想化っぽいことも可能。

 アーキテクチャ的には Xen のほうがパフォーマンスロスは少ないと思っているが、「Flatlabs – 同じサーバで、XenとKVMのベンチマークをとって比較してみた。」にもあるように、特定環境では既に kvm のほうがパフォーマンスが高いというベンチマーク結果もある。

 また、動作状況をモニタリングするに当たり、ホスト環境にどれくらい負荷がかかっているかについては重要なファクターになるが、Xen の場合は dom-0 を観測するだけでは済まない。一方、kvm については、各ゲストがホスト上で 1 プロセスとして見えるため、全体の負荷はホスト全体の負荷として観測することができる。そのため、何も考えずに snmpd や ZABBIX, munin で監視が可能になるのは大きなメリットだろう。

 以上を踏まえ、我が家の自宅サーバは Xen から kvm に移行することにした。どうしてもこの手の移行作業には移行コストがかかるが、仮想環境で動作するゲストの数が少なかったこと、負荷もそう高くはなかったことから、kvm の検証に使っていた自宅開発環境に移行用ゲストを設置して対応したが、言うまでもなく移行コストには

  • 移行そのものにかかる手数(業務の場合は人件費などの諸費用も含む)、ハードウェア調達費用。
  • 移行にかかる機会費用。

の2通りあるので、業務で移行する場合は十分にメリットとコストを検討する必要があるのはいうまでもない。