Managing Serviceguard Nineteenth Edition, Reprinted June 2011
Some failures can result in a local switch. For example, if there is a failure on a specific LAN card
and there is a standby LAN configured for that subnet, then the Network Manager will switch to
the healthy LAN card. If a service fails but the restart parameter for that service is set to a value
greater than 0, the service will restart, up to the configured number of restarts, without halting the
package.
If there is a configured EMS resource dependency and there is a trigger that causes an event, the
package will be halted.
During normal operation, while all services are running, you can see the status of the services in
the “Script Parameters” section of the output of the cmviewcl command.
When a Service, Subnet, or Monitored Resource Fails, or a Dependency is Not Met
What happens when something goes wrong? If a service fails and there are no more restarts, if a
subnet fails and there are no standbys, if a configured resource fails, or if a configured dependency
on a special-purpose package is not met, then a failover package will halt on its current node and,
depending on the setting of the package switching flags, may be restarted on another node. If a
multi-node or system multi-node package fails, all of the packages that have configured a
dependency on it will also fail.
Package halting normally means that the package halt script executes (see the next section).
However, if a failover package’s configuration has the service_fail_fast_enabled flag set
to yes for the service that fails, then the node will halt as soon as the failure is detected. If this flag
is not set, the loss of a service will result in halting the package gracefully by running the halt script.
If auto_run is set to yes, the package will start up on another eligible node, if it meets all the
requirements for startup. If auto_run is set to no, then the package simply halts without starting
up anywhere else.
NOTE: If a package is dependent on a subnet, and the subnet fails on the node where the
package is running, the package will start to shut down. If the subnet recovers immediately (before
the package is restarted on an adoptive node), the package manager restarts the package on the
same node; no package switch occurs.
When a Package is Halted with a Command
The Serviceguard cmhaltpkg command has the effect of executing the package halt script, which
halts the services that are running for a specific package. This provides a graceful shutdown of
the package that is followed by disabling automatic package startup (see auto_run on (page 224)).
You cannot halt a multi-node or system multi-node package unless all packages that have a
configured dependency on it are down. Use cmviewcl to check the status of dependents. For
example, if pkg1 and pkg2 depend on PKGa, both pkg1 and pkg2 must be halted before you
can halt PKGa.
NOTE: If you use cmhaltpkg command with the-n <nodename> option, the package is halted
only if it is running on that node.
Thecmmodpkg command cannot be used to halt a package, but it can disable switching either on
particular nodes or on all nodes. A package can continue running when its switching has been
disabled, but it will not be able to start on other nodes if it stops running on its current node.
During Halt Script Execution
Once the package manager has detected the failure of a service or package that a failover package
depends on, or when the cmhaltpkg command has been issued for a particular package, the
package manager launches the halt script. That is, a package’s control script or master control
script is executed with the stop parameter. This script carries out the following steps (also shown
in Figure 24):
How Packages Run 61