設計

CentOS 4.4 のインストール

ディスクは次のように切っています。

[root@centos4 ~]# df -h
Filesystem          サイズ  使用  残り 使用% マウント位置
/dev/hda1             9.0G  7.5G 1009M  89% /
none                  129M     0  129M   0% /dev/shm
/dev/mapper/Volume00-ora1
                      15G   69M   14G   1% /opt/ora1
/dev/mapper/Volume00-ora2
                      15G   69M   14G   1% /opt/ora2
/dev/mapper/Volume00-rac1
                      15G   69M   14G   1% /opt/rac1
/dev/mapper/Volume00-rac2
                      15G   69M   14G   1% /opt/rac2
/dev/mapper/Volume00-racshare
                     4.9G   42M  4.6G   1% /opt/racshare

ソースコードからインストール

[root@centos4 Xen3.0]# tar xvpfz xen-3.0.4_1-src.tgz
...
[root@centos4 xen-3.0.4_1-src]# make world

カーネルの再構築

カーネルの定義内容を見直したいときは、作り直します。

dom0 ではネットワークインタフェースに dummy0 も使いたいので、 モジュールとして作るようにしておきます。

にて M にします。

[root@centos4 xen-3.0.4_1-src]# make linux-2.6-xen0-config CONFIGMODE=menuconfig
# make linux-2.6-xen0-build
# make linux-2.6-xen0-install
# depmod 2.6.16.33-xen0
# mkinitrd -v -f --with=sd_mod --with=scsi_mod /boot/initrd-2.6.16.33-xen0.img 2.6.16.33-xen0

domU では共有ディスク用に OCFS2 を使います。 raw device は kernel 2.6 ではなくなっています。

にて M にします。

[root@centos4 xen-3.0.4_1-src]# make linux-2.6-xenU-config CONFIGMODE=menuconfig
# make linux-2.6-xenU-build
# make linux-2.6-xenU-install
# depmod 2.6.16.33-xenU
# mkinitrd -v -f --with=sd_mod --with=scsi_mod /boot/initrd-2.6.16.33-xenU.img 2.6.16.33-xenU

tlsを無効にする

[root@centos4 ~]# mv /lib/tls /lib/tls.disabled

/etc/grub.conf の設定

dom0 用の設定を追記します。メモリを 256MB にしています。

default=0
timeout=5
splashimage=(hd0,0)/boot/grub/splash.xpm.gz
hiddenmenu
title CentOS dom0 (2.6.16.33-xen0)
        root (hd0,0)
        kernel /boot/xen-3.0.4-1.gz dom0_mem=262144
        module /boot/vmlinuz-2.6.16.33-xen0 root=/dev/hda1 ro console=tty0
        initrd /boot/initrd-2.6.16.33-xen0.img
title CentOS (2.6.9-42.0.8.EL)
        root (hd0,0)
        kernel /boot/vmlinuz-2.6.9-42.0.8.EL ro root=LABEL=/ rhgb quiet
        initrd /boot/initrd-2.6.9-42.0.8.EL.img
title CentOS-4 i386 (2.6.9-42.EL)
        root (hd0,0)
        kernel /boot/vmlinuz-2.6.9-42.EL ro root=LABEL=/ rhgb quiet
        initrd /boot/initrd-2.6.9-42.EL.img

dom0 で起動

grub のメニューで選んで起動します。 メモリは実メモリは2GBなのですが、 256MBに制限されていることがわかります。

[root@centos4 ~]# uname -r
2.6.16.33-xen0
[root@centos4 ~]# cat /proc/meminfo
MemTotal:       262496 kB
MemFree:         15960 kB
Buffers:          8776 kB
Cached:         102712 kB
SwapCached:      10692 kB
Active:         143448 kB
Inactive:        71116 kB
HighTotal:           0 kB
HighFree:            0 kB
LowTotal:       262496 kB
LowFree:         15960 kB
SwapTotal:     2096472 kB
SwapFree:      2048216 kB
Dirty:              28 kB
Writeback:           0 kB
Mapped:         128080 kB
Slab:            17220 kB
CommitLimit:   2227720 kB
Committed_AS:   247124 kB
PageTables:       2096 kB
VmallocTotal:   696312 kB
VmallocUsed:      1492 kB
VmallocChunk:   694792 kB

domU の構築

domU 用の swap を作ります。

[root@centos4 ~]# cd /opt
[root@centos4 opt]# dd if=/dev/zero of=ora1-swap.img bs=1M count=1024
[root@centos4 opt]# dd if=/dev/zero of=ora2-swap.img bs=1M count=1024
[root@centos4 opt]# dd if=/dev/zero of=rac1-swap.img bs=1M count=1024
[root@centos4 opt]# dd if=/dev/zero of=rac2-swap.img bs=1M count=1024
[root@centos4 opt]# for i in *.img
> do
> mkswap $i
> done
Setting up swapspace version 1, size = 1073737 kB
Setting up swapspace version 1, size = 1073737 kB
Setting up swapspace version 1, size = 1073737 kB
Setting up swapspace version 1, size = 1073737 kB

