Jump to content United States-English
HP.com Home Products and Services Support and Drivers Solutions How to Buy
» Contact HP
More options
HP.com home
Managing Serviceguard Version A.11.16, Eleventh EditionSecond Printing > Chapter 6 Configuring Packages and Their Services

Creating the Package Configuration

» 

Technical documentation

Complete book in PDF
» Feedback
Content starts here

 » Table of Contents

 » Index

The package configuration process defines a set of application services that are run by the package manager when a package starts up on a node in the cluster. The configuration also includes a prioritized list of cluster nodes on which the package can run together with definitions of the acceptable types of failover allowed for the package.

You can create a package using Serviceguard Manager or using HP-UX commands and editors. The following section describes Serviceguard Manager configuration. If you are using the Serviceguard command line, skip ahead to the section entitled “Using Serviceguard Commands to Create a Package.”

Using Serviceguard Manager to Configure a Package

To configure a high availability package use the following steps on the configuration node (ftsys9). Serviceguard Manager configuration is available in Serviceguard Version 11.16 and later.

  1. Connect to a session server node that has Serviceguard version 11.16 installed. Discover a cluster that has version 11.16 or later. To begin configuration, you will be prompted to enter the root password for a node in the target cluster.

  2. To create a package, select the cluster on the map or tree. From the Actions menu, choose Configuration -> Create Package. To modify, select the package itself and choose Configuration -> Modify Package <pkgname>.

  3. Creating the Package Configuration and its Control Script: The interface will guide you through the steps. Online Help is available along the way. You can follow the suggestions below about configuring in stages, because many steps do not have to be done in sequence. The control script can be created automatically if you want.

  4. “Verifying the Package Configuration”: Click the Check button. If you don’t see the log window, open one from the View menu.

  5. “Distributing the Configuration”: Click Apply. The binary configuration file will be created, then it and the generated control script will be distributed to the package’s nodes.

If you want, you can configure your control script yourself. This may be necessary if you do not use a standard control script. However, once you edit a control script yourself, Serviceguard Manager will never be able to see or modify it again. If you choose to edit the control script, you must also distribute it yourself.

See “Configuring in Stages”.

Using Serviceguard Commands to Configure a Package

Use the following procedure to create packages by editing and processing a package configuration file.

  1. First, create a subdirectory for each package you are configuring in the /etc/cmcluster directory:

    mkdir /etc/cmcluster/pkg1 

    You can use any directory names you wish.

  2. Next, generate a package configuration template for the package:

    cmmakepkg -p /etc/cmcluster/pkg1/pkg1.config 

    You can use any file names you wish for the ASCII templates.

  3. Edit these template files to specify package name, prioritized list of nodes (with 31 bytes or less in the name), the location of the control script, and failover parameters for each package. Include the data recorded on the Package Configuration Worksheet.

Configuring in Stages

It is recommended you configure packages on the cluster in stages, as follows:

  1. Configure volume groups and mount points only.

  2. Apply the configuration.

  3. Distribute the control script to all nodes.

  4. Run the package and ensure that it can be moved from node to node.

  5. Halt the package.

  6. Configure package IP addresses and application services in the control script.

  7. Distribute the control script to all nodes.

  8. Run the package and ensure that applications run as expected and that the package fails over correctly when services are disrupted.

Package Configuration Template File

The following is a sample package configuration file template customized for a typical package.

Use the information on the Package Configuration worksheet to complete the file. Refer also to the comments on the configuration template for additional explanation of each parameter. You may include the following information:

# **********************************************************************
# ****** HIGH AVAILABILITY PACKAGE CONFIGURATION FILE (template) *******
# **********************************************************************
# ******* Note: This file MUST be edited before it can be used. ********
# * For complete details about package parameters and how to set them, *
# * consult the Serviceguard Extension for RAC manuals.
# **********************************************************************

# Enter a name for this package. This name will be used to identify the
# package when viewing or manipulating it. It must be different from
# the other configured package names.

PACKAGE_NAME

