Sunday, April 29, 2012

Live Upgrade together with smpatch

Integration of smpatch and liveupgrade is a powerful and great combination.
It eliminates risks and reduces downtime inherent to the patching activity.
Together with ZFS, smpatch and liveupgrade turn it all peace-of-cake.
Going straight, while the system is fully operational:

  • Make sure you have the latest LU patch (121430 for SPARC, 121431 for x86);
     
    # smpatch download -t -f -i 121430 | head
     

    Note the latest level (81 in this example) printed on the first line and use it next:
     
    # smpatch download -i 121430-81
    # smpatch add -i 121430-81

      
  •  Prepare /etc/lu/synclist accordingly; see synclist(4).
     
  • Create a new alternate boot environment (ABE);
    (if only the initial unamed BE exists, add the -c option to give it a name)
     
    # lucreate -n be-2012-may-u1
    # lustatus

     
      
      
  • Perform off-line patching operations to this new ABE;
    (the undocumented -C option works around a bug: operation not fully off-line)
     
    # smpatch analyze > /tmp/be-2012-may-u1.analyze
    # smpatch update -b be-2012-may-u1
        -C patchpro.install.types=
           rebootimmediate:rebootafter:
           reconfigimmediate:reconfigafter:
           standard:interactive:singleuser

      
  • Wait until the next reboot window to the activated and updated ABE.
     
    # init 6
      
  • In case of any problems with the new BE, go back to the previous one:
     
    # luactivate -n be-2012-april-u1
      
Keep out of the way with sub-datasets related to /var.
Don't create sub-datasets of zones' datasets or liveupgrade will fail.