Solaris10:Solaris10 5/09(u7) Live Upgrade

提供:KinusatiWiki
移動: 案内, 検索

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

参考資料

個人用ツール