2009年08月19日

Debian5(lenny)にXenを入れて複数NICを有効にする

 お盆休みに新サーバをいじっていました。ちょっと何日かハマッタので、今後のためにあと、検索でたどり着いてしまったひとのために記録しておきます。
 目標として、現在のDebian GNU/Linuxの最新の安定版にxenをaptで適用し、ネットワークカード2枚を認識させ、それぞれのIPに対してsshなどをできるようにするところまで。ちょっと長文になるかもしれません。

1.まずはaptでさくっとパッケージを入れてしまいます。
aptitude install xen-linux-system-2.6.26-2-xen-amd64 xen-tools linux-headers-2.6.26-2-common-xen bridge-utils debootstrap

(cf.Debian GNU/Linux 5.0(lenny)でXenしてみた。Domain-0=Debian5.0、Domain-U=Debian5.0 - 富士山は世界遺産)

2.NIC2枚差しのためのスクリプトを書きます。
ファイルは/etc/xen/scripts/network-multi-bridge。完全に丸写しです。(cf.2枚の物理 NIC それぞれにブリッジを割り当てる@Xen3.2 - TrashSUITE)
#!/bin/sh

COMMAND=$1
BRIDGE='/etc/xen/scripts/network-bridge'

case $COMMAND in
start)
  $BRIDGE start vifnum=0 netdev=eth0
  $BRIDGE start vifnum=1 netdev=eth1
  ;;
stop)
  $BRIDGE stop vifnum=0 netdev=eth0
  $BRIDGE stop vifnum=1 netdev=eth1
  ;;
status)
  $BRIDGE status vifnum=0 netdev=eth0
  $BRIDGE status vifnum=1 netdev=eth1
  ;;
*)
  echo "Usage: network-multi-bridge {start|stop|status}"
  exit 1
esac


3./etc/xen/scripts/network-multi-bridgeに実行権限を付与します。
root#chmod 755 /etc/xen/scripts/network-multi-bridge


4./etc/xen/xend-config.sxpを書き換えます。
(前略)
#(network-script network-bridge)
(network-script network-multi-bridge)
↑元々のnetwork-bridgeを無効にし、network-multi-bridgeを呼び出すようにします

中略
#(network-script network-dummy)
↑行頭に#をつけて無効に


5.システムを再起動します。
root#reboot


6.再起動したら、xenカーネルで起動していることを確認。
root#uname -a
Linux w3 2.6.26-2-xen-amd64 #1 SMP Fri Aug 14 10:19:53 UTC 2009 x86_64 GNU/Linux


