Xenをはじめて使ってみた

Tsukasa OISHI

Xenをはじめて使ってみました。構築しているあいだ、ずっと「セン」と読んでいたのだけど「ゼン」と読むらしい。
Xenを使って、一台のサーバ上にふたつのOSを立ててそれぞれmaster、slaveのDBサーバにしてみました。ちなみにDomain0、DomainUともにOSはcentOS5.2を使います。

1.Xenのインストール

yum -y install kernel-xen xen

2./etc/grub.confのdefaultでXenカーネルを指定する。この例では2番目がXenなので、「1」を指定(最初なら0)。ついでに、ここでDomain0に割り当てるメモリ容量も指定します。kernelのところで最後にdom0_memで指定しているところがそうです。今回は128Mにしました。

default=1
timeout=5
splashimage=(hd0,0)/boot/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.18-92.1.10.el5)
        root (hd0,0)
        kernel /boot/vmlinuz-2.6.18-92.1.10.el5 ro root=/dev/md0
        initrd /boot/initrd-2.6.18-92.1.10.el5.img
title CentOS (2.6.18-92.1.10.el5xen)
        root (hd0,0)
        kernel /boot/xen.gz-2.6.18-92.1.10.el5 dom0_mem=128000
        module /boot/vmlinuz-2.6.18-92.1.10.el5xen ro root=/dev/md0
        module /boot/initrd-2.6.18-92.1.10.el5xen.img

3.再起動してunameなどでXenで機動していることを確認したら「xm list」で状態確認。

[root@silver ~]# xm list
Name                                      ID Mem(MiB) VCPUs State   Time(s)
Domain-0                                   0      125     1 r-----   2052.2

4.DomainUの作成

virt-install

ここでDomainUの識別名や割り当てるリソース、インストール先となるイメージファイル、インストールパッケージの取得先などを指定します。都度、表示される質問に答えれば設定できるので簡単です。

5.DomainUのOSのインストール
あとは通常のインストーラが機動します。

6.自動起動の設定
DomainUへのインストール後は、「xm create -c 識別名」でそれぞれのOSを起動できます。サーバの起動時に各DomainUも起動したいときは、/etc/xen/autoディレクトリの下に/etc/xenディレクトリ下にある各DomainUの設定ファイルのリンクを置きます。

ln -s /etc/xen/db1 /etc/xen/auto/db1

これで再起動すればauto下にリンクを置いたDomainUも自動で起動するようになります。起動しないときは、設定ファイルの中に以下の行を追加してみます。

vnc = 1
sdl = 0

これだけです。けっこう簡単でした。各DomainUはcoLinuxみたいにイメージファイルなので、他のハードウェアに移すことも簡単ですね。
というわけで、kaeruspoonのDBサーバはXenで構築しました。DBの振り分けはacts_as_readonlyableで対応。簡単すぎる。