Managing HP Serviceguard for Linux, Seventh Edition, July 2007

Planning and Documenting an HA Cluster
Package Configuration Planning
Chapter 4 121
Guidelines
As you can see from the “Dragging Rules” on page 117, if pkg1 depends
on pkg2, it can sometimes be a good idea to assign a higher priority to
pkg1, because that provides the best chance for a successful failover (and
failback) if pkg1 fails.
But you also need to weigh the relative importance of the packages. If
pkg2 runs a database that is central to your business, you probably want
it to run undisturbed, no matter what happens to application packages
that depend on it. In this case, the database package should have the
highest priority.
Note that, if no priorities are set, the dragging rules favor a package that
is depended on over a package that depends on it.
Consider assigning a higher priority to a dependent package if it is about
equal in real-world importance to the package it depends on; otherwise
assign the higher priority to the more important package, or let the
priorities of both packages default.
You also need to think about what happens when a package fails. If other
packages depend on it, Serviceguard will halt those packages (and any
packages that depend on them, etc.) This happens regardless of the
priority of the failed package.
By default the packages are halted in the reverse of the order in which
they were started; and if the halt script for any of the dependent
packages hangs, the failed package will wait indefinitely to complete its
own halt process. This provides the best chance for all the dependent
packages to halt cleanly, but it may not be the behavior you want. You
can change it by means of the successor_halt_timeout parameter (see
page 204).
If you set successor_halt_timeout to zero, Serviceguard will halt the
dependent packages in parallel with the failed package; if you set it to a
positive number, Serviceguard will halt the packages in the reverse of
the start order, but will allow the failed package to halt after the
successor_halt_timeout number of seconds whether or not the
dependent packages have completed their halt scripts.
If you decide to create dependencies between packages, it is a good idea
to test thoroughly, before putting the packages into production, to make
sure that package startup, halt, failover, and failback behavior is what
you expect.