nkjmkzk.net

powered by Kazuki Nakajima

ubuntu-10.04をXenのPVMとして作成する方法

先日公開されたubuntu-10.04 LTSはkernel-2.6.32を採用しており、かつ、pvopsが有効となっています。pvopsが有効になっているLinuxカーネルは同一のカーネルでベアメタル上、HVMとして、またPVMとして稼動することができます。なので今回はまずHVMとしてubuntuを作成し、それをPVMとして起動し直すという手法で進めてみます。環境は下記の通り。

  • Xen : Oracle VM Server 2.2.1 (Xen 3.4.0)
  • domU : ubuntu-10.04 x86_64

最初にubuntuをHVMとして作成します。これはubuntuのインストレーションISOファイルを使ってOracle VM Managerから作成できます。下図のような感じ。新しい紫のテーマが美しい。

スクリーンショット(2010-05-06 11.08.00)

ここはごく一般的な手順なので割愛します。

インストールが終わって再起動が完了したらネットワークまわりをセットアップしてdom0と通信できるようにします。疎通できるようななったら、ubuntuのカーネルとramdiskをdom0に転送します。

[root@ubuntu1004]# scp /boot/vmlinuz-2.6.32-21-generic dom0:/OVS/running_pool/ubuntu1004/
[root@ubuntu1004]# scp /boot/initrd.img-2.6.32-21-generic dom0:/OVS/running_pool/ubuntu1004/

転送が完了したら一旦ubuntuをシャットダウンします。そしてdom0側で仮想マシン定義ファイルをいじります。

[root@vmservero]# vi /OVS/running_pool/ubuntu1004/vm.cfg
*修正後
kernel = 'vmlinuz-2.6.32-21-generic'
ramdisk = 'initrd.img-2.6.32-21-generic'
root = '/dev/xvda1 ro'
disk = [
'file:/var/ovs/mount/4ED5C364C05246FE8AEE8C0E26D79ACF/running_pool/ubuntu1004/System.img,xvda,w',
]
keymap = 'en-us'
memory = '1024'
name = 'ubuntu1004'
on_crash = 'restart'
on_reboot = 'restart'
uuid = '6fc94c0b-d902-476c-4c8b-0dfd3dadb315'
vcpus = 4
vif = [
'type=netfront, mac=00:16:3E:14:73:5A, bridge=xenbr0',
'type=netfront, mac=00:16:3E:16:E5:F2, bridge=xenbr1',
]
vfb = [ 'type=vnc,vncunused=1,vnclisten=0.0.0.0,vncpasswd=' ]
*修正前
acpi = 1
apic = 1
builder = 'hvm'
device_model = '/usr/lib/xen/bin/qemu-dm'
disk = ['file:/var/ovs/mount/4ED5C364C05246FE8AEE8C0E26D79ACF/running_pool/ubuntu1004/System.img,hda,w',
]
kernel = '/usr/lib/xen/boot/hvmloader'
keymap = 'en-us'
memory = '1024'
name = 'ubuntu1004'
on_crash = 'restart'
on_reboot = 'restart'
pae = 1
serial = 'pty'
timer_mode = 0
uuid = '6fc94c0b-d902-476c-4c8b-0dfd3dadb315'
vcpus = 4
vif = ['type=ioemu, mac=00:16:3E:14:73:5A, bridge=xenbr0',
'type=ioemu, mac=00:16:3E:16:E5:F2, bridge=xenbr1',
]
vnc = 1
vncconsole = 1
vnclisten = '0.0.0.0'
vncpasswd = ''
vncunused = 1

そして仮想マシン(ubuntu)を起動します。起動後、lsmodコマンドでPVM特有のカーネルモジュールがロードされていることを確認します。

[root@ubuntu1004]# lsmod
Module                  Size  Used by
binfmt_misc             7960  1
ppdev                   6375  0
joydev                 11072  0
fbcon                  39270  71
tileblit                2487  1 fbcon
font                    8053  1 fbcon
bitblit                 5811  1 fbcon
xen_kbdfront            4249  0
softcursor              1565  1 bitblit
xen_fbfront             7225  2
fb_sys_fops             1611  1 xen_fbfront
sysimgblt               2547  1 xen_fbfront
sysfillrect             3949  1 xen_fbfront
xen_netfront           17890  0
syscopyarea             3640  1 xen_fbfront
lp                      9336  0
parport                37160  2 ppdev,lp
xen_blkfront           10697  3

逆に8139cpや8139tooといった物理NIC用のドライバはロードされていないことが確認できます。

例えば修正前の仮想マシン定義ファイルをhvm.cfg, 修正後をpvm.cfgとして保存しておけば起動するときにHVMとして起動するかPVMとして起動するか切り替えることが可能になります。仮想マシンそのものは同じもので。pvops、素敵ですね。

without comments

Written by 中嶋 一樹

5月 6th, 2010 at 11:35 am

Posted in Uncategorized

Tagged with , , ,

Leave a Reply