Sun Cluster Geographic Edition のシステム管理

ハートビート喪失に対するアクションシェルスクリプトの作成

ローカルのクラスタがパートナークラスタ側のハートビート喪失を検出したときに実行される、アクションシェルスクリプトを作成できます。スクリプトはルート権限で実行されます。ファイルにはルートの所有権と実行権限を持たせる必要がありますが、スクリプトには書き込み権限を持たせないでください。

Notification_actioncmd プロパティーを設定している場合は、イベントに関する情報を提供する引数を次のようにコマンド行に指定してアクションコマンドを実行します。


# customactioncommandpath -c localclustername -r remoteclustername -e 1 \
-n nodename -t time
customactioncommandpath

作成したアクションコマンドのパスを指定します。

-c localclustername

ローカルクラスタの名前を指定します。

-p remoteclustername

リモートパートナークラスタの名前を指定します。

-e1

ハートビート喪失イベントが発生したことを示す HBLOST=1 を指定します。Sun Cluster Geographic Edition ソフトウェアではハートビート喪失通知だけがサポートされています。そのため、アクションシェルスクリプトに渡すことができる値は -e 1 だけです。

-nnodename

ハートビート喪失イベント通知を送信するクラスタノードの名前を指定します。

-t timestamp

ハートビート喪失イベントの発生時刻を、1970 年 1 月 1 日 00:00:00 (グリニッジ平均時) からの経過時間 (ミリ秒単位) で指定します。


注意 – 注意 –

このスクリプトを使用して、二次クラスタへのテイクオーバーを自動化することができます。しかし、このような自動処理には危険もあります。主クラスタと二次クラスタの両方で、すべてのハートビート接続が完全に失われた結果としてハートビート喪失通知が送信された場合、二次クラスタへのテイクオーバーが自動的に行われるように設定していると、主クラスタが 2 つ存在するという状況が発生する可能性があります。



例 6–11 Sun Cluster Geographic Edition ソフトウェアで提供されたコマンド行情報を通知アクションスクリプトによって解析する

この例は、コマンド行に入力されたイベント情報が通知アクションシェルスクリプトで解析される状況を示しています。


#!/bin/sh

set -- `getopt abo: $*`
if [ $? != 0]
then
      echo $USAGE
      exit 2

fi
for i in $*
do

      case $i in
      -p)      PARTNER_CLUSTER=$1; shift;;
      -e)      HB_EVENT=$2; shift;;
      -c)      LOCAL_CLUSTER=$3; shift;;
      -n)      EVENT_NODE=$4; shift;;
      esac
done