February 09, 2008

[自分メモ]xen環境 ubuntu6.06 dapper上にdebian etch

ソフトウェア開発の過程では効率化のために
・開発・デバッグ用
・テスト用
・顧客向けデモ用
の様に、プロジェクトの中で複数のホストを用意したい場合がよくあります。
ただ、開発に使えるリソースは限られるため、要求に応じて複数台のマシンを用意、というわけにはなかなかいきません。
そんな時にXenは非常に便利です。
職場ではUbuntu6.06 dapper-server版の上に
・Ubuntu
・debian
・CentOS
など、色々なOSを載せて活用しています。
Domain0の設定、およびUbuntuをDomainUとして用いる場合の手順はこちら(英語)が参考になります。
以下はUbuntu6.06 dapper-server版をDomain0、debian etchをDomainUとして作成した時のメモです。

1. まず、Xen仮想マシンのイメージファイルの元をddコマンドで作成します。ここではルートパーティション10GBとswapパーティション1GBを作成します。
# dd if=/dev/zero of=root bs=1M count=10000
# dd if=/dev/zero of=swap bs=1M count=1000

2. 作成したイメージファイル上にファイルシステムを構築します。
# mkfs.ext3 root
# mkswap swap

3. ルートパーティション用イメージファイルをマウントし、debootstrapコマンドを用いてdebianのベースシステムをインストールします。
# mkdir mnt
# mount root mnt -o loop
# debootstrap etch mnt http://ftp.jp.debian.org/debian/

4. 作成したベースシステム上にモジュールファイルをコピーしておきます。(必須かどうかは不明)
# cp -a /lib/modules/2.6.19-4-server/ ./mnt/lib/modules/

5. 作成したベースシステム上のファイルを編集し、環境設定を行います。必要なのは
(1)etc/hostname
(2)etc/hosts
(3)etc/network/interfaces
(4)etc/fstab
あたりだと思います。(1)〜(3)は、作成したい仮想マシン環境に合わせて適切に設定します。
fstabの内容は以下の通り。
proc /proc proc defaults 0 0
/dev/sda1 / ext3 defaults,errors=remount-ro 0 1
/dev/sda2 none swap sw 0 0

6. イメージファイルをアンマウントします。
# umount mnt

7. DomainU起動用の設定ファイルを用意します。私の環境の場合は以下のファイルをxen00.cfgとして作成しました。
# Debian etch.
kernel = "/boot/vmlinuz-2.6.19-4-server"
ramdisk = "/boot/initrd.img-2.6.19-4-server"
builder='linux'
memory = 512
name = "xen00"
vcpus = 1
vif = [ '' ]
disk = [ 'file:/etc/xen/images/xen00.d/root,ioemu:sda1,w',
'file:/etc/xen/images/xen00.d/swap,ioemu:sda2,w',
]
root = "/dev/sda1 ro"
memory、nameは任意の値に設定できます。diskのパスはイメージファイルの場所に合わせて設定して下さい。

8. いよいよDomainUを起動します。
# xm create -c xen00.cfg
起動に成功した場合は、DomainUのコンソールに移行します。
起動メッセージに続いてログインプロンプトが表示されます。
起動直後は最小構成の状態です。
sshなど、必要なソフトはapt-getで別途インストールする必要があります。
xenコンソールからは、ctrl + ]で抜けることができます。
DomainUの起動・終了については、
$ man xm
を確認します。

以下は発生したトラブルです。

トラブルその1.
xenコンソール:
xm create -c
xm console
で操作したとき、viの動作がおかしい。
具体的には、コロン(:)のキーが使えないのです。これはコンソールエミュレータ(Poderosa)のせいなのかもしれませんが、原因がわかりませんでした。
とりあえずxenコンソールではnanoを使うことにしました。

トラブルその2.
sshログイン時
stdin is not a tty
と表示され、入力内容が表示されない。
どうやらudevをインストールする必要があるようです。
# apt-get install udev


トラブルその3.
udevインストール後、再起動するとネットワークインタフェースが起動しない。エラーメッセージは
SIOCSIFADDR: No such device

どうやら、udevが勝手にネットワークインタフェースの名前を変えてしまうようです。
# ifconfig -a
の内容に合わせて
/etc/network/interfacesの内容を書き換えるか、udevの設定ファイル/etc/udev/rules.d/z25_persistent-net.rulesを編集し、
# ifup インタフェース名
を実行する必要があります。

matssaku at 00:41│Comments(0)TrackBack(0)clip!Xen | Linux

トラックバックURL

この記事にコメントする

名前:
URL:
  情報を記憶: 評価: 顔