Managing Serviceguard 12th Edition, March 2006

Understanding Serviceguard Software Components
How Package Control Scripts Work
Chapter 3 89
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
admin 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.