# Enter the package type for this package. PACKAGE_TYPE indicates
# whether this package is to run as a FAILOVER or SYSTEM_MULTI_NODE
# package.
#
# FAILOVER package runs on one node at a time and if a failure
# occurs it can switch to an alternate node.
#
# SYSTEM_MULTI_NODE
# package runs on multiple nodes at the same time.
# It can not be started and halted on individual nodes.
# Both NODE_FAIL_FAST_ENABLED and AUTO_RUN must be set
# to YES for this type of package. All SERVICES must
# have SERVICE_FAIL_FAST_ENABLED set to YES.
#
# NOTE: Packages which have a PACKAGE_TYPE of SYSTEM_MULTI_NODE are
# not failover packages and should only be used for applications
# provided by Hewlett-Packard.
#
# Since SYSTEM_MULTI_NODE packages run on multiple nodes at
# one time, following parameters are ignored:
#
# FAILOVER_POLICY
# FAILBACK_POLICY
# Since an IP address can not be assigned to more than node at a
# time, relocatable IP addresses can not be assigned in the
# package control script for multiple node packages. If
# volume groups are assigned to multiple node packages they must
# activated in a shared mode and data integrity is left to the
# application. Shared access requires a shared volume manager.
#
#
# Examples : PACKAGE_TYPE FAILOVER (default)
# PACKAGE_TYPE SYSTEM_MULTI_NODE
#

PACKAGE_TYPE FAILOVER


# Enter the failover policy for this package. This policy will be used
# to select an adoptive node whenever the package needs to be started.
# The default policy unless otherwise specified is CONFIGURED_NODE.
# This policy will select nodes in priority order from the list of
# NODE_NAME entries specified below.
#
# The alternative policy is MIN_PACKAGE_NODE. This policy will select
# the node, from the list of NODE_NAME entries below, which is
# running the least number of packages at the time this package needs
# to start.

FAILOVER_POLICY CONFIGURED_NODE


# Enter the failback policy for this package. This policy will be used
# to determine what action to take when a package is not running on
# its primary node and its primary node is capable of running the
# package. The default policy unless otherwise specified is MANUAL.
# The MANUAL policy means no attempt will be made to move the package
# back to its primary node when it is running on an adoptive node.
#
# The alternative policy is AUTOMATIC. This policy will attempt to
# move the package back to its primary node whenever the primary node
# is capable of running the package.
FAILBACK_POLICY MANUAL

# Enter the names of the nodes configured for this package. Repeat
# this line as necessary for additional adoptive nodes.
#
# NOTE: The order is relevant.
# Put the second Adoptive Node after the first one.
#
# Example : NODE_NAME original_node
# NODE_NAME adoptive_node
#
# If all nodes in the cluster are to be specified and order is not
# important, "NODE_NAME *" may be specified.
#
# Example : NODE_NAME *

NODE_NAME


# Enter the value for AUTO_RUN. Possible values are YES and NO.
# The default for AUTO_RUN is YES. When the cluster is started the
# package will be automatically started. In the event of a failure the
# package will be started on an adoptive node. Adjust as necessary.
#
# AUTO_RUN replaces obsolete PKG_SWITCHING_ENABLED.

AUTO_RUN YES

# Enter the value for LOCAL_LAN_FAILOVER_ALLOWED.
# Possible values are YES and NO.
# The default for LOCAL_LAN_FAILOVER_ALLOWED is YES. In the event of a
# failure, this permits the cluster software to switch LANs locally
# (transfer to a standby LAN card). Adjust as necessary.
#
# LOCAL_LAN_FAILOVER_ALLOWED replaces obsolete NET_SWITCHING_ENABLED.

LOCAL_LAN_FAILOVER_ALLOWED YES


# Enter the value for NODE_FAIL_FAST_ENABLED.
# Possible values are YES and NO.
# The default for NODE_FAIL_FAST_ENABLED is NO. If set to YES,
# in the event of a failure, the cluster software will halt the node
# on which the package is running. All SYSTEM_MULTI_NODE packages must have
# NODE_FAIL_FAST_ENABLED set to YES. Adjust as necessary.

NODE_FAIL_FAST_ENABLED NO

