Gentoo Linux で qemu-kvm はじめました


 これまで VMware ESXi, Xen と試してみたが、Linux と親和性が高いと言われる仮想環境としては、他に RedHat が強くプッシュする KVM (+ QEMU) がある。KVM というと、Keyboard, Video and Mouse のほう、KVM 切替器を思い出してしまうが、今回は Kernel-based Virtual Machine のほうである。せっかく色々と試せるマシンもあるので、今回はこれを試してみた。

 KVM の特徴としては、

  • KVM は CPU + メモリ周り + ごく一部の I/O しかエミュレートしない。I/O 周りは QEMU などを組み合わせて使う。
  • 先にカーネルにマージされたこともあり、Xen より開発が活発。
  • ハイパーバイザ側、仮想側ともにバニラカーネルで動作する。
  • バニラカーネルで動作するので、使うハードウェアはバニラカーネルで動けば問題ない。(ここは基本的に Xen と同じ)
  • 基本的に完全仮想化だが、Virtio という I/O 周りの準仮想化ドライバも存在する。
  • Xen と同じく libvirt で管理可能。

あたりだろうか。バニラカーネルで動作するのは最新カーネルが動作するという意味で Xen に大して優位性があったが、Xen もカーネル 3.0 から正式に dom-0 向けの機能がマージされたので、ここは大きな優位性ではなくなった。

 そんな qemu-kvm をインストールしてみたわけだが、Gentoo ベースでも非常に簡単だった。今回は普段使っている開発環境を KVM ホストにしてみたのだが、VirtualBox などの他に Intel VT/AMD-V を使うものを使っていないのであればその Linux マシンで KVM を始めることができる。
 ただ、開発環境の CPU は Core 2 Quad Q8200 と Intel VT 非搭載の CPU だったので、今回は CPU を以前ゲーム用 Windows 機で使っていて今は家族の PC に搭載されていた Q6700 に換装して試してみた。

 RHEL6 系のディストリビューションの場合はおそらく最初から使えるようになっているはずだが、Gentoo Linux の場合はまず KVM を使えるようにカーネルの再構築が必要になる。

  • Processor type and features
    • Paravirtualized guest support
      • KVM paravirtualized clock
      • KVM Guest support
  • Virtualization
    • Kernel-based Virtual Machine (KVM) support
      • KVM for Intel processors support (CPU が Intel の場合)

あたりを指定すればいいと思われる。Virtualization 以下はモジュールにしておくと VirtualBox や VMware Workstation との共存がしやすくなるが、今回は他の仮想化ソリューションをこのマシンで使う予定はなかったので組み込んでしまった。

 カーネルの再構築とインストールが済んだら、あとは普通に再起動をすればよい。これでホスト側の準備が完了となる。次回は各インスタンス側のインストールに進む。