Managing HP Serviceguard for Linux, Tenth Edition, September 2012

dependencies, see Simple Dependencies (page 130); for exclusionary dependencies, see
“Rules for Exclusionary Dependencies” (page 137).
Both packages must be failover packages whose failover_policy (page 209)
is configured_node.
The priority (page 210) of the package depended on must be higher than or
equal to the priority of the dependent package and the priorities of that package's
dependents.
For example, if pkg1 has a different_node or any_node dependency on
pkg2, pkg2's priority must be higher than or equal to pkg1's priority and the
priority of any package that depends on pkg1 to be UP. pkg2's node order
dominates when Serviceguard is placing the packages.
A package cannot depend on itself, directly or indirectly.
For example, not only must pkg1 not specify itself in the dependency_condition
(page 211), 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.
“Dragging rules apply. See “Dragging Rules for Simple Dependencies (page 132).
About Package Weights
Package weights and node capacities allow you to restrict the number of packages that
can run concurrently on a given node, or, alternatively, to limit the total package weight”
(in terms of resource consumption) that a node can bear.
For example, suppose you have a two-node cluster consisting of a large system and a
smaller system. You want all your packages to be able to run on the large system at the
same time, but, if the large node fails, you want only the critical packages to run on the
smaller system. Package weights allow you to configure Serviceguard to enforce this
behavior.
Package Weights and Node Capacities
You define a capacity, or capacities, for a node (in the cluster configuration file), and
corresponding weights for packages (in the package configuration file).
Node capacity is consumed by package weights. Serviceguard ensures that the capacity
limit you set for a node is never exceeded by the combined weight of packages running
on it; if a node's available capacity will be exceeded by a package that wants to run
on that node, the package will not run there. This means, for example, that a package
cannot fail over to a node if that node does not currently have available capacity for it,
even if the node is otherwise eligible to run the package unless the package that wants
to run has sufficient priority to force one of the packages that are currently running to
move; see “How Package Weights Interact with Package Priorities and Dependencies
(page 146).
138 Planning and Documenting an HA Cluster