Live UpgradeでSolarisをバージョンアップする

ZFS rootだとOSのLive Upgradeが非常に簡単になりました。

Solaris 10 U8以前からU9へバージョンアップする場合

OSのISOイメージを用意してマウントします。

# lofiadm -a /var/tmp/sol-10-u9-ga-sparc-dvd.iso
# mkdir /dvd
# mount -F hsfs /dev/lofi/1 /dvd

LiveUpgradeソフトウエアを新しいものに入れ替えます。pkgaddではなく、 専用のインストーラを使います。

# pkgrm SUNWlucfg SUNWlur SUNWluu
# cd /dvd/Solaris_10/Tools/Installers
# ./liveupgrade20

新しいBE (Boot Environment)を作ります。

# lucreate -n s10s_u9

状況を確認します。

# lustatus
Boot Environment           Is       Active Active    Can    Copy
Name                       Complete Now    On Reboot Delete Status
-------------------------- -------- ------ --------- ------ ----------
s10s_u8                    yes      yes    yes       no     -
s10s_u9                    yes      no     no        yes    -

U9からアップグレード時に自動的に登録プロセスが動くようになりまし たが、それを抑制するために以下のファイルを作っておきます。

# cat > /update.txt <<EOF
autoreg=disable
EOF

バージョンアップします。

# luupgrade -u -k /update.txt -n s10s_u9 -s /dvd

ブート環境を新しいBEに切り替えます。

# luactivate s10s_u9

状況を確認します。

# lustatus
Boot Environment           Is       Active Active    Can    Copy
Name                       Complete Now    On Reboot Delete Status
-------------------------- -------- ------ --------- ------ ----------
s10s_u8                    yes      yes    no        no     -
s10s_u9                    yes      no     yes       no     -

新しいBEを起動します。

# init 6

UFSルートをバージョンアップして、ついでにZFSルートへ移行する場合

UFSルートのシステムをZFSルートへ移行する場合、まず最初にZFSルート をサポートしたバージョンへアップグレードしたあと、ZFSルートへ移行し ます。

Solaris 10 U5からU7へバージョンアップする場合

U7のISOイメージを用意してマウントします。

# lofiadm -a /var/tmp/sol-10-u7-ga-sparc-dvd.iso
# mkdir /dvd
# mount -F hsfs /dev/lofi/1 /dvd

LiveUpgradeソフトウエアを新しいものに入れ替えます。

# pkgrm SUNWlucfg SUNWlur SUNWluu
# pkgadd -d /dvd/Solaris_10/Product SUNWlucfg SUNWlur SUNWluu

SVMからミラーを切離し、切離したディスクのスライス0にすべての容量を割当てます。

# format -d c1t1d0

切離したディスクにコピーを作成してバージョンアップします。

# lucreate -c s10s_u5 -n s10s_u7_ufs -m /:/dev/dsk/c1t1d0s0:ufs
# luupgrade -n s10s_u7_ufs -u -s /dvd
# setenv BOOT_MENU_FILE menu.lst
# luactivate s10s_u7_ufs
# init 0
ok setenv boot-device /pci@1f,0/pci@1/scsi@8/sd@1,0:a
ok boot

U7のISOイメージをもう一度マウントします。

# lofiadm -a /var/tmp/sol-10-u7-ga-sparc-dvd.iso
# mount -F hsfs /dev/lofi/1 /dvd

古いBEを削除します。

# ludelete s10s_u5

古いBEがあったディスクのスライス0にすべての容量を割当てます。

# format -d c1t0d0

ZFSプールを割り当てます。

# zpool create rpool /dev/dsk/c1t0d0s0

ZFSプールを確保したディスクにコピーを作成します。

# lucreate -n s10s_u7 -p rpool
# setenv BOOT_MENU_FILE menu.lst
# luactivate s10s_u7
# init 0
ok setenv boot-device disk net
ok boot

LiveUpgradeでアクティブではないBEにパッチを適用する

LiveUpgradeを使うとアクティブではないBEにパッチを適用できるので、 ダウンタイムはリブートしている間だけにすることができます。

# smpatch analyze
# smpatch download
# lucreate -n s10s_u7_20090524
# smpatch update -b s10s_u7_20090524
# luactivate s10s_u7_20090524
# init 6