Friday 3 August 2012

Solaris - Patching using Live Upgrade

Moving on from the last two blogs which involved creating and upgrading an Live Upgrade Boot Environment (BE) this blog covers how to patch an inactive BE.

I wanted to patch using the latest 10_Recommended patchset - so I downloaded the file and unzipped it into the /recommended directory.

I can patch in two different ways:

Option 1

# luupgrade -n u10p1 -s /install/10_Recommended/patches/ -t `cat /recommended/10_Recommended/patch_order`

Option 2

# ./installcluster -d -B u10p1 --<patch-key-found-in-the-README>

Having tested both methods Option 2 shows progress in the normal manner:

Applying 124457-02 (143 of 352) ... skipped
Applying 124630-42 (144 of 352) ... skipped
Applying 124939-04 (145 of 352) ... success
Applying 124997-01 (146 of 352) ... skipped


As opposed to Option 1 which gives a blow by blow report and you don't really know how many patches there are or how many that have been done.

There is a really good Oracle blog around this subject which can be found at:
https://blogs.oracle.com/bobn/entry/live_upgrade_survival_tips#lu-tip-8

NOTE: From what I've read the best way to patch a server running Zones is to use Option 1

CAUTION: When using Option 2 you will have to run a mini patch update (10 patches) on the live boot environment.

Option 1 Process (SPARC server)

1. Make sure the active BE has the LU patches applied, if not apply them as the lucreate will fail without them.

# patchadd 119254-84
# patchadd 121428-15
# patchadd 121430-84
# patchadd 141444-09
# patchadd 146578-06


NOTE: The patches are different for x86 servers see http://sysadmin-tips-and-tricks.blogspot.co.uk/2012/07/solaris-live-upgrade-installation.html for patches.

2. Create a new BE (mine is u10p1).
# lucreate -n u10p1


3. Copy over the 10_Recommended.zip file and unzip it (I copied it from my NFS SAN volume to /recommended. The unzip takes a while....).

4. Apply the prereq files to the active BE, 10 patches will be applied (pwd is /recommended/10_Recommended)
# ./installcluster --apply-prereq --s10patchset

4.Run the upgrade command against the offline BE using nohup so the process runs in the background
# nohup luupgrade -n u10p1 -s /recommended/10_Recommended/patches/ -t `cat /recommended/10_Recommended/patch_order` >> /recommended/10_Recommended/logfile &


5. Change and reboot to the new BE
# lucactivate u10p1
# init 6

6. Reapply the LU patches in the active BE
# patchadd 119254-84
# patchadd 121428-15
# patchadd 121430-80
# patchadd 141444-09
# patchadd 146578-06

Option 2 Process (SPARC server)

1. Make sure the active BE has the LU patches applied, if not apply them as the lucreate will fail without them.
# patchadd 119254-84
# patchadd 121428-15
# patchadd 121430-80
# patchadd 141444-09
# patchadd 146578-06

NOTE: The patches are different for x86 servers see http://sysadmin-tips-and-tricks.blogspot.co.uk/2012/07/solaris-live-upgrade-installation.html for patches.

2. Create a new BE (mine is u10p1).
# lucreate -n u10p1

3. Copy over the 10_Recommended.zip file and unzip it (I copied it from my NFS SAN volume to /recommended. The unzip takes a while....).

4. Apply the prereq files to the active BE, 10 patches will be applied (pwd is /recommended/10_Recommended)
# ./installcluster --apply-prereq --s10patchset

5. Patch the u10p1 BE (pwd is /recommended/10_Recommended) using nohup so that the process runs in the background
# nohup ./installcluster -d -B u10p1 --s10patchset >> logfile &

6. Change and reboot to the new BE
# lucactivate u10p1
# init 6

7. Reapply the LU patches in the active BE
# patchadd 119254-84
# patchadd 121428-15
# patchadd 121430-80
# patchadd 141444-09
# patchadd 146578-06

NOTE

My upgrades initially failed with the following error:

Patchadd is terminating.
Unmounting the BE <u10p1>.
The patch add to the BE <u10p1> failed (with result code <15>).


It turned out is was failing to patch the Instant Messaging service which had been installed during the "install everything" build process.

The fix is to remove the following packages prior to running the upgrade.

# pkgrm SUNWgnome-im-client
# pkgrm SUNWgnome-im-client-devel

There maybe a third package, if memory serves me correctly, so the best way to make sure you got all the packages is to run:

# pkginfo | grep SUNWgnome-im-

Remove any remaining packages 

No comments:

Post a Comment