/opt/ora1 に CentOS 4.4 をインストールするため、 ディレクトリなどの準備をします。

[root@centos4 opt]# cd ora1
[root@centos4 ora1]# mkdir bin boot dev etc home initrd lib media misc mnt opt proc root sbin srv sys tmp usr var
[root@centos4 ora1]# mkdir -p var/lock/rpm
[root@centos4 ora1]# rpm --root /opt/ora1 --initdb
[root@centos4 ora1]# rpm --root /opt/ora1 --import http://ftp.riken.jp/Linux/centos/RPM-GPG-KEY-CentOS-4
[root@centos4 ora1]# mkdir -p var/cache/yum

/etc/fstab を書きます。 ディスクは後で sda1 と sda2 として見せるようにします。

[root@centos4 ora1]# cat etc/fstab
/dev/sda1               /                       ext3    defaults        1 1
none                    /dev/pts                devpts  gid=5,mode=620  0 0
none                    /dev/shm                tmpfs   defaults        0 0
none                    /proc                   proc    defaults        0 0
none                    /sys                    sysfs   defaults        0 0
/dev/sda2               swap                    swap    defaults        0 0

deviceファイルを作ります。

[root@centos4 ora1]# cd /opt/ora1/dev
[root@centos4 dev]# MAKEDEV -d /opt/ora1/dev -x console
[root@centos4 dev]# MAKEDEV -d /opt/ora1/dev -x null
[root@centos4 dev]# MAKEDEV -d /opt/ora1/dev -x zero
[root@centos4 dev]# MAKEDEV -d /opt/ora1/dev -x random

CentOS 4.4 を /opt/ora1 にインストールします。 DVD を入れて、/media/cdrom に mount しておきます。

[root@centos4 ora1]# mkdir  /media/cdrom
[root@centos4 ora1]# mount -o ro /dev/cdrom /media/cdrom
[root@centos4 ora1]# yum --disablerepo=\* --enablerepo=c4-media --installroot=/opt/ora1 groupinstall Base

domU でも /lib/tls は無効にしておきます。

[root@centos4 ora1]# mv lib/tls lib/tls.disabled

最後に、domU 用のカーネルモジュールを入れておきます。

[root@centos4 ora1]# cp -Rp /lib/modules/2.6.16.33-xenU lib/modules/

domU の起動

/opt/ora1 を umount したいところですが、うまくいきません。 /etc/fstab にて /opt/ora1 の mount を外して再起動します。

domU の設定ファイル /opt/ora1.conf を書きます。

kernel = "/boot/vmlinuz-2.6.16.33-xenU"
ramdisk = "/boot/initrd-2.6.16.33-xenU.img"
memory = 1024
name = "ora1"
vif = [ 'mac=XX:YY:ZZ:1F:63:CB, bridge=xenbr0' ]
disk = [ 'phy:Volume00/ora1,sda1,w', 'file:/opt/ora1-swap.img,sda2,w' ]
root = "/dev/sda1 ro"
extra = "4"

起動してみます。プロンプトが出て来れば成功です。

[root@centos4 opt]# xm create -c ora1.conf
...

CentOS release 4.4 (Final)
Kernel 2.6.16.33-xenU on an i686

localhost login:

domU でのネットワークの設定

Xen としての設定は済んでいるので、OS側での設定だけです。

NETWORKING=yes
HOSTNAME=ora1
GATEWAY=192.168.1.1
DEVICE=eth0
BOOTPROTO=static
BROADCAST=192.168.1.255
HWADDR=XX:YY:ZZ:1F:63:CB
IPADDR=192.168.1.11
NETMASK=255.255.255.0
NETWORK=192.168.1.0
ONBOOT=yes
TYPE=Ethernet
nameserver 192.168.1.1.1

ここまで書いたら、eth0 を有効にすることで使えるようになります。 domU を再起動してもいいでしょう。