# Enter the complete path for the run and halt scripts. In most cases
# the run script and halt script specified here will be the same script,
# the package control script generated by the cmmakepkg command. This
# control script handles the run(ning) and halt(ing) of the package.
# Enter the timeout, specified in seconds, for the run and halt scripts.
# If the script has not completed by the specified timeout value,
# it will be terminated. The default for each script timeout is
# NO_TIMEOUT. Adjust the timeouts as necessary to permit full
# execution of each script.
# Note: The HALT_SCRIPT_TIMEOUT should be greater than the sum of
# all SERVICE_HALT_TIMEOUT values specified for all services.

RUN_SCRIPT
RUN_SCRIPT_TIMEOUT NO_TIMEOUT
HALT_SCRIPT
HALT_SCRIPT_TIMEOUT NO_TIMEOUT

# Enter the names of the storage groups configured for this package.
# Repeat this line as necessary for additional storage groups.
#
# Storage groups are only used with CVM disk groups. Neither
# VxVM disk groups or LVM volume groups should be listed here.
# By specifying a CVM disk group with the STORAGE_GROUP keyword
# this package will not run until the VxVM-CVM-pkg package is
# running and thus the CVM shared disk groups are ready for
# activation.
#
# NOTE: Should only be used by applications provided by
# Hewlett-Packard.
#
# Example : STORAGE_GROUP dg01
# STORAGE_GROUP dg02
# STORAGE_GROUP dg03
# STORAGE_GROUP dg04
#

# Enter the SERVICE_NAME, the SERVICE_FAIL_FAST_ENABLED and the
# SERVICE_HALT_TIMEOUT values for this package. Repeat these
# three lines as necessary for additional service names. All
# service names MUST correspond to the SERVICE_NAME[] entries in
# the package control script.
#
# The value for SERVICE_FAIL_FAST_ENABLED can be either YES or
# NO. If set to YES, in the event of a service failure, the
# cluster software will halt the node on which the service is
# running. If SERVICE_FAIL_FAST_ENABLED is not specified, the
# default will be NO.
#
# SERVICE_HALT_TIMEOUT is represented as a number of seconds.
# This timeout is used to determine the length of time (in
# seconds) the cluster software will wait for the service to
# halt before a SIGKILL signal is sent to force the termination
# of the service. In the event of a service halt, the cluster
# software will first send a SIGTERM signal to terminate the
# service. If the service does not halt, after waiting for the
# specified SERVICE_HALT_TIMEOUT, the cluster software will send
# out the SIGKILL signal to the service to force its termination.
# This timeout value should be large enough to allow all cleanup
# processes associated with the service to complete. If the
# SERVICE_HALT_TIMEOUT is not specified, a zero timeout will be
# assumed, meaning the cluster software will not wait at all
# before sending the SIGKILL signal to halt the service.
#
# Example: SERVICE_NAME DB_SERVICE
# SERVICE_FAIL_FAST_ENABLED NO
# SERVICE_HALT_TIMEOUT 300
#
# To configure a service, uncomment the following lines and
# fill in the values for all of the keywords.
#
#SERVICE_NAME <service name>
#SERVICE_FAIL_FAST_ENABLED <YES/NO>
#SERVICE_HALT_TIMEOUT <number of seconds>

# Enter the network subnet name that is to be monitored for this package.
# Repeat this line as necessary for additional subnet names. If any of
# the subnets defined goes down, the package will be switched to another
# node that is configured for this package and has all the defined subnets
# available.
# The subnet names could be IPv4 or IPv6. The network subnet
# names that are to be monitored for this package could be a mix
# of IPv4 or IPv6 subnet names

#SUBNET


