Managing Serviceguard Eighteenth Edition, September 2010
How Packages Run
Packages are the means by which Serviceguard starts and halts configured applications.
Failover 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. There can be a maximum of 300 packages per cluster and
a total of 900 services per cluster.
What Makes a Package Run?
There are 3 types of packages:
• The failover package is the most common type of package. It runs on one node at
a time. If a failure occurs, it can switch to another node listed in its configuration
file. If switching is enabled for several nodes, the package manager will use the
failover policy to determine where to start the package.
• A system multi-node package runs on all the active cluster nodes at the same time.
It can be started or halted on all nodes, but not on individual nodes.
• A multi-node package can run on several nodes at the same time. If auto_run is set
to yes, Serviceguard starts the multi-node package on all the nodes listed in its
configuration file. It can be started or halted on all nodes, or on individual nodes,
either by user command (cmhaltpkg) or automatically by Serviceguard in response
to a failure of a package component, such as service, EMS resource, or subnet.
System multi-node packages are supported only for use by applications supplied by
Hewlett-Packard.
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 on 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. Package
weights and node capacities, if you choose to use them, also determine whether a
package can run on a given node. 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 and all other necessary conditions 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
80 Understanding Serviceguard Software Components