2015年6月17日水曜日

Ubuntu 14.04とKVM

XenLinuxコンテナと仮想マシンを試してみましたが、今回はKVMです。
KVMはエミュレータのQEMUとLinuxカーネルの機能と
CPUの仮想化支援機能Intel VT(またはAMD-V)を利用した仮想環境です。
ハイパーバイザー型の完全仮想化なので、使い方はXenに近くなります。
ということで前回Xenをセットアップした環境
KVMを導入する事を前提とし、そこで記述した事については、ここでは省きます。

最初にKVMのインストールのために以下を実行します。
# apt-get install qemu-kvm

ところでゲストOSをインストールするためにXenと同様"virt-install"を使ったのですが、
WARNING  KVM acceleration not available, using 'qemu'
と表示されてしまいます。ゲストOSは動いているもののかなり遅い。
環境的にはVirtualBoxのようなホスト型と変わらないはずなので、
我慢できない速度というわけではありませんが。
で、"cat /proc/cpuinfo"の実行結果を見るとvmxが見当たりません。なんで?
いろいろ調べて、Xenサポートkernelを使っているとvmxが見えなくなることが分かりました。
なるほど、XenとKVMは実質的に排他なんですね。

ということでホストOSを再起動し、ブートローダーでXenなしの'Ubuntu'を起動します。
なおこれをデフォルトで起動するようにしたければ、
# chmod 644 /boot/grub/grub.cfg
してから設定ファイル"/boot/grub/grub.cfg"の
set default="Ubuntu GNU/Linux, with Xen hypervisor"
set default="Ubuntu"
に変更し、最後に以下を実行します。
# chmod 444 /boot/grub/grub.cfg

さて、再起動後に"kvm-ok"を実行すると今度は大丈夫そうなので、
やっとのことゲストOSのインストールをします。
Xenの時と同様に以下を実行します。
# mkdir -p /opt/kvm/<仮想マシン名>
# cd /opt/kvm/<仮想マシン名>
# virt-install --name <仮想マシン名> --ram <メモリサイズ(単位:MB)> --disk <仮想HDDとなるファイル名>,size=<仮想HDDのサイズ(単位:GB)> --cdrom=<インストールDVD(ISOイメージファイル or 物理ドライブのデバイスファイル)>
ゲストOSのセッティングはXenのときと同じで構いません。
またインストールに失敗したときに消すファイルは
"/etc/libvirt/qemu/<仮想マシン名>.xml"となります。

さて、ゲストOSの起動は
virsh start <仮想マシン名>
で行います。ゲストOSにシリアルコンソールを設定していれば
virsh console <仮想マシン名>
でコンソールに接続できます。
または起動時に
virsh start <仮想マシン名> --console
とすることでそのままログインできるようになります。

さてその他の設定をしておきましょう。ホスト側で
# virsh edit <仮想マシン名>
を実行するとXML形式のゲスト環境が変更できます。
例えばvcpuタグの値でCPU数が、memoryタグでメモリ容量が変更できます。
ゲストOSで使えるネットワークインターフェイスの追加は
# virsh attach-interface <仮想マシン名> bridge <ホストのインターフェイス名> --config
で、HDDの追加は
# virsh attach-disk <仮想マシン名> <ホストのブロックデバイスファイル> hdb --config
で可能です。
これらはゲストでeth1や/dev/sdbに割り当てられます。

XenとKVMは排他ではありますが、
ブートローダで起動するカーネルを切り替えるだけなので使い分けは可能です。
ではどちらがいいかというと、個人的にはKVMですかね。
実装速度や設定面では大きな差は見られませんが、
Xen環境だとIntel VTが必要なVirtualBoxも動かないのが痛いかな。

0 件のコメント:

コメントを投稿