# The keywords RESOURCE_NAME, RESOURCE_POLLING_INTERVAL,
# RESOURCE_START, and RESOURCE_UP_VALUE are used to specify Package
# Resource Dependencies. To define a package Resource Dependency, a
# RESOURCE_NAME line with a fully qualified resource path name, and
# one or more RESOURCE_UP_VALUE lines are required. The
# RESOURCE_POLLING_INTERVAL and the RESOURCE_START are optional.
#
# The RESOURCE_POLLING_INTERVAL indicates how often, in seconds, the
# resource is to be monitored. It will be defaulted to 60 seconds if
# RESOURCE_POLLING_INTERVAL is not specified.
#
# The RESOURCE_START option can be set to either AUTOMATIC or DEFERRED.
# The default setting for RESOURCE_START is AUTOMATIC. If AUTOMATIC
# is specified, Serviceguard will start up resource monitoring for
# these AUTOMATIC resources automatically when the node starts up.
# If DEFERRED is selected, Serviceguard will not attempt to start
# resource monitoring for these resources during node start up. User
# should specify all the DEFERRED resources in the package run script
# so that these DEFERRED resources will be started up from the package
# run script during package run time.
#
# RESOURCE_UP_VALUE requires an operator and a value. This defines
# the resource ’UP’ condition. The operators are =, !=, >, <, >=,
# and <=, depending on the type of value. Values can be string or
# numeric. If the type is string, then only = and != are valid
# operators. If the string contains whitespace, it must be enclosed
# in quotes. String values are case sensitive. For example,
#
# Resource is up when its value is
# --------------------------------
# RESOURCE_UP_VALUE = UP "UP"
# RESOURCE_UP_VALUE != DOWN Any value except "DOWN"
# RESOURCE_UP_VALUE = "On Course" "On Course"
#
# If the type is numeric, then it can specify a threshold, or a range to
# define a resource up condition. If it is a threshold, then any operator
# may be used. If a range is to be specified, then only > or >= may be used
# for the first operator, and only < or <= may be used for the second operator.
# For example,
# Resource is up when its value is
# --------------------------------
# RESOURCE_UP_VALUE = 5 5 (threshold)
# RESOURCE_UP_VALUE > 5.1 greater than 5.1 (threshold)
# RESOURCE_UP_VALUE > -5 and < 10 between -5 and 10 (range)
#
# Note that "and" is required between the lower limit and upper limit
# when specifying a range. The upper limit must be greater than the lower
# limit. If RESOURCE_UP_VALUE is repeated within a RESOURCE_NAME block, then
# they are inclusively OR’d together. Package Resource Dependencies may be
# defined by repeating the entire RESOURCE_NAME block.
#
# Example : RESOURCE_NAME /net/interfaces/lan/status/lan0
# RESOURCE_POLLING_INTERVAL 120
# RESOURCE_START AUTOMATIC
# RESOURCE_UP_VALUE = RUNNING
# RESOURCE_UP_VALUE = ONLINE
#
# Means that the value of resource /net/interfaces/lan/status/lan0
# will be checked every 120 seconds, and is considered to
# be ’up’ when its value is "RUNNING" or "ONLINE".
## Uncomment the following lines to specify Package Resource Dependencies.
#
#RESOURCE_NAME <Full_path_name>
#RESOURCE_POLLING_INTERVAL <numeric_seconds>
#RESOURCE_START <AUTOMATIC/DEFERRED>
#RESOURCE_UP_VALUE <op> <string_or_numeric> [and <op> <numeric>]

