Xen 仮想マシン4台以上の起動

2007年4月12日(木)

4台の仮想マシンで快調に活躍していたXenサーバーに、開発用にWindowsServer2003が必要になったので、さっそくディスクイメージをコピーして起動(ライセンスはちゃんとしているので大丈夫)、なんて便利なんだろう、うんうん、と悦に入っていたところ

Error: Device 769 (vbd) could not be connected. Backend device not found.

おいおい、なんだよオープンソース版に4台までの制限はなかったよなぁ、
とググってみたところポピュラーなお話のようで単にループバックデバイスが足りないらしい。
CentOS4のデフォルトでは8個のようで、これを使い切ったらしい。
ふむふむとしらべていると、どの方のサイトも微妙に書いてあることが違う。カーネルパニックしたりして蒼くなりながら何とか解決したのでうちの環境限定での解決策をご紹介(かなり簡単)。

結局、下記の max_loop=32 を追加しただけ

# vi /etc/grub.conf または # vi /boot/grub/menu.lst

title CentOS-4.4 with Xen (2.6.16.33-xen_3.0.4.1)
root (hd0,0)
kernel /xen-3.0.4-1.gz dom0_mem=512M
module /vmlinuz-2.6.16.33-xen ro root=/dev/VolGroup00/LogVol00 max_loop=32
module /initrd-2.6.16.33-xen.img
※表示は改行しているかもですがmax_loopの行はmodule から始まる1つの行です

これで再起動すると、わらわらと /dev/loop* ができています。

私の環境
Domain0:CentOS4.4 カーネル2.6.16.33
CPU Xeon 物理X2/論理×8
メモリ4G

あんまり関係ないけど
DomainU:CentOS4.4×3/WindowsServer2003×2

Xen3.0による仮想サーバーの構築シリーズ その2

2007年3月23日(金)

ということで(?)、その2、起動編

ドメイン0用の設定をします(ドメイン0ってなに?って人は入門書をあたってみてね、でもまだあんまりいい本ないんだよね、苦労しました)

initrd の作成
# depmod 2.6.16.33-xen
# mkinitrd /boot/initrd-2.6.16.33-xen.img 2.6.16.33-xen
※作る位置は環境によって違うかも

起動時にXenカーネルで立ち上がるようにgrub.conf を書き換えます

# vi /etc/grub.conf
以下を追加
title CentOS-4.4 with Xen (2.6.16.33-xen_3.0.3.0)
root (hd0,1)
kernel /xen-3.0.4-1.gz
module /vmlinuz-2.6.16.33-xen_3.0.3.0 ro root=/dev/vm/Domain0
module /initrd-2.6.16.33-xen_3.0.3.0.img

追加した位置によって、default= の値を変えます(0オリジン)

書き換えたら自動起動の設定をして再起動

# chkconfig xend on
# chkconfig xendomains on
# reboot

再起動されたOSは見事Xenカーネルになって、xendもたちあがっています(多分)
で、ファイアーウォールが動いたままだとドメインUの動きにいろいろ不具合があったし、どうせドメイン0の表のNICは殺してしまうのでファイアーウォールも切りました。

# service iptables stop
# chkconfig iptables off

で、あとはばりばりドメインUを動かすサーバー起動編に続く...(いつ書くかわからないけど...)

Xen3.0による仮想サーバーの構築シリーズ その1

2007年3月21日(水)

データセンターにサーバーをごろごろ並べるのも、見栄え的にはかっこよくて良いのですが、コストがかかってしょうがないし、大体そんなアクセスのあるサーバーはないので最近話題のXenでトレンドに乗ってみよう、というのでXenを始めました。今では2台のサーバーに8つの仮想サーバーが仲良くかつ元気に同居しています。

ということで「その1」はインストール編
ちなみに、このシリーズはVT対応のXenについてのお話になります
例によってCentOS4.xです(Xeon3GHz・デュアルでHT込みで見た目8CPUという構成です)

まずは最新版のダウンロード(2007/3/21現在)・解凍
# wget http://bits.xensource.com/oss-xen/release/3.0.4-1/bin.tgz/xen-3.0.4_1-install-x86_64.tgz

# tar xzf xen-3.0.4_1-install-x86_64.tgz

インストーラは解凍した中のdistディレクトリに有ります

# cd dist

# ./install.sh

とやると、うちの標準セットのインストール状態ではブリッジ関係のライブラリがないと怒られます
Checking check_brctl:
*** Check for the bridge control utils (brctl) FAILED

ということで、あらかじめインストール
# yum install -y bridge-utils

で、気を取り直して再度インストーラ起動
# ./install.sh

Installing Xen from ‘./install’ to ‘/’…
- installing for hotplug-based system
- modifying permissions
All done.
Checking to see whether prerequisite tools are installed…
Xen CHECK-INSTALL 2006年 12月 1日 金曜日 15:06:34 JST
Checking check_brctl: OK
Checking check_hotplug: OK
Checking check_iproute: OK
Checking check_python: OK
Checking check_zlib_lib: OK
All done.

で、無事インストールは終了
「その2」はドメイン0起動編の予定