The Zones Parallel Patching feature is now available in the latest Solaris 10 patch utilities patch, 119254-66 (SPARC) and 119255-66 (x86).
This is available for use on all Solaris 10 systems.
Simply install this patch, set the maximum number of non-global zones to be patched in parallel in the config file /etc/patch/pdo.conf, and away you go.
Prior to this feature, each non-global zone was patched sequentially, leading to unnecessarily long patching times for zones systems. (Sequential patching remains the default behavior unless the config file is edited to enable Zones Parallel Patching.)
With this feature invoked, the global zone continues to be patched first, but then the non-global zones can be patched in parallel, leading to significant performance gains in patching operations on Zones systems.
While the performance gain is dependent on a number of factors, including the number of non-global zones, the number of on-line CPUs, the speed of the system, the I/O configuration of the system, etc., a performance gain of ca. 300% can typically be expected for patching the non-global zones - e.g. On a T2000 with 5 sparse root non-global zones.
Here's the relevant note from the patch README file:
NOTE 10: 119255-66 is the first revision of the patch utilities to deliver "zones parallel patching".
This new functionality allows multiple non-global zones to be patched in parallel by patchadd.
Prior to revision 66, patchadd would patch all applicable non-global zones sequentially,
that is one after another. With zones parallel patching, a sysadmin can now set the number
of zones to patch in parallel in a new configuration file for patchadd called /etc/patch/pdo.conf.
The two factors that affect the number of non-global zones that can be patched in parallel are
1. Number of on-line CPUs
2. The value of num_proc in /etc/patch/pdo.conf
If the value of num_proc is less than or equal to 1.5 times the number of on line CPUs,
then patchadd limits the maximum number of non-global zones that will be patched in
parallel to num_proc. If the value of num_proc is greater than 1.5 times the number of on line CPUs,
then patchadd limits the maximum number of non-global zones that will be patched in parallel
to 1.5 times the number of on line CPUs. Note that patchadd will patch all applicable non-global
zones on a system, the above description outlines only how patchaadd determines the
maximum number of job slots to be used during parallel patching of non-global zones.
An example of this in operation would be where:
and number of on line CPU's is 4
In this case the maximum setting for num_proc would be 6, that is the maximum number
of zones that could be patched in parallel is 6. If there are more than this number of non-global zones on the
system, the first 6 will be patched in parallel, then the remaining non-global zones will be patched
as processes finish patching the first 6 non-global zones. Only one patch process will be used for each
non-global zone, so if there are less than 6 non-global zones on the system, then only the number of processes
equal to the number of non-global zones will be initiated.
Please see comments in /etc/patch/pdo.conf for more details on setting num_proc.
I would like to thank Ed Clark and Enda O'Connor from my own team for all their work in developing and testing Zones Parallel Patching.
I would also like to thank Jon Bowman, Arindam Sarkar, and the rest of the RPE (Sustaining) Install team for all their work in getting this feature integrated into the patch utilities and delivered to production.
I would also like to thank our selected key customers who kindly Beta tested the feature for us.
I believe this feature is an important milestone in improving our customers' patching experience in a Zones environment as it addresses a long standing customer complaint on Zones patching performance.