#contents

* 設計 [#p0aec1b7]

- [0] 共通 domain0
-- centos4
--- RAM 256MB
--- swap 2GB
--- eth0 192.168.1.2
- [1] Oracle 通常環境
-- ora1
--- RAM 1024MB
--- swap 1GB
--- HDD 15GB
--- eth0 192.168.1.11
-- ora2
--- RAM 768MB
--- swap 1GB
--- HDD 15GB
--- eth0 192.168.1.12
- [2] Oracle RAC 環境 ([1]とデュアルブート)
-- rac1
--- RAM 896MB
--- swap 1GB
--- HDD 15GB
--- HDD共有 5GB
--- eth0 192.168.1.21
--- eth1 192.168.10.21
-- rac2
--- RAM 896MB
--- swap 1GB
--- HDD 15GB
--- HDD共有 5GB
--- eth0 192.168.1.22
--- eth1 192.168.10.22

* CentOS 4.4 のインストール [#m2a4ac77]

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

 [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

* ソースコードからインストール [#xcc7ae73]

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

* カーネルの再構築 [#xb59b5cd]

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

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

- Device Drivers
-- Network device support
--- Dummy net driver support

にて 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 ではなくなっています。

- File systems
-- OCFS2 file system support (EXPERIMENTAL)

にて 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を無効にする [#y3535c97]

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

* /etc/grub.conf の設定 [#sf35a3bf]

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 で起動 [#eced992c]

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 の構築 [#c5426a6c]

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 の起動 [#z22f8097]

/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 でのネットワークの設定 [#mec9092e]

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

- /etc/sysconfig/network

 NETWORKING=yes
 HOSTNAME=ora1
 GATEWAY=192.168.1.1

- /etc/sysconfig/network-scripts/ifcfg-eth0

 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

- /etc/resolv.conf

 nameserver 192.168.1.1.1

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

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

* domU の timezone の設定 [#m50c39d6]

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

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

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

* domU の複製 [#t0856abe]

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つのブリッジインタフェースを作成 [#c55ca355]

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つのネットワークの動作確認 [#c8cf194b]

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

----
#comment

トップ   差分 履歴 リロード   一覧 検索 最終更新   ヘルプ   最終更新のRSS