[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# ./ifup eth0

domU の timezone の設定

groupinstall Base された状態では何も設定されていないので、 JST になりません。system-config-date をインストールします。

[root@localhost ~]# yum install system-config-date
[root@localhost ~]# /usr/sbin/timeconfig

timeconfig では Asia/Tokyo を選びます。

domU の複製

1つ動く環境ができたら、他の domU にもコピーして簡単に複製できます。mount しておいて、cp するだけです。

[root@localhost ~]# cp -Rp /opt/ora1/* /opt/ora2/

ホスト名やネットワークの設定を変えるのを忘れないようにしましょう。

あとは domU の設定ファイル /opt/ora1.conf をコピーして書き換えます。

同じように rac1 や rac2 も用意しました。 メモリの量なのですが、hypervisor が少々使うため、 上の設計通りにはいきません。xm list や xm info の出力を見て調整しましょう。

[root@localhost ~]# xm info

2つのブリッジインタフェースを作成

Oracle 10g RAC のように2つのネットワークが必要な場合、 ブリッジも2つ作る必要があります。

/etc/xen/scripts/my-network-bridge を作ります。 NIC が1枚しかないので、eth0 と dummy0 にしています。

#!/bin/sh

set -e

OP=$1

shift

script=/etc/xen/scripts/network-bridge

case ${OP} in
start)
        $script start vifnum=0 bridge=xenbr0 netdev=eth0
        $script start vifnum=1 bridge=xenbr1 netdev=dummy0
        ;;
stop)
        $script stop vifnum=0 bridge=xenbr0 netdev=eth0
        $script stop vifnum=1 bridge=xenbr1 netdev=dummy0
        ;;
status)
        $script status vifnum=0 bridge=xenbr0 netdev=eth0
        $script status vifnum=1 bridge=xenbr1 netdev=dummy0
        ;;
*)
        echo "Unknown command: ${OP}"
        echo "$0 : {start|stop|status}"
        exit 1
esac

実行権限を付けておきます。

[root@centos4 ~]# cd /etc/xen/scripts/
[root@centos4 scripts]# chmod 755 my-network-bridge

/etc/xen/xend-config.sxp を編集して、 network-bridge の代わりに my-network-bridge が呼ばれるように設定します。

#(network-script network-bridge)
(network-script my-network-bridge)

dummy0 を有効にするため、/etc/modprobe.conf に下記の2行を追記します。

alias dummy0 dummy

modprobe で読み込みます。

[root@centos4 ~]# modprobe dummy

dummy0 にも IP アドレスを振っておくため、 /etc/sysconfig/network-scripts/ifcfg-dummy0 を書いておきます。 HWADDR (MACアドレス) は要りません。

DEVICE=dummy0
BOOTPROTO=static
BROADCAST=192.168.10.255
# HWADDR=XX:YY:ZZ:1F:63:EA
IPADDR=192.168.10.2
NETMASK=255.255.255.0
NETWORK=192.168.10.0
ONBOOT=yes
TYPE=Ethernet

dummy0 を up にしておきます。

[root@centos4 network-scripts]# pwd
/etc/sysconfig/network-scripts
[root@centos4 network-scripts]# ./ifup dummy0

xend を再起動します。

[root@centos4 ~]# /etc/init.d/xend stop
[root@centos4 ~]# /etc/init.d/xend start

brctl で見ると、2つブリッジが出来ていることがわかります。

[root@centos4 ~]# brctl show
bridge name     bridge id               STP enabled     interfaces
xenbr0          8000.feffffffffff       no              peth0
                                                        vif0.0
xenbr1          8000.feffffffffff       no              pdummy0
                                                        vif0.1

2つのネットワークの動作確認

rac1 と rac2 のそれぞれの domU にて、 eth0 と eth1 の設定をします。

[root@rac1 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=static
BROADCAST=192.168.1.255
HWADDR=XX:YY:ZZ:1F:63:DA
IPADDR=192.168.1.21
NETMASK=255.255.255.0
NETWORK=192.168.1.0
ONBOOT=yes
TYPE=Ethernet
[root@rac1 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
BOOTPROTO=static
BROADCAST=192.168.10.255
HWADDR=XX:YY:ZZ:1F:63:DB
IPADDR=192.168.10.21
NETMASK=255.255.255.0
NETWORK=192.168.10.0
ONBOOT=yes
TYPE=Ethernet

rac2 も同様です。

これで domU を再起動すると、無事2つのネットワークができました。 ping して確認しましょう。

[root@rac1 ~]# ping 192.168.1.22
PING 192.168.1.22 (192.168.1.22) 56(84) bytes of data.
64 bytes from 192.168.1.22: icmp_seq=0 ttl=64 time=0.729 ms
64 bytes from 192.168.1.22: icmp_seq=1 ttl=64 time=0.224 ms

--- 192.168.1.22 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 999ms
rtt min/avg/max/mdev = 0.224/0.476/0.729/0.253 ms, pipe 2
[root@rac1 ~]# ping 192.168.10.22
PING 192.168.10.22 (192.168.10.22) 56(84) bytes of data.
64 bytes from 192.168.10.22: icmp_seq=0 ttl=64 time=0.293 ms
64 bytes from 192.168.10.22: icmp_seq=1 ttl=64 time=0.221 ms

--- 192.168.10.22 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1007ms
rtt min/avg/max/mdev = 0.221/0.257/0.293/0.036 ms, pipe 2


トップ   差分 履歴 リロード   一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2011-01-29 (土) 15:27:48