Managing Serviceguard 14th Edition, June 2007

Planning and Documenting an HA Cluster
Package Configuration Planning
Chapter 4 173
a failover package whose failover_policy is
configured_node.
pkg2 cannot be a failover package whose failover_policy is
min_package_node.
pkg2’s node list (see node_name, page 282) must contain all of the
nodes on pkg1’s.
Preferably the nodes should be listed in the same order if the
dependency is between packages whose failover_policy is
configured_node; cmcheckconf and cmapplyconf will warn you
if they are not.
A package cannot depend on itself, directly or indirectly.
That is, not only must pkg1 not specify itself in the
dependency_condition (see page 287), but pkg1 must not specify
a dependency on pkg2 if pkg2 depends on pkg1, or if pkg2 depends on
pkg3 which depends on pkg1, etc.
•If pkg1 is a failover package and pkg2 is a multi-node or system
multi-node package, and pkg2 fails, pkg1 will halt and fail over to the
next node on its node_name list on which pkg2 is running (and any
other dependencies, such as resource dependencies or a dependency
on a third package, are met).
In the case of failover packages with a configured_node
failover_policy, a set of rules governs under what circumstances
pkg1 can force pkg2 to start on a given node. This is called dragging
and is determined by each package’s priority (see page 286). See
“Dragging Rules” on page 174.
•If pkg2 fails, Serviceguard will halt pkg1 and any other packages
that depend directly or indirectly on pkg2.
By default, Serviceguard halts packages in dependency order, the
dependent package(s) first, then the package depended on. In our
example, pkg1 would be halted first, then pkg2. If there were a third
package, pkg3, that depended on pkg1, pkg3 would be halted first,
then pkg1, then pkg2.
If the halt script for any dependent package hangs, by default the
package depended on will wait forever (pkg2 will wait forever for
pkg1, and if there is a pkg3 that depends on pkg1, pkg1 will wait
forever for pkg3). You can modify this behavior by means of the
successor_halt_timeout parameter (see page 284). (The