Managing HP Serviceguard for Linux, Sixth Edition, August 2006

Understanding Serviceguard Software Components
How Package Control Scripts Work
Chapter 3 57
How Package Control Scripts Work
Packages are the means by which Serviceguard starts and halts
configured applications. Packages are also units of failover behavior in
Serviceguard. A package is a collection of services, disk volumes and IP
addresses that are managed by Serviceguard to ensure they are
available. Any package can have a maximum of 30 services, and there
can be as many as 150 packages per cluster. A possible total of 900
services per cluster is allowed.
What Makes a Package Run?
A package starts up when it is not currently running, and the package
manager senses that it has been enabled on an eligible node in the
cluster. If there are several nodes on which the package is enabled, the
package manager will use the failover policy to determine where to start
the package. Note that you do not necessarily have to use a cmrunpkg
command. In many cases, a cmmodpkg command that enables the
package on one or more nodes is the best way to start the package.
The package manager will always try to keep the package running
unless there is something preventing it from running on any node. The
most common reasons for a package not being able to run are that
AUTO_RUN is disabled, or NODE_SWITCHING is disabled for the package on
particular nodes. When a package has failed on one node and is enabled
on another node, it will start up automatically in the new location. This
process is known as package switching, or remote switching.
When you create the package, you indicate the list of nodes on which it is
allowed to run. A standard package can run on only one node at a time,
and it runs on the next available node in the node list. A package can
start up automatically at cluster startup time if the AUTO_RUN parameter
is set to YES. Conversely, a package with AUTO_RUN set to NO will not
start automatically at cluster startup time; you must explicitly enable
this kind of package using a cmmodpkg command.