RGM은 데이터 서비스 자원을 포함하는 자원 그룹이 해당 노드에서 온라인 상태가 되거나 자원이 사용 가능할 때 클러스터 노드에서 Start 메소드를 실행합니다. 샘플 응용 프로그램에서 Start 메소드는 해당 노드의 in.named(DNS) 데몬을 활성화합니다.
#!/bin/ksh # # Start Method for HA-DNS. # # This method starts the data service under the control of PMF. Before starting # the in.named process for DNS, it performs some sanity checks. The PMF tag for # the data service is $RESOURCE_NAME.named. PMF tries to start the service a # specified number of times (Retry_count) and if the number of attempts exceeds # this value within a specified interval (Retry_interval) PMF reports a failure # to start the service. Retry_count and Retry_interval are both properties of the # resource set in the RTR file. #pragma ident “@(#)dns_svc_start 1.1 00/05/24 SMI” ############################################################################### # Parse program arguments. # function parse_args # [args ...] { typeset opt while getopts `R:G:T:' opt do case “$opt” in R) # Name of the DNS resource. RESOURCE_NAME=$OPTARG ;; G) # Name of the resource group in which the resource is # configured. RESOURCEGROUP_NAME=$OPTARG ;; T) # Name of the resource type. RESOURCETYPE_NAME=$OPTARG ;; *) logger -p ${SYSLOG_FACILITY}.err \ -t [$RESOURCETYPE_NAME,$RESOURCEGROUP_NAME,$RESOURCE_NAME] \ “ERROR: Option $OPTARG unknown” exit 1 ;; esac done } ############################################################################### # MAIN # ############################################################################## export PATH=/bin:/usr/bin:/usr/cluster/bin:/usr/sbin:/usr/proc/bin:$PATH # Obtain the syslog facility to use to log messages. SYSLOG_FACILITY=`scha_cluster_get -O SYSLOG_FACILITY` # Parse the arguments that have been passed to this method parse_args “$@” PMF_TAG=$RESOURCE_NAME.named SYSLOG_TAG=$RESOURCETYPE_NAME,$RESOURCEGROUP_NAME,$RESOURCE_NAME # Get the value of the Confdir property of the resource in order to start # DNS. Using the resource name and the resource group entered, find the value of # Confdir value set by the cluster administrator when adding theresource. config_info=scha_resource_get -O Extension -R $RESOURCE_NAME \ -G $RESOURCEGROUP_NAME Confdir` # scha_resource_get returns the “type” as well as the “value” for the extension # properties. Get only the value of the extension property. CONFIG_DIR=`echo $config_info | awk `{print $2}'` # Check if $CONFIG_DIR is accessible. if [ ! -d $CONFIG_DIR ]; then logger -p ${SYSLOG_FACILITY}.err -t [$SYSLOG_TAG] \ “${ARGV0} Directory $CONFIG_DIR missing or not mounted” exit 1 fi # Change to the $CONFIG_DIR directory in case there are relative # path names in the data files. cd $CONFIG_DIR # Check that the named.conf file is present in the $CONFIG_DIR directory. if [ ! -s named.conf ]; then logger -p ${SYSLOG_FACILITY}.err -t [$SYSLOG_TAG] \ “${ARGV0} File $CONFIG_DIR/named.conf is missing or empty” exit 1 fi # Get the value for Retry_count from the RTR file. RETRY_CNT=`scha_resource_get -O Retry_count -R $RESOURCE_NAME \ -G $RESOURCEGROUP_NAM? # Get the value for Retry_interval from the RTR file. Convert this value, which is in # seconds, to minutes for passing to pmfadm. Note that this is a conversion with # round-up, for example, 50 seconds rounds up to one minute. ((RETRY_INTRVAL = `scha_resource_get -O Retry_interval -R $RESOURCE_NAME \ -G $RESOURCEGROUP_NAM? 60)) # Start the in.named daemon under the control of PMF. Let it crash and restart # up to $RETRY_COUNT times in a period of $RETRY_INTERVAL; if it crashes # more often than that, PMF will cease trying to restart it. If there is a # process already registered under the tag <$PMF_TAG>, then, PMF sends out # an alert message that the process is already running. echo “Retry interval is “$RETRY_INTRVAL pmfadm -c $PMF_TAG.named -n $RETRY_CNT -t $RETRY_INTRVAL \ /usr/sbin/in.named -c named.conf # Log a message indicating that HA-DNS has been started. if [ $? -eq 0 ]; then logger -p ${SYSLOG_FACILITY}.info -t [$SYSLOG_TAG] \ “${ARGV0} HA-DNS successfully started” fi exit 0 |