Managing Serviceguard A.11.20, March 2013
Some failures can result in a local switch. For example, if there is a failure on a specific NIC
(network interface card) and there are one or more standby NICs configured for that subnet, then
the Network Manager will move the network stack to the first healthy NIC. If the first standby NIC
fails, Serviceguard will move the traffic to the second standby NIC (if configured). 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 generic resource configured and it fails, then the package will be halted.
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 239)).
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.
The cmmodpkg 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
How Packages Run 65