tags: デスクトップ仮想化

今日はKVM+SPICE環境で仮想デスクトップごっこをしてみた

http://www.spice-space.org/

環境

  • 物理サーバ
  • Fedora 14 alpha
  • KVM環境、xorg-x11-drv-qxl, tunctl
  • 仮想デスクトップ
  • Fedora 13
  • xorg-x11-drv-qxl
  • クライアント環境

1.物理サーバ(1)

  1. 普通にFedora 14 alphaを入れる。KVMグループを入れておくと楽なのかも。
  2. インストール後ブリッジ接続ができるように設定変更して再起動。(インストール後1回目の再起動はrebootしても反応がないので強制リセットした)
  3. xorg-x11-drv-qxl, tunctlをインストールする

2.仮想デスクトップ(1)

  1. 物理サーバのvirt-managerで普通にFedora 13を入れる
  2. インストール後とりあえずvirt-managerからForce Offして落としておく

3.クライアント(1)

  1. Fedora 13用のSPICEリポジトリを追加して、yum install spicecする。

4.物理サーバ(2)

  1. 以下のスクリプトを/etc/qemu-ifupとして保存。
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
#!/bin/sh
set -x

switch=br0

if [ -n "$1" ];then
 /usr/bin/sudo /usr/sbin/tunctl -u `whoami` -t $1
 /usr/bin/sudo /sbin/ip link set $1 up
 sleep 0.5s
 /usr/bin/sudo /usr/sbin/brctl addif $switch $1
 exit 0
else
 echo "Error: no interface specified"
 exit 1
fi
  1. さっきShutdownした仮想サーバを以下のようにコマンドラインから起動
1
2
3
4
5
6
qemu-kvm -hda /root/f13.img -enable-kvm -m 768 -vga qxl ¥
-spice port=5930,disable-ticketing -name f13 ¥
-uuid XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX -rtc base=localtime ¥
-device virtio-net-pci,vlan=0,id=net0,mac=XX:XX:XX:XX:XX:XX,bus=pci.0 ¥
-net tap,vlan=0,name=hostnet0 -usb -device usb-tablet,id=input0 ¥
-device AC97,id=sound0

5.クライアント(3)

  1. 以下のコマンドでデスクトップに接続。接続時はまだ最大800x600の解像度しか出ない。
    1
    
    $ spicec --host <物理サーバのアドレス> --port <さっき指定したポート番号>
  2. ログインしたらrootになって、xorg-x11-drv-qxlをインストールして仮想デスクトップを再起動する
  3. 再起動後、画面が大きくなる。試したときは1024x768まで出せた。

で、やってみてどうだったか

  • いい感じだと思う。RDPのようなサクサク感がある。LAN環境であれば十分デスクトップとして使える。日本語入力も含めキー入力も問題なし(でも今回クライアント環境をVirtualBox上のFedora13でやったので[Ctrl]+[Alt]+[F2]とかがVirtualBox側に取られて結構なんだかであった。やっぱり仮想環境上でクライアントするのはいろいろ面倒くさいかもしれない)。
  • ムービーを流しながらウィンドウをドラッグすると少しもっさりする
  • 使用する帯域は大体目測で10KB/s〜2MB/s(80Kbps〜16Mbps)
  • 音も出てる。でも今回クライアント環境をVirtualBox上のFedora13でやったのでピッチが落ちててがっかりであった。Windowsクライアントでやればもっと幸せになれるかもしれない
  • USBリダイレクションはSPICEの仕様にはあるが、まだ実装されていないようだ あまりHOWTO的な文書がなくて環境を作るのに苦労したが結構満足度が高いのでこれからどんどん使ってみようかな!