# Access Control Policy Parameters.
#
# Three entries set the access control policy for the package:
# First line must be USER_NAME, second USER_HOST, and third USER_ROLE.
# Enter a value after each.
#
# 1. USER_NAME can either be ANY_USER, or a maximum of
# 8 login names from the /etc/passwd file on user host.
# 2. USER_HOST is where the user can issue Serviceguard commands.
# If using Serviceguard Manager, it is the COM server.
# Choose one of these three values: ANY_SERVICEGUARD_NODE, or
# (any) CLUSTER_MEMBER_NODE, or a specific node. For node,
# use the official hostname from domain name server, and not
# an IP addresses or fully qualified name.
# 3. USER_ROLE must be PACKAGE_ADMIN. This role grants permission
# to MONITOR, plus for administrative commands for the package.
#
# These policies do not effect root users. Access Policies here
# should not conflict with policies defined in the cluster configuration file.
#
# Example: to configure a role for user john from node noir to
# administer the package, enter:
# USER_NAME john
# USER_HOST noir
# USER_ROLE PACKAGE_ADMIN

  • FAILOVER_POLICY. Enter either CONFIGURED_NODE or MIN_PACKAGE_NODE.

  • FAILBACK_POLICY. Enter either MANUAL or AUTOMATIC.

  • NODE_NAME. Enter the name of each node in the cluster on a separate line.

  • AUTO_RUN. Enter YES to allow the package to start on the first available node, or NO to keep the package from automatic startup.

  • LOCAL_LAN_FAILOVER_ALLOWED. Enter YES to permit switching of the package IP address to a standby LAN, or NO to keep the package from switching locally.

  • RUN_SCRIPT and HALT_SCRIPT. Specify the pathname of the package control script (described in the next section). No default is provided.

  • STORAGE_GROUP. Specify the names of any CVM storage groups that will be used by this package. Enter each storage group (CVM disk group) on a separate line. Note that CVM storage groups are not entered in the cluster ASCII configuration file.

    NOTE: You should not enter LVM volume groups or VxVM disk groups in this file.

  • If your package contains services, enter the SERVICE_NAME, SERVICE_FAIL_FAST_ENABLED and SERVICE_HALT_TIMEOUT. values. Enter a group of these three for each service. You can configure no more than 30 services per package.

  • If your package has IP addresses associated with it, enter the SUBNET. This must be a subnet that is already specified in the cluster configuration, and it can be either an IPv4 or an IPv6 subnet. Link-local package IPs are not allowed, hence link-local subnets must not be entered in the package ASCII file.

  • NODE_FAIL_FAST_ENABLED parameter. Enter YES or NO.

  • To configure monitoring within the package for a registered resource, enter values for the following parameters.

  • RESOURCE_NAME. Enter the name of a registered resource that is to be monitored by Serviceguard.

  • RESOURCE_POLLING_INTERVAL. Enter the time between attempts to assure that the resource is healthy.

  • RESOURCE_UP_VALUE. Enter the value or values that determine when the resource is considered to be up. During monitoring, if a different value is found for the resource, the package will fail.

  • RESOURCE_START. The RESOURCE_START option is used to determine when Serviceguard should start up resource monitoring for EMS resources. The RESOURCE_START option can be set to either AUTOMATIC or DEFERRED. If AUTOMATIC is specified, Serviceguard will start up resource monitoring for these resources automatically when the Serviceguard cluster daemon starts up on the node. If resources are configured AUTOMATIC, you do not need to define DEFERRED_RESOURCE_NAME in the package control script.

    If DEFERRED is selected, Serviceguard does not attempt to start resource monitoring for these DEFERRED resources during node start up. However, these DEFERRED resources must be specified in the package control script.

    The following is an example of how to configure DEFERRED and AUTOMATIC resources. In the package configuration file, specify resources as follows:

    RESOURCE_NAME              /net/interfaces/lan/status/lan0
    RESOURCE_POLLING_INTERVAL 60
    RESOURCE_START DEFERRED
    RESOURCE_UP_VALUE = UP

    RESOURCE_NAME /net/interfaces/lan/status/lan1
    RESOURCE_POLLING_INTERVAL 60
    RESOURCE_START DEFERRED
    RESOURCE_UP_VALUE = UP

    RESOURCE_NAME /net/interfaces/lan/status/lan2
    RESOURCE_POLLING_INTERVAL 60
    RESOURCE_START AUTOMATIC
    RESOURCE_UP_VALUE = UP

Access Control Policy is a new feature with Serviceguard version 11.16. With it, you can allow non-root users to administer packages and clusters. Cluster-wide roles are defined in the cluster configuration file. Package-specific roles are defined in the package configuration file.

There must be no redundancy or conflict in roles. If there is, configuration will fail and you will get a message. It is a good idea, therefore, to look at the cluster configuration file (cmgetconf) before creating any roles in the package’s file.

If a role is configured in the cluster, do not configure a role for the same username/hostnode in the package. The exception is wildcards. For example, if there were a MONITOR role for ANY_USER from ftsys9 in the cluster configuration, and you created an ADMIN role for user Lee from ftsys9 in the package configuration file, user ftsys9 would have role of package admin for this policy. (This role already includes monitor for the entire cluster.)

Data about Access Control Policies in the package configuration files and the cluster configuration file are later combined in the binary cluster configuration file.

Adding or Removing Packages on a Running Cluster

You can add or remove packages while the cluster is running, subject to the limit of MAX_CONFIGURED_PACKAGES. To add or remove packages online, refer to the chapter on “Cluster and Package Maintenance.”

Printable version
Privacy statement Using this site means you accept its terms Feedback to webmaster
© Hewlett-Packard Development Company, L.P.