Understanding Serviceguard Package Dependencies, April 2009

2
Introduction
Dependencies define runtime relationships between packages. Serviceguard evaluates dependencies
while making package placement decisions. The dependency parameters in the package
configuration file specify under what conditions the dependency is satisfied. For example, you can
define a dependency for package A requiring that package B is running before package A is started
on the same node, or requiring that package B must be down on all nodes before package A is run.
The following dependency types are supported:
Same node dependency: A package can require that another package be UP on the same node.
This means that the package will not start on a node, or continue to run, if the package that it
depends on is not UP on the same node.
Different node dependency: A package can require that another package be UP on a different
node in the cluster. This means that the package will not start on a node, or continue to run, if the
package that it depends on is not UP on a different node in the same cluster.
Any node dependency: A package can require that another package be UP on any node in the
cluster. This means that the package will not start, or continue to run, if the package that it depends
on is not UP on a node in the same cluster.
Same node exclusionary dependency: A package can require that another package be DOWN on
the same node, although that package can be UP on another node.
All nodes exclusionary dependency: A package can require that another package be DOWN on
all nodes in the cluster.
Scope
This document describes how you can configure and use package dependencies. It provides a brief
description and several examples. For a complete description of rules and restrictions, please refer to
the manpage for the cmmakepkg(1m) command and the Managing Serviceguard manual.
Package priority
Priority is a parameter defined in the package configuration file. You can use it to influence the
behavior of packages involved in dependency relationships with other packages. The legal values for
priority are “no_priority” or a positive integer. Priority is a ranking, so a smaller number
represents higher priority; for example a package with a priority of 10 has a higher priority than a
package with a priority of 20. A package with a numeric priority has higher priority than a package
with “no_priority”. No two packages in a cluster can have the same numeric priority (though any
number of packages can have “no_priority”). HP recommends you use priorities in increments of 10
so you can add new packages without having to reassign priorities for the existing packages.