Solaris SUN Cluster: Live update

As I’ve recently tried the patching of a sun cluster with Zones/ZFS/global filesystem and everything running, I’ve noticed that not so much people have tried this, so I might share the experience here 😉

So read the complete article to see how it behaves 😉

Little word on the environment to be patched:

  • Global zones with UFS filesystems;
  • Zones on UFS with single pool and no separation between /var and /;
  • UFS Global filesystem inside the cluster;
  • Some UFS global are lofs mounted inside the zones;
  • SUN Cluster 3.2;
  • Solaris 10 Update 6;

I’ll not cover here the Live Upgrade to Update 8 but only the patching of update 6.

First of all, connect to both node and apply the following patches online:

  • 119254-72 (or newer)
  • 121428-13 (or newer)
  • 121430-43 (or newer)

Theses patchs will ensure that the latest fixes for Live update and for the patch* commands are applied.

Next, if not already done, it is recommended to edit the /etc/patch/pdo.conf and change the num_proc value to benefit from the parallel patching feature. Especially if you have a lot of zones! This will speed-up the patching process…

Then, edit the /etc/vfstab and comment every lines of Global filesystems. Add the same entries without the global flag next to them.

Now, we will split the UFS mirror of the root filesystems to make the live upgrade on the other side of the mirror:

  • metadetach d10 d12
  • metainit d80 -m d12
  • metadetach d30 d32
  • metainit d90 -m d32

Create the following file in /var/tmp:

 /:/dev/md/dsk/d80:ufs /var:/dev/md/dsk/d90:ufs

Then run the lucreate:

 lucreate -C /dev/dsk/c0t0d0s0 -c primBE -n altBE -M /var/tmp/luFS.list

This should run smoothly and you must end-up with something like:

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

Now, I’ll remove any IDR that’s lasting on the altBE environment, feel free to do it also or not:

 # for p in `showrev -p |grep IDR|cut -f 2 -d' '`; do luupgrade -T -n altBE $p; done

Copy you patches bundle into /var/tmp/ (mine is coming from a TLP generation). Install the patches on the freshly created environment:

 # cd /var/tmp/`uname -n`; luupgrade -t -n altBE -l /var/tmp/luerror.log -s . patch_order

Now, if the current node got failover failsystem, you must add the following step:

  • mkdir /altBE && lumount altBE /altBE
  • edit /altBE/etc/lu/ICF.1 and /altBE/etc/lu/ICF.2 and remove any references of a failover filesystem;
  • luumount altBE
  • edit /etc/lu/ICF.1 and /etc/lu/ICF.2 and do the same.

Now, you might recover the global flag inside the /etc/vfstab of the new environment:

  • mkdir /altBE; lumount altBE /altBE
  • vi /altBE/etc/vfstab
  • luumount altBE

Now, activate your new environment:

 # luactivate altBE

Reboot the node into clustered mode:

 # shutdown -i0 -g0 -y ok> boot -r

Wait now for LU to sync your zones and if everything is OK, evacuate the second node and do the same 😉


  • The edition of ICF files could be replaced by a /etc/lu/fs2ignore edit, but as this is not yet a supported feature, I don’t use it…
  • There is some problem with some release of SUN Cluster core patches together with quorum server, please check your patches’ readme files.
This entry was posted in Solaris. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *