付録K.10 サンプルファイル

<この項の構成>
(1) HP-UX版
(2) AIX版

(1) HP-UX版

(a) クラスタ定義ファイル

#**********************************************************************
# ********* HIGH AVAILABILITY CLUSTER CONFIGURATION FILE ***************
# ***** For complete details about cluster parameters and how to    ****
# ***** set them, consult the cmquerycl(1m) manpage or your manual. ****
#**********************************************************************
# Enter a name for this cluster.  This name will be used to identify the
# cluster when viewing or manipulating it.

CLUSTER_NAME               gmaxcluster

# Cluster Lock Device Parameters.  This is the volume group that
# holds the cluster lock which is used to break a cluster formation
# tie.  This volume group should not be used by any other cluster
# as cluster lock device.

FIRST_CLUSTER_LOCK_VG               /dev/vg03

# Definition of nodes in the cluster.
# Repeat node definitions as necessary for additional nodes.

NODE_NAME          node1
NETWORK_INTERFACE  lan2
HEARTBEAT_IP       172.1.1.1
FIRST_CLUSTER_LOCK_PV      /dev/dsk/c3t0d0

# List of serial device file names
# For example:
# SERIAL_DEVICE_FILE       /dev/tty0p0

# Primary Network Interfaces on Bridged Net 3: lan2.
#   Warning: There are no standby network interfaces on bridged net 3.

NODE_NAME          node2
NETWORK_INTERFACE  lan2
HEARTBEAT_IP       172.1.1.2
FIRST_CLUSTER_LOCK_PV      /dev/dsk/c3t0d0

# List of serial device file names
# For example:

# SERIAL_DEVICE_FILE       /dev/tty0p0

# Primary Network Interfaces on Bridged Net 3: lan2.
# Warning: There are no standby network interfaces on bridged net 3.

# Cluster Timing Parmeters (microseconds).

HEARTBEAT_INTERVAL         1000000
NODE_TIMEOUT               2000000

# Configuration/Reconfiguration Timing Parameters (microseconds).

AUTO_START_TIMEOUT         600000000
NETWORK_POLLING_INTERVAL   2000000

# Package Configuration Parameters.
# Enter the maximum number of packages which will be configured in the cluster.
# You can not add packages beyond this limit.
# This parameter is required.

MAX_CONFIGURED_PACKAGES     2

# List of cluster aware Volume Groups. These volume groups will
# be used by clustered applications via the vgchange -a e command.
# For example:
# VOLUME_GROUP              /dev/vgdatabase.
# VOLUME_GROUP              /dev/vg02.

VOLUME_GROUP                /dev/vg03
VOLUME_GROUP                /dev/vg04

(b) パッケージ定義ファイル

#*********************************************************************
# ****** 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 MC/ServiceGuard or MC/LockManager manpages or 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       gmaxpkg

# Enter the names of the nodes configured for this package.  Repeat
# this line as necessary for additional adoptive nodes.
# Order IS relevant.  Put the second Adoptive Node AFTER the first
# one.
# Example : NODE_NAME  original_node  
#           NODE_NAME  adoptive_node  

NODE_NAME        node1
NODE_NAME        node2

# 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.
# 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 specified for all services.

RUN_SCRIPT         /etc/cmcluster/gmaxpkg/control.sh        
RUN_SCRIPT_TIMEOUT         NO_TIMEOUT
HALT_SCRIPT        /etc/cmcluster/gmaxpkg/control.sh        
HALT_SCRIPT_TIMEOUT        NO_TIMEOUT

# 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 names used by
# cmrunserv and cmhaltserv commands in the run and halt scripts.

#
# 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 in the 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                   addressSV
SERVICE_FAIL_FAST_ENABLED      YES
SERVICE_HALT_TIMEOUT           300
SERVICE_NAME                   mailSV
SERVICE_FAIL_FAST_ENABLED      YES
SERVICE_HALT_TIMEOUT           300

# 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.

SUBNET             172.1.1.0

# The following keywords (RESOURCE_NAME, RESOURCE_POLLING_INTERVAL, 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.  A RESOURCE_POLLING_INTERVAL line (how often in seconds the resource
# is to be monitored) is optional and defaults to 60 seconds.  An operator and
# a value are used with RESOURCE_UP_VALUE to define when the resource is to be
# considered up.  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/lan/lan0/res1
#             RESOURCE_POLLING_INTERVAL     120
#             RESOURCE_UP_VALUE             = RUNNING
#             RESOURCE_UP_VALUE             = ONLINE
#
#             Means that the value of resource /net/lan/lan0/res1 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_UP_VALUE            <op> <string_or_numeric> [and <op> <numeric>]

# The default for PKG_SWITCHING_ENABLED is YES. In the event of a
# failure, this permits the cluster software to transfer the package
# to an adoptive node.  Adjust as necessary.

PKG_SWITCHING_ENABLED               YES

# The default for NET_SWITCHING_ENABLED 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.

NET_SWITCHING_ENABLED               YES

# 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.  Adjust as necessary.

NODE_FAIL_FAST_ENABLED     NO

(c) パッケージ制御スクリプト

Mail Serverを使用しない場合,又はメール設定が完了するまでは,APSTART,APSTOP,及びmlstatpの部分をコメントにしてください。

#"(#) A.10.10         $Revision: 80.8 $ $Date: 97/07/17 08:45:04 $"
#**********************************************************************
# *                                                                    *
# *        HIGH AVAILABILITY PACKAGE CONTROL SCRIPT (template)         *
# *                                                                    *
# *       Note: This file MUST be edited before it can be used.        *
# *                                                                    *
# **********************************************************************
     
