From: yujian Date: Tue, 21 Mar 2006 11:20:09 +0000 (+0000) Subject: b=9853 X-Git-Tag: v1_8_0_110~486^2~2136^2~10 X-Git-Url: https://git.whamcloud.com/?a=commitdiff_plain;h=8b42bf6c0d2d5e365a975c1bda8dd6d454ee4977;p=fs%2Flustre-release.git b=9853 - verify service IP addresses with failover nodes --- diff --git a/lustre/utils/cluster_scripts/gen_clumanager_config.sh b/lustre/utils/cluster_scripts/gen_clumanager_config.sh index 9a6938b..8469f7d 100755 --- a/lustre/utils/cluster_scripts/gen_clumanager_config.sh +++ b/lustre/utils/cluster_scripts/gen_clumanager_config.sh @@ -30,16 +30,14 @@ Usage: `basename $0` <-n hostnames> <-d target device> <-s service addresses> -o heartbeat options a "catchall" for other heartbeat configuration options -v verbose mode - Causes `basename $0` to print debugging messages - about its progress. EOF exit 1 } # Global variables -SCRIPT_PATH=$"./" -SCRIPT_VERIFY_SRVIP=${SCRIPT_PATH}$"verify_serviceIP.sh" +SCRIPTS_PATH=${CLUSTER_SCRIPTS_PATH:-"./"} +SCRIPT_VERIFY_SRVIP=${SCRIPTS_PATH}$"verify_serviceIP.sh" LUSTRE_SRV_SCRIPT=$"/etc/rc.d/init.d/lustre" # service script for lustre @@ -129,55 +127,58 @@ verbose_output() { return 0 } -# get_check_srvIPaddrs +# get_nodenames # -# Get and check all the service IP addresses in this failover group -get_check_srvIPaddrs() { +# Get all the node names in this failover group +get_nodenames() { PRIM_NODENAME=`echo ${HOSTNAME_OPT} | awk -F":" '{print $1}'` declare -i idx - local srvIPaddr_str srvIPaddr + local nodename_str nodename - srvIPaddr_str=`echo ${SRVADDR_OPT}|awk '{split($SRVADDR_OPT, a, ":")}\ + nodename_str=`echo ${HOSTNAME_OPT}|awk '{split($HOSTNAME_OPT, a, ":")}\ END {for (i in a) print a[i]}'` idx=0 - for srvIPaddr in ${srvIPaddr_str} + for nodename in ${nodename_str} do - SRV_IPADDRS[idx]=${srvIPaddr} + NODE_NAMES[idx]=${nodename} idx=$idx+1 done - for ((idx = 0; idx < ${#SRV_IPADDRS[@]}; idx++)); do - # Check service IP address - verbose_output "Verifying service IP ${SRV_IPADDRS[idx]} and" \ - "real IP of host ${PRIM_NODENAME} are in the" \ - "same subnet..." - if ! ${SCRIPT_VERIFY_SRVIP} ${SRV_IPADDRS[idx]} ${PRIM_NODENAME} - then - return 1 - fi - verbose_output "OK" - done - return 0 } -# get_nodenames +# get_check_srvIPaddrs # -# Get all the node names in this failover group -get_nodenames() { +# Get and check all the service IP addresses in this failover group +get_check_srvIPaddrs() { declare -i idx - local nodename_str nodename + declare -i i + local srvIPaddr_str srvIPaddr - nodename_str=`echo ${HOSTNAME_OPT}|awk '{split($HOSTNAME_OPT, a, ":")}\ + srvIPaddr_str=`echo ${SRVADDR_OPT}|awk '{split($SRVADDR_OPT, a, ":")}\ END {for (i in a) print a[i]}'` idx=0 - for nodename in ${nodename_str} + for srvIPaddr in ${srvIPaddr_str} do - NODE_NAMES[idx]=${nodename} + SRV_IPADDRS[idx]=${srvIPaddr} idx=$idx+1 done + for ((idx = 0; idx < ${#SRV_IPADDRS[@]}; idx++)); do + for ((i = 0; i < ${#NODE_NAMES[@]}; i++)); do + # Check service IP address + verbose_output "Verifying service IP ${SRV_IPADDRS[idx]} and" \ + "real IP of host ${NODE_NAMES[i]} are in the" \ + "same subnet..." + if ! ${SCRIPT_VERIFY_SRVIP} ${SRV_IPADDRS[idx]} ${NODE_NAMES[i]} + then + return 1 + fi + verbose_output "OK" + done + done + return 0 } @@ -352,13 +353,13 @@ create_config() { } # Main flow -# Get and check all the service IP addresses -if ! get_check_srvIPaddrs; then +# Get all the node names +if ! get_nodenames; then exit 1 fi -# Get all the node names -if ! get_nodenames; then +# Get and check all the service IP addresses +if ! get_check_srvIPaddrs; then exit 1 fi