はじめに
メルハバ(こんにちは)、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')