2013年 12月 12日
SUSE Linux 11 sp3 で KVM を使ってみた
SUSE + XEN で構築した経験があれば、それほど違和感なくVMの作成、起動、遮断などを Virt-Manager から行うことが出来るでしょう。
-XENとKVMのコマンドの違い-
基本的なよく使うコマンドはほとんど違いがありません。
xm create MyVM -> virsh start MyVM
xm shutdown MyVM -> virsh shutdown MyVM
xm destroy MyVM -> virsh destroy MyVM
xm list -> virsh list --all
xm console MyVM -> virsh console MyVM
です。create が start になる程度なので、XEN から KVM への乗り換えはあまり苦にはならないでしょう。ただ xm create/destroy コマンドはほぼ左手だけで文字数も少ないのに virsh 両手は5キャラなので、怠惰な私には両手使ってタイプするのは面倒だなぁという感じがしました。
それぞれのコマンドは --help を付けるとヘルプが出てくるので、参考にしてください。
ただし SLES11 に限らず、KVM 固有のバグのようなのですが virsh console コマンドはエラーになりました。どうも起動する xml ファイルに仮想テキスト端末の定義を追加すると直るようなので、ググって調べてみてください。それほど難しい作業ではないようです。
ちなみに Windows 7 には Novell VMDP 2.1 の仮想化ドライバを導入しました。NIC は qemm の realtek 100M 物を選んでインストールしましたが VMDP2.1 では XEN の様に専用のドライバは入らないようです。
実際のオペレーション
sleskvm:/etc # cd kvm/
sleskvm:/etc/kvm # ls
vm
sleskvm:/etc/kvm # cd vm
sleskvm:/etc/kvm/vm # ls <--- VM の定義ファイルはここ
sles11sp3.xml w732kvm.xml
sleskvm:/etc/kvm/vm # virsh list <-- 起動中のVMのリスト
Id Name State
----------------------------------------------------
3 sles11sp3 running
sleskvm:/etc/kvm/vm # virsh list --all <"-- all" を付けると停止中のものも表示
Id Name State
----------------------------------------------------
3 sles11sp3 running
- w732kvm shut off
sleskvm:/etc/kvm/vm # virsh start w732kvm <--- Windows 7 を起動してみた。
Domain w732kvm started
sleskvm:/etc/kvm/vm # virsh console sles11sp3 <--- virsh console はエラー
Connected to domain sles11sp3
Escape character is ^]
error: internal error cannot find character device (null)
sleskvm:/etc/kvm/vm # virsh shutdown w732kvm <--- シャットダウンしてみた
Domain w732kvm is being shutdown <--- ちゃんとシャットダウンした
sleskvm:/etc/kvm/vm # virsh destroy sles11sp3 <--- いきなりブチ!
Domain sles11sp3 destroyed
-自動起動-
自動起動は /etc/libvirt/qemu/autostart に /etc/kvm に作成された起動用 xml ファイルをコピーすることでホストが起動すると自動起動します。 virsh autostart MyVM コマンドで行うのが一番楽なようです。
sleskvm:/etc/kvm/vm # cd /etc/libvirt/qemu/
sleskvm:/etc/libvirt/qemu # ls
networks sles11sp3.xml w732kvm.xml
sleskvm:/etc/libvirt/qemu # virsh autostart sles11sp3 <-- autostart を指定
Domain sles11sp3 marked as autostarted
sleskvm:/etc/libvirt/qemu # ls
autostart networks sles11sp3.xml w732kvm.xml
sleskvm:/etc/libvirt/qemu # cd autostart
sleskvm:/etc/libvirt/qemu/autostart # ls <--- autostart ディレクトリが作られコピーされた。
sles11sp3.xml
-Windows7 でネットワークが切れる-
仮想化した Windows 7 では大きなファイルをネットワークからコピーしようとすると、いきなりネットワークが切れるという現象がありました。Windows 側からはRealtek Fast Nicと認識されているので、それ以上の速度が出るのか試してみたかったのですが、どうもダメなようです。

ちなみにデフォルトで使われた MAC Address の 52:54:00:xx:xx:xx は RealTek で登録されています。
仮想 sles11 では scp でファイルコピーしても問題がないし、カードは Realtek Fast Nic (100Mbps物) なのですが、100Mbps の上限の 11.5Mb/S 以上速度が出ているようなので、環境の問題ではなく Windows を KVM で仮想化したときの固有の問題のようです。

ちなみに Windows 7 仮想マシンには Novellの SUSE VMDP2.1 を導入しています。

※ 追記
この問題は VM の作成の際に QEMM 用 NIC を選ぶことで回避できました。
http://opensuse-man-ja.berlios.de/opensuse-html/cha.kvm.inst.html#sec.libvirt.inst.vmm

SUSE の VMDP も正しく認識されています。

-さてどのハイパーバイザーか-
このPCは Windows 8.1 で Hyper-V が動くようにしています。同じ環境で KVM と Hyper-V を動かしてみると、やはり「軽さ」に関しては KVM に分がありそうです。
機能の豊富さや導入のし易さについては KVM の方が新しさを感じます。導入自体はそれほど差はないのですが、実際に初めて仮想化に挑戦するにはXEN より KVM の方が敷居の低さがあります。
XEN と KVM を比べると、安定感は実績が高く、私には勝手知ってる XEN に分があります。KVM で Windows を動かすにはまだちょっと不安を感じました。特に SUSE Linux Enterprise Server 11 sp3 で「はじめてオマケでついてきた」KVM なので、お客様にはまだ XEN をお勧めすることになるでしょう。
RedHat では XEN をサポートしないのに対して、SUSE では XEN も KVM も両方選択できるという点は非常に底が広く、評価できる点です。
Windows 2019 Server を SUSE Linux 15 (SLES15)+KVM で仮想ドライバを使って最適な仮想化SUSE Linux 15 (SLES15) でKVM/XEN仮想環境をインストール
islandcenter.jp