Solaris10:Solaris10 5/09(u7) Live Upgrade
Solaris 10 10/09へのLive Upgrade手順はSolaris 10 10/09 Live Upgradeを参照してください。
Solaris10 10/08からSolaris10 5/09(u7)にLive Upgradeを利用して対してバージョンアップした。
既存ファイルシステムは全てZFS上で構成していた。またzoneもZFS上に構成していた。
目次 |
構成情報
- HW : BLADE2000
- Mem: 8GB
- CPU : Ultra SPACE III+ 1.2GHz
- HDD : 72GB x 2(c2t1d0, c2t2d0)
- zfs情報
# zfs list NAME USED AVAIL REFER MOUNTPOINT rpool 18.3G 48.6G 94K /rpool rpool/ROOT 10.1G 48.6G 18K legacy rpool/ROOT/s10s_u6wos_07b 10.1G 48.6G 5.85G / rpool/ROOT/s10s_u6wos_07b/var 4.29G 48.6G 4.29G /var rpool/dump 4.09G 48.6G 4.09G - rpool/export 38K 48.6G 20K /export rpool/export/home 18K 48.6G 18K /export/home rpool/swap 4.09G 52.7G 32.7M - zfs 251G 1.09T 113K /zfs zfs/zone 73.8G 1.09T 22K /zfs/zone zfs/zone/zone1 31.0G 1.09T 31.0G /zfs/zone/zone1
下準備
Live Upgradeを用いたバージョンアップには以下を行う必要が有る。
zone
zoneでlofsを利用していると, luupgrade実行時にエラーが発生する。lofsを一時的に外す設定が必要。 通常/usr/localを自由に使いたいユーザが多いと思うから、はまりどころと思われる。
# luupgrade -u -n s10s_u7wos_08 -s <CDROM> 42126 blocks miniroot filesystem is <lofs> Mounting miniroot at <<CDROM>/Solaris_10/Tools/Boot> Validating the contents of the media <<CDROM>>. The media is a standard Solaris media. The media contains an operating system upgrade image. The media contains <Solaris> version <10>. Constructing upgrade profile to use. Locating the operating system upgrade program. Checking for existence of previously scheduled Live Upgrade requests. Creating upgrade profile for BE <s10s_u7wos_08>. zoneadm: zone 'zone1': "/usr/lib/fs/lofs/mount /a/zfs/zone/zone1/usr-local /zfs/zone/zone1-s10s_u7wos_08/lu/a/usr/local" failed with exit code 33 zoneadm: zone 'zone1': call to zoneadmd failed ERROR: unable to mount zone <zone1> in </a> ERROR: unmounting partially mounted boot environment file systems ERROR: cannot mount boot environment by icf file </tmp/.luupgrade.beicf.25340> cat: cannot open /tmp/.luupgrade.tmp.25340 ERROR: Unable to mount ABE disk slices: < >. ERROR: Unable to mount the BE <s10s_u7wos_08>.
こうなってしまうと、ゴミが残ってしまうのでludeleteで強制削除。2度実施しないときれいにならない。
# ludelete s10s_u7wos_08 WARNING: Boot environment <s10s_u7wos_08> has one or more file systems mounted at </a>. ERROR: Unable to unmount file systems for boot environment <s10s_u7wos_08>. Unable to delete boot environment.
# ludelete s10s_u7wos_08 umount: warning: /.alt.tmp.b-eDg.mnt/zfs/zone/zone1-s10s_u7wos_08 not in mnttab umount: /.alt.tmp.b-eDg.mnt/zfs/zone/zone1-s10s_u7wos_08 not mounted Deleting ZFS dataset <zfs/zone/zone1-s10s_u7wos_08>. Deleting ZFS snapshot <zfs/zone/zone1@s10s_u7wos_08>. Determining the devices to be marked free. Updating boot environment configuration database. Updating boot environment description database on all BEs. Updating all boot environment configuration databases. Boot environment <s10s_u7wos_08> deleted.
lofsを無効化する前に対象zoneを止める
# zoneadm list -cv # zoneadm -z zone1 halt
lofsを一時的に無効化する。設定を確認する
# zonecfg -z zone1 export .... add fs set dir=/usr/local set special=/zfs/zone/zone1/usr-local set type=lofs end => lofsで/usr/localをマウントしている
lofsを一時的に無効化
# zonecfg -z zone1 zonecfg> remove fs zonecfg> exit
Live Upgrade
Live Upgradeのパッケージインストール
OS標準のLive Upgradeは古いので、バージョンアップする
# pkgrm SUNWlur SUNWluu # cd <cdrom>/Solaris_10/Tools/Installers # ./liveupgrade20 -nodisplay -noconsole
参照URL : http://sunsolve.sun.com/search/document.do?assetkey=1-9-72099-1
Live Upgradeを作成
lucreateコマンドでBE(Boot Environmentを作成)。 少々時間がかかる。
# lucreate -n s10s_u7wos_08 # lustatus Boot Environment Is Active Active Can Copy Name Complete Now On Reboot Delete Status -------------------------- -------- ------ --------- ------ ---------- s10s_u6wos_07b yes yes yes no - s10s_u7wos_08 yes no no yes - => 新しいBEが作成されている
BEのバージョンアップを実行
Solaris10 9/05(update7)にバージョンアップ 少々時間がかかる。
# luupgrade -u -n s10s_u7wos_08 -s <cdrom>
BE(Boot Environment)を切り替え & 再起動
普通にluactivateすると以下のエラーが出る。
# luactivate s10s_u7wos_08 /usr/sbin/luactivate: /etc/lu/DelayUpdate/: cannot create
環境変数を設定することで回避する。Known Issueの模様
# export BOOT_MENU_FILE="menu.lst" # luactivate s10s_u7wos_08
参照URL : http://docs.sun.com/app/docs/doc/819-6260/gigek?l=ja&a=view
再起動してBEを切り替える
# init 6 => 新しいBEでZFSで起動してくる。シャットダウンシーケンス中に起動ディスク等の変更が入る
後作業
データの移動
zoneのlofsを元に戻す
# zonecfg -z zone1 zonecfg> add fs zonecfg> set dir=/usr/local zonecfg> set special=/zfs/zone/zone1/usr-local zonecfg> set type=lofs zonecfg> end
不要になった既存環境の削除
# ludelete s10s_u6wos_07b # init 6