赤び~家のネットワーク環境はこのようになっています。
centos_i386 (CentOS 5.5 32bit環境) は必要に応じて起動しているのですが、ノートPCから VNC 経由で Domain-0 に接続している場合、VNC の設定の問題なのか「仮想マシンマネージャー」を使用することができていません。

サーバから直接 Domain-0 を操作している場合
# virt-manager

問題なく「仮想マシンマネージャー」が起動します。
赤び~の備忘録-20100605_01_Xen1

VNC 経由でDomain-0 を操作している場合
# virt-manager
Xlib: connection to "[サーバ名].[ドメイン名]:1.0" refused by server
Xlib: No protocol specified

Xlib: connection to "[サーバ名].[ドメイン名]:1.0" refused by server
Xlib: No protocol specified

Traceback (most recent call last):
File "/usr/share/virt-manager/virt-manager.py", line 376, in ?
_show_startup_error(str(run_e), "".join(traceback.format_exc()))
File "/usr/share/virt-manager/virt-manager.py", line 52, in _show_startup_error
import gtk
File "/usr/lib64/python2.4/site-packages/gtk-2.0/gtk/__init__.py", line 76, in ?
_init()
File "/usr/lib64/python2.4/site-packages/gtk-2.0/gtk/__init__.py", line 64, in _init
_gtk.init_check()
RuntimeError: could not open display

エラーが発生し「仮想マシンマネージャー」も起動しません。
この現象は root権限で起動する GUI アプリケーション全てで発生するようです。

ex.)「ソフトウェアの追加/削除」の例
# pirut
Xlib: connection to "[サーバ名].[ドメイン名]:1.0" refused by server
Xlib: No protocol specified

Unable to import modules. Maybe you're not running under X?

原因は調査していませんが、漠然と『画面の出力先に接続できないことが原因かな?』と考えています。


前置きが長くなってしまいましたが、上記理由により VNC 経由で Domain-U の起動や停止を行う場合はコマンドから行っています。
今回の記事は、普段使っている Xen コマンドの備忘録です。

1. 起動サーバのリスト表示

# xm list
Name ID Mem(MiB) VCPUs State Time(s)
Domain-0 0 768 1 r----- 154.5
centos_x86_64 1 2047 3 -b---- 10.3

2. 起動サーバの状況確認

# xm top

赤び~の備忘録-20100605_02_Xen2

3. Domain-U の起動

centos_i386を起動します。
# xm create centos_i386
Using config file "/etc/xen/centos_i386".
Started domain centos_i386

# xm list
Name ID Mem(MiB) VCPUs State Time(s)
Domain-0 0 662 1 r----- 267.4
centos_i386 2 1023 1 -b---- 16.1
centos_x86_64 1 2047 3 -b---- 11.8

4. Domain-U の起動 (コンソールあり)

centos_i386をコンソールありで起動します。
# xm create -c centos_i386

赤び~の備忘録-20100605_03_Xen3
最初に GRUB 画面が表示されます。
起動する kernel を選択すると、以下のような詳細メッセージが表示されて起動が完了します。
(メッセージの内容は環境により異なります)
Using config file "/etc/xen/centos_i386".
Started domain centos_i386
rtc: IRQ 8 is not free.
i8042.c: No controller found.
(*) コンソールから Domain-0 に戻る場合は、"Ctrl" + "]" キーを押してください。

5. Domain-U の停止

centos_i386を停止します。
# xm shutdown centos_i386

# xm list
Name ID Mem(MiB) VCPUs State Time(s)
Domain-0 0 662 1 r----- 289.7
centos_x86_64 1 2047 3 -b---- 12.2

6. Domain-U の再起動

centos_i386を再起動します。
# xm reboot centos_i386

7. 起動中の Domain-U のメモリサイズ変更

centos_i386のメモリサイズを1024MB→768MBに変更します。
# xm mem-set centos_i386 768

# xm list
Name ID Mem(MiB) VCPUs State Time(s)
Domain-0 0 662 1 r----- 446.1
centos_i386 5 767 1 -b---- 17.9
centos_x86_64 1 2047 3 -b---- 14.3

8. 起動中の Domain-U のCUP数変更

centos_x86_64のCPU数を3→2に変更します。
# xm vcpu-set centos_x86_64 2

# xm list
Name ID Mem(MiB) VCPUs State Time(s)
Domain-0 0 662 1 r----- 520.3
centos_i386 5 767 1 -b---- 17.9
centos_x86_64 1 2047 2 -b---- 15.5
*) CPU数の最大数は /etc/xen/ 配下にある各 Domain-U の設定ファイル依存します。

9. Domain-U のデフォルト値の変更

起動していない Domain-U のメモリサイズやCPU数を変更する場合は、各 Domain-U の設定ファイルを変更する必要があります。
(以下は centos_i386 の設定ファイルの例です。)
# less /etc/xen/centos_i386
name = "centos_i386"
uuid = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
maxmem = 1024
memory = 1024
vcpus = 1
bootloader = "/usr/bin/pygrub"
on_poweroff = "destroy"
on_reboot = "restart"
on_crash = "restart"
vfb = [ "type=vnc,vncunused=1,keymap=ja" ]
disk = [ "tap:aio:/xen/centos_i386.img,xvda,w" ]
vif = [ "mac=00:00:00:00:00:00,bridge=xenbr0,script=vif-bridge" ]

  maxmem : 最大メモリサイズ
  memory : 起動時のメモリサイズ
  vcpus : CPU数

[ END ]