7.DomainU作成のための設定ファイル記述。
場所は'/etc/xen-tools/xen-tools.conf'。
(cf.Debian GNU/Linux 5.0(lenny)でXenしてみた。Domain-0=Debian5.0、Domain-U=Debian5.0 - 富士山は世界遺産&2枚の物理 NIC それぞれにブリッジを割り当てる@Xen3.2 - TrashSUITE
(前略)
kernel = /boot/vmlinuz-2.6.26-2-xen-amd64
カーネルの設定。vmlinuz-以下は、uname -rで取得できる。

(中略)

dir = /home/xen
イメージの格納場所

(中略)

install-method = debootstrap
debootstrap-cmd = /usr/sbin/debootstrap
debootstrapを使用します

(中略)

##
# Disk and Sizing options.
##
#
size = 10Gb # Disk image size.
memory = 1024Mb # Memory size
swap = 1024Mb # Swap size
# noswap = 1 # Don't use swap at all for the new system.
fs = ext3 # use the EXT3 filesystem for the disk image.
dist = lenny # Default distribution to install.
image = sparse # Specify sparse vs. full disk images.
ディスクサイズ等のデフォルト設定。DomainUを実際に作成するときに指定できます。

(中略)

gateway = 192.168.0.1
netmask = 255.255.255.0
broadcast = 192.168.0.255
ネットワーク関係の設定

(中略)

kernel = /boot/vmlinuz-2.6.26-2-xen-amd64
initrd = /boot/initrd.img-2.6.26-2-xen-amd64
kernelは前にも出てきた気がするが、設定項目があったので記述しておく。

(中略)

arch = amd64
アーキテクチャの指定。64bit版はamd64。

(中略)

mirror = http://ftp.us.debian.org/debian/
ミラーの指定。ftp.jp.debian.orgの方がよかったかも

(中略)

#
# Filesystem options for the different filesystems we support.
#
ext3_options = noatime,nodiratime,errors=remount-ro
ext2_options = noatime,nodiratime,errors=remount-ro
xfs_options = defaults
reiser_options = defaults
デフォルトのまま


8.DomainUを作成します。
root# xen-create-image --ip 192.168.0.11 --hostname www --size 512Gb --memory 5120Mb

ディスクサイズによってはかなり時間がかかります。

9.DomainUの設定ファイルを書き換えます。
場所は/etc/xen/www.cfg(8.の例)
vif         = [
'ip=192.168.0.11,mac=00:16:3E:76:E4:08,bridge=eth0',
'ip=192.168.1.71,mac=00:16:3E:76:E4:09,bridge=eth1',
]

ネットワークの設定。(cf.2枚の物理 NIC それぞれにブリッジを割り当てる@Xen3.2 - TrashSUITE
keymap      = 'ja'

キーマップの設定。これをやっておかないと;が:になったりいろいろ面倒。(cf.非番のエンジニア : XEN Domain-U のキーボードマップを 106 キーに変える)
extra = 'xencons=tty clocksource=jiffies'

ログインと時計関係にバグ(?)があるみたいなので追記。
(cf.Domain-U:不具合の回避方法@)

10.DomainUを起動します。
root# xm create -c www.cfg


11.rootでDomainUにログインしたらrootのパスワードを設定。
www:~# passwd


12.aptをアップデート。
www:~# apt-get update
www:~# apt-get upgrade

※ここでサーバにアクセスできない場合は、/etc/resolv.confを確認。
nameserver 192.168.0.1

現時点ではeth1(192.168.1.71)は使えない。

13.sshをインストール。
www:~# aptitude install ssh


14.udevをインストール。
これを入れないとsshで接続したときに接続途中で固まる。(cf.XEN - Debian LennyでXEN(Domain0) - p0t)
www:~# aptitude install udev


15.ネットワークインターフェースの設定。
お決まりの /etc/network/interfacesの設定。
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

auto eth1
iface eth1 inet static
address 192.168.1.71
netmask 255.255.255.0
broadcast 192.168.1.255
# The primary network interface
auto eth0
iface eth0 inet static
address 192.168.0.11
gateway 192.168.0.1
netmask 255.255.255.0
broadcast 192.168.0.255


16.再起動します。
www:~# reboot

DomainUから切断されます。

17.domain-0が起動した際にxenも起動するようにします。
起動スクリプトは/etc/init.d/xend,/etc/init.d/xendomains。
xendomainsのデフォルトでは、/etc/xen/autoに入っている設定ファイルを読み込むことになっている。
/etc/xen/autoをmkdirし、シンボリックリンクを設置する。
root# mkdir /etc/xen/auto
root# ln -s /etc/xen/www.cfg /etc/xen/auto/

(cf.Xen - kohiWiki)
 起動スクリプトを有効にする作業はwebminで済ませた。

18.domain-0をreboot。domainUのsaveと起動を行うので時間がかかります。

19.domainUにsshで入ってタイムゾーンの設定
www# dpkg-reconfigure locales
dpkg-reconfigure tzdata


20.その他ユーザアカウントの作成やwebmin・Apache等のインストール。


追記:
★SSH接続クライアントにPoderosaを使っていますが、domain-0からdomainUにconsoleしてviでファイルを編集しようとすると中身がガタガタになります。PuTTYなら大丈夫。
★domainUは本当にすっきりしています。Perlやnslookupも入っていないのは流石にびっくり。nslookupは"aptitude install dnsutils"で入ります。
posted by 鯖缶 at 02:22 | Comment(0) | TrackBack(1) | ただいま開発中 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバック

XENの基本設定
Excerpt: Debian squeeze(DOM-0)にXENを導入した際の手順を紹介します(DOM-UもDebian squeezeを入れています)。
Weblog: インフラ技術の実験室
Tracked: 2011-07-31 21:57