# UNCOMMENT the variables as you set them.
# Set PATH to reference the appropriate directories.
XODDIR=/usr/ObjSV/HOME                      # Groupmax環境変数
XODCONFPATH=$XODDIR/conf                    # Groupmax環境変数
export XODDIR XODCONFPATH           # Groupmax環境変数登録
PATH=/sbin:/usr/bin:/usr/sbin:/etc:/bin

# VOLUME GROUP ACTIVATION:
# Specify the method of activation for volume groups.
# Leave the default ("VGCHANGE="vgchange -a e") if you want volume
# groups activated in exclusive mode. This assumes the volume groups have
# been initialized with 'vgchange -c y' at the time of creation.
#
# Uncomment the first line (VGCHANGE="vgchange -a e -q n"), and comment
# out the default, if your disks are mirrored on separate physical paths,
#
# Uncomment the second line (VGCHANGE="vgchange -a y") if you wish to
# use non-exclusive activation mode. Single node cluster configurations
# must use non-exclusive activation.
#
VGCHANGE="vgchange -a e"
     
# VOLUME GROUPS
# Specify which volume groups are used by this package. Uncomment VG[0]=""
# and fill in the name of your first volume group. You must begin with
# VG[0], and increment the list in sequence.
#
VG[0]=/dev/vg03
VG[1]=/dev/vg04

# FILESYSTEMS
# Specify the filesystems which are used by this package. Uncomment
# LV[0]=""; FS[0]=""; FS_MOUNT_OPT[0]="" and fill in the name of your first
# logical volume, filesystem and mount option for the file system. You must
# begin with LV[0], FS[0] and FS_MOUNT_OPT[0] and increment the list in
# sequence.
#
LV[0]=/dev/vg03/lvol1
FS[0]=/gmaxpkgd
FS_MOUNT_OPT[0]="-o rw"

LV[1]=/dev/vg04/lvol1
FS[1]=/OBJSVFILE
FS_MOUNT_OPT[1]="-o rw"

# IP ADDRESSES
# Specify the IP and Subnet address pairs which are used by this package.
# Uncomment IP[0]="" and SUBNET[0]="" and fill in the name of your first
# IP and subnet address. You must begin with IP[0] and SUBNET[0] and
# increment the list in sequence.
#
IP[0]=172.1.1.3
SUBNET[0]=172.1.1.0

# SERVICE NAMES AND COMMANDS.
# Specify the service name, command, and restart parameters which are
# used by this package. Uncomment SERVICE_NAME[0]="", SERVICE_CMD[0]="",
# SERVICE_RESTART[0]="" and fill in the name of the first service, command,
# and restart parameters. You must begin with SERVICE_NAME[0], SERVICE_CMD[0],
# and SERVICE_RESTART[0] and increment the list in sequence.
#
SERVICE_NAME[0]=addressSV
SERVICE_CMD[0]="/opt/GroupMail/bin/adstatp"
SERVICE_RESTART[0]=""
# SERVICE_NAME[0]=mailSV            # メール設定が完了するまでコメントにする
# SERVICE_CMD[0]="/opt/GroupMail/bin/mlstatp"  # 同上
# SERVICE_RESTART[0]=""                        # 同上

# DTC manager information for each DTC.
# Example: DTC[0]=dtc_20
#DTC_NAME[0]=

# START OF CUSTOMER DEFINED FUNCTIONS

# This function is a place holder for customer define functions.
# You should define all actions you want to happen here, before the service is
# started.  You can create as many functions as you need.  

function customer_defined_run_cmds
{
# ADD customer defined run commands.
: # do nothing instruction, because a function must contain some command.
 /opt/HiOODB/bin/xodstart
 /opt/GroupMail/bin/GM_START
# /opt/GroupMail/bin/APSTART       # メール設定が完了するまでコメントにする
 test_return 51
}
     
# This function is a place holder for customer define functions.
# You should define all actions you want to happen here, before the service is
# halted.

function customer_defined_halt_cmds
{
# ADD customer defined halt commands.
: # do nothing instruction, because a function must contain some command.
# /opt/GroupMail/bin/APSTOP        # メール設定が完了するまでコメントにする
 /opt/GroupMail/bin/GM_STOP
 /opt/HiOODB/bin/xodstop
 test_return 52
}
     
# END OF CUSTOMER DEFINED FUNCTIONS

(2) AIX版

(a) 始動スクリプト

Mail Serverを使用しない場合,又はメール設定が完了するまでは,APSTART,APSTOP,及びmlstatpの部分をコメントにしてください。

#! /bin/sh

/opt/GroupMail/bin/GM_START
if [ $? -ne 0 ] ; then
   echo "GM_START FAILED"
       exit 1
fi

/opt/GroupMail/bin/adstatp &

/opt/GroupMail/bin/APSTART
if [ $? -ne 0 ] ; then
   echo "APSTART FAILED"
       exit 1
fi

/opt/GroupMail/bin/mlstatp &

(b) 停止スクリプト

Mail Serverを使用しない場合,又はメール設定が完了するまでは,APSTART,APSTOP,及びmlstatpの部分をコメントにしてください。

#! /bin/sh
/opt/GroupMail/bin/APSTOP
if [ $? -ne 0 ] ; then
   echo "APSTOP FAILED"
       exit 1
fi
/opt/GroupMail/bin/GM_STOP
if [ $? -ne 0 ] ; then
   echo "GM_STOP FAILED"
       exit 1
fi

(c) 監視スクリプト

#! /bin/sh
num="`ps -e | grep -v grep | grep adstatp | wc -l`"
if [ $num -eq 0 ] ; then
   echo "adstatp NOT FOUND"
   exit 1
fi
num="`ps -e | grep -v grep | grep mlstatp | wc -l`"
if [ $num -eq 0 ] ; then
   echo "mlstatp NOT FOUND"
   exit 1
fi
exit 0