Domain-0経由で仮想マシンにVNCで接続してみる
普段はDomain-Uの中にVNCをインストールして接続しているのですが、Xen3.3.1が原因なのか、Domain-UのWindowsXPにUltraVNCで接続するとマウスのカーソルがうまく動かず使いにくくなってしまいました。仕方がないので、直接Domain-U経由で仮想マシンの外から直接VNCで接続してみることにしました。*1
Xen3.1以降はsxpファイルで管理されるのですが、virshの使い方やフォーマットに慣れていないので旧式の設定ファイルに変更します。*2
対象Domain-Uを停止します。(winxp_wolfがvncもっさりになったうちの windows xp)
# virsh destroy winxp_wolf
sxpのファイルの情報を確認。uuidやmacアドレスなどを覚えておく。
# virsh dominfo winxp_wolf Id: - 名前: winxp_wolf UUID: 31b42c35-2d7b-7649-f7e0-d832f2f9d429 OS タイプ: hvm 状態: シャットオフ CPU: 1 CPU 時間: 1.5s 最大メモリー: 1048576 kB 使用メモリー: 1048576 kB Autostart: disable # grep mac /var/lib/xend/domains/31b42c35-2d7b-7649-f7e0-d832f2f9d429/* (mac 00:16:36:02:89:4b)
sxpファイルをバックアップ
# cd /var/lib/xend/domains # tar cvzf winxp.tgz ./31b42c35-2d7b-7649-f7e0-d832f2f9d429
対象Domain-Uの定義を削除
# virsh list --all Id 名前 状態 ---------------------------------- 0 Domain-0 実行中 1 centos_zappa ブロックされています - winxp_wolf シャットオフ # virsh undefine winxp_wolf ドメイン winxp_wolf の定義は削除されています
/etc/xen以下にxen3.0.x系までの定義を作成。先ほどのuuidとmacを忘れずに。
# vim /etc/xen/winxp_wolf.cfg name = "winxp_wolf" uuid = "31b42c35-2d7b-7649-f7e0-d832f2f9d429" maxmem = 1024 memory = 1024 vcpus = 1 builder = "hvm" kernel = "/usr/lib/xen/boot/hvmloader" boot = "c" pae = 1 acpi = 0 apic = 0 localtime = 1 on_poweroff = "destroy" on_reboot = "restart" on_crash = "restart" device_model = "/usr/lib64/xen/bin/qemu-dm" usbdevice = "tablet" sdl = 0 vnc = 1 #=> VNCを有効に vncunused = 0 vnclisten="0.0.0.0" #=> listenはオールカマー keymap = "ja" vncdisplay = "1" #=> vncdisplay番号が (vncポート5900 + vncdisplay)になるので1だと5901 disk = [ "file:/var/lib/xen/images/winxp_wolf.img,hda,w" ] vif = [ "mac=00:16:36:02:89:4b,bridge=xenbr0,script=vif-bridge" ] serial = "pty"
Domain-Uを起動
# xm create -f /etc/xen/winxp_wolf.cfg Using config file "/etc/xen/winxp_wolf.cfg". Started domain winxp_wolf
ポートスキャンしてvncのポートが開いているか確認
# nmap localhost -p 5900-5910 Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2009-06-09 02:22 JST Interesting ports on localhost (127.0.0.1): PORT STATE SERVICE 5900/tcp open vnc 5901/tcp closed vnc-1 5902/tcp closed vnc-2 5903/tcp closed vnc-3 5904/tcp closed unknown 5905/tcp closed unknown 5906/tcp closed unknown 5907/tcp closed unknown 5908/tcp closed unknown 5909/tcp closed unknown 5910/tcp closed unknown
VNC-Viewerを使って接続。hostname:{vncdisplay} の形式で接続します。Domain-0が 192.168.1.4 なら 192.168.1.4:1 とします。
Thanks!
これでまた快適になりました。ありがとう vnc, virsh. あとmanpagerもありがとう。
- Ultra VNC
- 第15章 virsh で仮想マシンを管理
- man xmdomain.cfg