YAMAGUCHI::weblog

噛み付き地蔵に憧れて、この神の世界にやってきました。マドンナみたいな男の子、コッペです。

Oracle VM Server 2.2.1でdom-Uを作る

はじめに

メルハバ(こんにちは)、Python界の叙々苑です。焼肉食べたい。さて、最近自宅のKVMばかりいじってたらOracle VM Server(Xen)で準仮想化環境作るときにはまったのでメモ。

ログ

isoファイルをNFSで公開

準仮想化で作る場合、virt-installでisoファイルを直接指定できないのでNFSで公開する必要がある。まずisoを読み取り専用でループバックマウント。

% sudo mkdir /mnt/iso
% sudo mount -o ro,loop /path/to/hoge.iso /mnt/iso

次に /mnt/iso をNFSで公開。簡単のため全公開。

% sudo vi /etc/exports
/mnt/iso *(rw,insecure,no_root_squash)
% sudo /etc/init.d/nfs start
Starting NFS services:                                     [  OK  ]
Starting NFS quotas:                                       [  OK  ]
Starting NFS daemon:                                       [  OK  ]
Starting NFS mountd:                                       [  OK  ]

iptablesの修正をしておく。簡単のためiptables停止。

% sudo /etc/init.d/iptables stop
Flushing firewall rules:                                   [  OK  ]
Setting chains to policy ACCEPT: filter                    [  OK  ]
Unloading iptables modules:                                [  OK  ]
virt-installでインストール開始

まずddコマンドでインストール先の仮想HDD用ファイル作っとく。スパースファイルで20GB作った。

% dd if=/dev/zero of=hoge.img bs=1G seek=20 count=0

KVMの時もそうだけど、virt-installコマンド楽過ぎ。

% sudo /usr/sbin/virt-install \
--paravirt \
--name hoge \
--file /OVS/running_pool/hoge/hoge.img \
--location nfs:fqdn.of.nfsserver.com:/mnt/iso \
--ram 4096 \
--vcpus 2 \
--nographics

これで普通にOSのインストールをすればいい。locationにNFSサーバ等を指定する際に、localhostを指定しているとマウント出来ない旨エラーが出ます。この設定はdom-Uから見たlocationなのでそうなりますね。

設定ファイルの変更

まずはdom-U側。自宅のKVMサーバ(Ubuntu 10.04 LTS)ではvirshも入れているのでvirsh editすればいいんだけど、素のOracle VM 2.2.1にはvirshは入っていない。仕方ないので、virt-installで作った設定ファイルをdom-U用のディレクトリに持ってきて必要な変更をする。

% sudo cp /etc/xen/hoge ./hoge.cfg
% sudo vi hoge.cfg
# Automatically generated xen config file
name = "hoge"
memory = "4096"
disk = [ 'file:/OVS/running_pool/hoge/hoge.img,xvda,w', ]
vif = [ 'mac=00:16:3e:78:a1:99, bridge=xenbr0', ]
uuid = "20957648-5214-184e-59a4-bee60eee4b88"
bootloader="/usr/bin/pygrub"
vcpus=2
on_reboot   = 'restart'
on_crash    = 'restart'
vfb = [ "type=vnc,vncunused=1,vnclisten=0.0.0.0:2,vncpasswd=oracle" ]

これでxmコマンドで起動。

% sudo /usr/sbin/xm create -c hoge.cfg

次にdom-0側。デフォルトだとdom-U側でいくらVNCの設定しても外からアクセスできないので、その辺を変更しておく。

% sudo vi /etc/xen/xend-config.sxp
(vnc-listen '0.0.0.0')