Understanding Serviceguard Package Dependencies, April 2009

8
Automatic mode
Serviceguard uses the following rules in managing packages with dependencies in automatic mode
(that is, when Serviceguard itself is managing packages, rather than responding to commands that
run and halt packages).
1. If pkg1 has a same-node, any-node, or different-node dependency on pkg2,
and pkg2 fails over to another node, pkg1 will restart. If the dependency is
same-node, pkg1 will follow pkg2 to the new node. If the dependency is
any-node or different node, pkg1 may restart on the current node or go to
another node where the dependency is met.
2. Serviceguard gives preference to running higher-priority packages, and the
node order of the higher-priority package dominates the node order of the
lower-priority package. This means that if necessary Serviceguard halts or
moves a lower priority package in order to meet the dependency of a higher
priority package. This halting or moving of the lower priority package is called
“dragging”.
Note:
The rule for dragging applies to the entire dependency graph. In order to
drag, the package must have higher priority than all the packages that it
directly or indirectly needs to halt or move.
Automatic mode examples
The following examples use Figure 1 below. This figure shows five packages:
Pkg1 can run on two nodes, node1 and node2. This package depends on pkg2 to be up on the
same node and it has a same-node exclusionary dependency on pkg4. pkg1’s priority is 30.
Pkg2 can run on two nodes, node1 and node2. This package depends on pkg5 to be up on the
same node. Pkg2’s priority is 10. This is the highest priority package.
Pkg3 can run on two nodes, node1 and node2. This package depends on pkg5 to be up on the
same node. Pkg3’s priority is 20.
Pkg4 can run on two nodes, node1 and node2. This package depends on pkg5 to be up on any
node in the cluster and it depends on pkg1 to be down on the same node. Pkg4’s priority is
no_priority.
Pkg5 can run on two nodes, node1 and node2. pkg5’s priority is no_priority.