2007年7月8日日曜日

[Solaris10]Zoneの作成 その2

Solaris10上にZone作成の第2弾

前回までの作業
  1.Zoneの作成(その1)

今回の作業
  ゾーンクローン機能を使用した、ゾーンのコピー構築

ここではすでに作成されているZoneをコピーして新規のZoneを作成する
何がいいって、アプリケーションを作成後にコピーをすれば、構築コストが非常に安くなる。


というわけで、実作業開始

1.コピー元のゾーン構成情報の出力


 ----状態の確認
 # sudo zoneadm list -cv
 ID NAME STATUS PATH
 0 global running /
 5 dpico01az running /opt/zone/dpico01az
 7 wpico01az running /opt/zone/wpico01az
 
 ----構成情報のexport
 # sudo zonecfg -z wpico01az export -f /var/tmp/wpico01az.cfg
 ----確認
 # ls -l /var/tmp/wpico01az.cfg
 -rw-r--r-- 1 root root 382 7月 8 19:43 /var/tmp/wpico01az.cfg


2.構成情報をコピー先情報に修正

----さっき出力したファイルを修正する

 zonepathとIP Addressを変更する
 zonepath=/opt/zone/wpico02az ← wpico01az
 set address=192.168.10.111  ← 192.168.10.111



 # sudo vi /var/tmp/wpico01az.cfg
 create -b
 set zonepath=/opt/zone/wpico02az     #wpico01az から修正
 set autoboot=true
 set pool=pool_default
 add inherit-pkg-dir
 set dir=/lib
 end
 add inherit-pkg-dir
 set dir=/platform
 end
 add inherit-pkg-dir
 set dir=/sbin
 end
 add inherit-pkg-dir
 set dir=/usr
 end
 add net
 set address=192.168.10.111       # 192.168.10.110 から修正
 set physical=iprb0
 end
 add rctl
 set name=zone.cpu-shares
 add value (priv=privileged,limit=25,action=none)
 end


3.クローンゾーンの構成ファイルの作成

 ----編集した構成ファイルを用いて、クローンゾーンを作成する
 # sudo zonecfg -z wpico02az -f /var/tmp/wpico01az.cfg
 
 ----情報確認
 新しいzoneの構成情報のみ作成されている
 # sudo zoneadm list -cv
 ID NAME STATUS PATH
 0 global running /
 5 dpico01az running /opt/zone/dpico01az
 7 wpico01az running /opt/zone/wpico01az
 - wpico02az configured /opt/zone/wpico02az


4.クローンゾーンの作成

 ----クローン元の停止
 停止しないでコピーしようとすると、怒られます。
 # sudo zoneadm -z wpico01az halt
   haltは良くないって?めんどうだったんだよー。
 
 ----確認
 # sudo zoneadm list -cv
 ID NAME STATUS PATH
 0 global running /
 5 dpico01az running /opt/zone/dpico01az
 - wpico01az installed /opt/zone/wpico01az
 - wpico02az configured /opt/zone/wpico02az
 
 ----時間測定しながらコピー
 # sudo timex zoneadm -z wpico02az clone wpico01az
 
 Cloning zonepath /opt/zone/wpico01az...
 
 real 15:07.80
 user 9.08
 sys 1:49.97


15分かかっているけど、ほとんどがIO待ちに費やされている。CPUが実質動作しているのは2分程度。
ディスク1本で動かしているから仕方ないか。。

5.クローンゾーンの起動

 # sudo zoneadm -z wpico02az boot
 
 ----zloginで確認
 # sudo zlogin -C wpico02az
 [Connected to zone 'wpico02az' console]
 
 [NOTICE: Zone booting up]
 
 
 SunOS Release 5.10 Version Generic_118855-36 32-bit
 Copyright 1983-2006 Sun Microsystems, Inc. All rights reserved.
 Use is subject to license terms.
 Hostname: wpico02az
 
 [以下中略]
 
 # ifconfig -a
 lo0:3: flags=2001000849 mtu 8232 index 1
  inet 127.0.0.1 netmask ff000000
 iprb0:3: flags=1000843 mtu 1500 index 2
  inet 192.168.10.111 netmask ffffff00 broadcast 192.168.10.255
 
で、クローン完成。。。。
1時間前後で、全部できちゃった。

6.アプリケーションの確認
起動をしても、apacheが起動しない。原因は2つあった。

  • dfコマンドで確認すると、NFSマウントポイントがなかった
  • apacheのバーチャルホストのIPがクローン元のままだった



 ----vfstabの確認
 # cat /etc/vfstab

 #device device mount FS fsck mount mount
 #to mount to fsck point type pass at boot options
 #
 /proc - /proc proc - no -
 ctfs - /system/contract ctfs - no -
 objfs - /system/object objfs - no -
 fd - /dev/fd fd - no -
 swap - /tmp tmpfs - yes -

 
クローンインストールすると、初期状態に戻ってるんだ。NFSのマウント情報を追加


 ----apacheのエラーログを確認
 [Sun Jul 8 15:42:22 2007] [notice] Apache configured -- resuming normal operations
 [Sun Jul 8 15:42:22 2007] [notice] Accept mutex: fcntl (Default: fcntl)
 Processing config directory: /usr/local/apache/conf/conf.d/*.conf
 Processing config file: /usr/local/apache/conf/conf.d/rev.home.ne.jp.conf
 Processing config file: /usr/local/apache/conf/conf.d/saguradafamilia.dip.jp.conf
 [Sun Jul 8 20:20:52 2007] [error] VirtualHost 192.168.10.110:0 -- mixing * ports and non-* ports with a NameVirtualHost address is not supported, proceeding with undefined results
 [Sun Jul 8 20:20:52 2007] [crit] (126)Cannot assign requested address: make_sock: could not bind to address 192.168.10.110 port 80

バーチャルホストのIPも変更してOSを再起動
再起動したらapacheも起動した。

成功!!


まとめ
 ゾーンコピー後に修正が必要となるファイル
  ・/etc/vfstab
  ・アプリケーション固有の設定ファイル

0 件のコメント: