Managing Serviceguard 13th Edition, February 2007
Understanding Serviceguard Software Components
How Package Control Scripts Work
Chapter 390
The CFS packages, however, are not created by performing cmapplyconf
on package configuration files, but by a series of CFS-specific commands.
Serviceguard determines most of their options; all user-determined
options can be entered as parameters to the commands. (See the cfs*
commands in Appendix A.)
A failover package can be configured to have a dependency on a
multi-node or system multi-node package. The package manager cannot
start a package on a node unless the package it depends is already up
and running on that node.
The package manager will always try to keep a failover package running
unless there is something preventing it from running on any node. The
most common reasons for a failover package not being able to run are
that AUTO_RUN is disabled so Serviceguard is not allowed to start the
package, that NODE_SWITCHING is disabled for the package on particular
nodes, or that the package has a dependency that is not being met. When
a package has failed on one node and is enabled to switch to another
node, it will start up automatically in a new location where its
dependencies are met. This process is known as package switching, or
remote switching.
A failover package starts on the first available node in its configuration
file; by default, it fails over to the next available one in the list. Note that
you do not necessarily have to use a cmrunpkg command to restart a
failed failover package; in many cases, the best way is to enable package
and/or node switching with the cmmodpkg command.
When you create the package, you indicate the list of nodes on which it is
allowed to run. System multi-node packages must list all cluster nodes in
their cluster. Multi-node packages and failover packages can name some
subset of the cluster’s nodes or all of them.
If the AUTO_RUN parameter is set to YES in a package’s configuration file
Serviceguard automatically starts the package when the cluster starts.
System multi-node packages are required to have AUTO_RUN set to YES. If
a failover package has AUTO_RUN set to NO, Serviceguard cannot start it
automatically at cluster startup time; you must explicitly enable this
kind of package using the cmmodpkg command.