PRIMECLUSTER Global Link Services 説明書 4.1 (伝送路二重化機能編) (Linux版)
目次 索引 前ページ次ページ

第3章 導入> 3.6 オプション機能の設定> 3.6.9 ユーザコマンド実行機能の設定

3.6.9.1 NIC切替方式の設定内容

NIC切替方式運用時のスクリプトファイル呼出形式および定義ファイルサンプルを以下に示します。

(1) IPアドレス活性、非活性時

【スクリプト呼出形式】
/bin/sh shaX param1 param2 param3 param4
param1
activate:活性
inactivate:非活性
param2
before:活性/非活性の前
after:活性/非活性の後
param3
ifname:物理インタフェース名
param4
inet6:アドレスファミリ(IPv6の場合のみ)
※IPv4の場合 param4 はありません。
【定義ファイルサンプル】
#!/bin/sh
#
#       All Rights Reserved, Copyright (c) FUJITSU LIMITED 2004
#
#ident  "%W% %G% %U% - FUJITSU"
#

#
#  Control interface for HA-Net
#

#
#       Params
#
#       $1      activate or inactivate
#       $2      before or after
#       $3      physical interface name
#       $4      address family (IPv6 only)
#

#
# Set Params
#

#INTERFACE=$3
#IP_ADDR1="xx.xx.xx.xx"
#IP_ADDR2="yy.yy.yy.yy"

case $# in
3)
        ADDRESS_FAMILY="inet"
;;
4)
        if [ $4 = "inet6" ]
        then
                ADDRESS_FAMILY="inet6"
        else
                ADDRESS_FAMILY="unknown"
        fi
;;
*)
        ADDRESS_FAMILY="unknown"
;;
esac

if [ $ADDRESS_FAMILY = "inet" ]
then

case "$1" in
'activate')

#
#  Activate interface
#

case "$2" in
'before')
#
# script before activate interface
#

# echo "execute script before activate interface on" $INTERFACE > /dev/console
#if [ ! $INTERFACE = "ethX" ]
#then
#       ifconfig $INTERFACE
#else
#       ifconfig $INTERFACE
#fi
;;

'after')
#
# script after activate interface
#

# echo "execute script after activate interface on" $INTERFACE > /dev/console
#if [ ! $INTERFACE = "ethX" ]
#then
#       arp -d $IP_ADDR1
#       ping $IP_ADDR2 2
#else
#       arp -d $IP_ADDR2
#       ping $IP_ADDR1 2
#fi

;;

*)
        ;;
esac

;;

'inactivate')
#
#  inactivate interface
#

case "$2" in
'before')
#
# script before inactivate interface
#

# echo "execute script before inactivate interface on" $INTERFACE >/dev/console

;;

'after')
#
# script after inactivate interface
#

# echo "execute script after inactivate interface on" $INTERFACE > /dev/console
;;

*)
        ;;
esac

;;

*)
        ;;
esac

fi

if [ $ADDRESS_FAMILY = "inet6" ]
then

case "$1" in
'activate')

#
#  Activate interface
#

case "$2" in
'before')
#
# script before activate interface
#

# echo "execute script before activate interface on" $INTERFACE > /dev/console

;;

'after')
#
# script after activate interface
#

# echo "execute script after activate interface on" $INTERFACE > /dev/console

;;
*)
        ;;
esac

;;

'inactivate')
#
#  inactivate interface
#

case "$2" in
'before')
#
# script before inactivate interface
#

# echo "execute script before inactivate interface on" $INTERFACE >/dev/console
;;

'after')
#
# script after inactivate interface
#

# echo "execute script after inactivate interface on" $INTERFACE > /dev/console
;;

*)
        ;;
esac

;;

*)
        ;;
esac

fi

exit 0

(2) 伝送路異常検出時

【スクリプト呼出形式】
/bin/sh shaX param1
param1
Primary: Primaryインタフェース異常
Secondary: Secondaryインタフェース異常
all: Primary/Secondaryインタフェース双方異常
【定義ファイルサンプル】
#!/bin/sh
#
#    All Rights Reserved, Copyright (c) FUJITSU LIMITED 2004
#
#ident "%W% %G% %U% - FUJITSU"
#
# Control interface for HA-Net
#
#
#   Params
#
#   $1 communication line state  primary/secondary/all
#
#
# Set Params
#
#STATE=$1
#PROC="process_name"
#kill -15 `/bin/ps -e | /bin/sed -n \
#    -e'/'$PROC'$/s/[^0-9 \t].*//p' \
#    ` > /dev/null 2>/dev/null
#if [ $STATE = "primary" ]
#then
# echo "execute script Polling fail : primary" > /dev/console
#fi
#if [ $STATE = "secondary" ]
#then
# echo "execute script Polling fail : secondary" > /dev/console
#fi
#if [ $STATE = "all" ]
#then
# echo "execute script Polling failover" > /dev/console
#fi

(3) 待機パトロール異常、復旧検出時

【スクリプト呼出形式】
/bin/sh shaX param1 param2
param1
establish:待機パトロール確立
recover:待機NIC監視復旧
fail:待機NIC異常
param2
待機NICの物理インタフェース名:ethX等の物理インタフェース名
unknown:待機NICが未決定の場合
【定義ファイルサンプル】
#!/bin/sh
#
#    All Rights Reserved, Copyright (c) FUJITSU LIMITED 2004
#
#ident "%W% %G% %U% - FUJITSU"
#
# Control interface for HA-Net
#
#
#   Params
#
#   $1 standby NIC state  establish/recovery/fail
#   $2 standby NIC name  ethX
#
#
# Set Params
#
#STATE=$1
#NIC=$2
#if [ $STATE = "fail" ]
#then
# echo "execute script Patrol fail ($NIC)" > /dev/console
#fi
#if [ $STATE = "establish" ]
#then
# echo "execute script Patrol establish ($NIC)" > /dev/console
#fi
#if [ $STATE = "recover" ]
#then
# echo "execute script Patrol recover ($NIC)" > /dev/console
#fi



目次 索引 前ページ次ページ

All Rights Reserved, Copyright (C) 富士通株式会社 2005