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 件のコメント:
コメントを投稿