2007/04/22

ubuntu 7.04でXenを試す

ubuntu 7.04の配付が開始されたので、Xenを試してみました。
空いていたamd64なPCに7.04 x86_64版のDesktopを導入してから、とりあえずいくつか必要そうなパッケージをapt-getで導入しました。

$ sudo apt-get install bridge-utils xen-tools xen-utils xen-image-2.6.19-4-generic-amd64

まずはイメージの作成

Webサイトを参考にしつつ、導入されているxen関連と思われるパッケージからコマンドを探って行きました。
まず眼をつけたのが"xen-create-image"コマンド。 manで調べると、"xt-install-image", "xt-customize-image", "xt-create-xen-config"の処理をまとめてくれるらしい。
とりあえず試すだけなので、イメージの作成はこれを使うことにしました。 manを見ながらも、足りないオプションは催促されるので、出力されるメッセージを良く読むこと。

$ sudo xen-create-image --hostname xen01 --debootstrap --ip 192.168.1.8
しかし、このままだと/boot以下にカーネルイメージがないといったエラーがでてしまう。 どうやら /etc/xen-tools/xen-tools.conf のデフォルト指定が /boot 以下にないファイルを指定しているようだったので、この中の"kernel="と"initrd="の指定先にapt-getで導入したxen用のイメージを指定する。
kernel = /boot/vmlinuz-2.6.19-4-generic-amd64
initrd = /boot/initrd.img-2.6.19-4-generic-amd64
この状態ではまだ"xen-create-image"がエラーになる。xen-tools.confで"dir = "の指定がないと失敗するようです。

ここまでで作成したxen-tools.confの内容。

$ sed -e '/^#/d' -e '/^$/d' /etc/xen-tools/xen-tools.conf
dir = /home/xen
size   = 4Gb      # Disk image size.
memory = 128Mb    # Memory size
swap   = 128Mb    # Swap size
fs     = ext3     # use the EXT3 filesystem for the disk image.
dist   = etch     # Default distribution to install.
image  = sparse   # Specify sparse vs. full disk images.
kernel = /boot/vmlinuz-2.6.19-4-generic-amd64
initrd = /boot/initrd.img-2.6.19-4-generic-amd64
mirror = http://ftp.us.debian.org/debian/
これで再び"xen-create-image"を指定する。 今度は最後まで実行され、無事にイメージが作成できたようだ。

続いてブート

"xen-create-image"コマンドに"--boot"オプションを指定すれば、そのまま起動するようだったけれど、手動で起動してみる。 手動の方法はXenについての古いドキュメントを参考にした。

$ sudo xm create -c /etc/xen/xen01.cfg
...
Error: Device 0 (vif) could not be reconnected. Hotplug scripts not working. 
最後のエラーはまったく困ってしまった。
いろいろ調べてみると、どうやらvifはネットワークをブリッジさせるために使われるという事がわかった。 このメッセージの対処方として、"bridge-utils"をapt-getで導入する、というものがあった。 既に入っているというのに困ったな…。

ネットワーク回りの設定

もう少し"vif"を調べてみると、/etc/xen/xend-config.sxpファイルにbridge networkについて設定があるらしい。 さっそく調べてみると、ascii artでnetwork bridgeの説明がある。 うーん、そっか僕のPCにはNICが合計で3枚付いているから、eth0が普通の役割を果していないんだ。

さっそく設定を変更する。どうやらこれはリスタートで反映されるらしい。 いやxend-config.sxpファイルをみていると、いろいろできそうだから、反映の方法はあるんだろうな。

### (network-script network-dummy)
(network-script network-bridge)
(network-script 'network-bridge netdev=eth2')

再び起動

さて気をとりなおして、起動してみる。

$ sudo xm create -c /etc/xen/xen01.cfg

Debian GNU/Linux 4.0 xen110 tty1

xen110 login: 
これで、ひとまずは成功かな。 IDはrootでパスワードなしでログインができます。

0 件のコメント: