Managing HP Serviceguard A.11.20.10 for Linux, December 2012

If pkg1 depends on pkg2, and pkg1’s priority is lower than or equal to pkg2’s, pkg2’s node order
dominates. Assuming pkg2’s node order is node1, node2, node3, then:
On startup:
pkg2 will start on node1, or node2 if node1 is not available or does not at present
meet all of its dependencies, etc.
pkg1 will start on whatever node pkg2 has started on (no matter where that node
appears on pkg1’s node_name list) provided all of pkg1’s other dependencies are
met there.
If the node where pkg2 has started does not meet all pkg1’s dependencies, pkg1
will not start.
On failover:
If pkg2 fails on node1, pkg2 will fail over to node2 (or node3 if node2 is not available
or does not currently meet all of its dependencies, etc.)
pkg1 will fail over to whatever node pkg2 has restarted on (no matter where that
node appears on pkg1’s node_name list) provided all of pkg1’s dependencies are
met there.
If the node where pkg2 has restarted does not meet all pkg1’s dependencies,
pkg1 will not restart.
If pkg1 fails, pkg1 will not fail over.
This is because pkg1 cannot restart on any adoptive node until pkg2 is running there,
and pkg2 is still running on the original node. pkg1 cannot drag pkg2 because it has
insufficient priority to do so.
On failback:
If both packages have moved from node1 to node2 and node1 becomes available,
pkg2 will fail back to node1 only if pkg2s priority is higher than pkg1’s:
If the priorities are equal, neither package will fail back (unless pkg1 is not running;
in that case pkg2 can fail back).
If pkg2s priority is higher than pkg1’s, pkg2 will fail back to node1; pkg1 will
fail back to node1 provided all of pkg1’s other dependencies are met there;
if pkg2 has failed back to node1 and node1 does not meet all of pkg1’s
dependencies, pkg1 will halt.
If pkg1 depends on pkg2, and pkg1’s priority is higher than pkg2’s, pkg1’s node order dominates.
Assuming pkg1’s node order is node1, node2, node3, then:
On startup:
pkg1 will select node1 to start on.
pkg2 will start on node1, provided it can run there (no matter where node1 appears
on pkg2’s node_name list).
If pkg2 is already running on another node, it will be dragged to node1, provided
it can run there.
If pkg2 cannot start on node1, then both packages will attempt to start on node2 (and
so on).
4.8 Package Configuration Planning 111