Sun Cluster Geographic Edition のシステム管理

ハートビート喪失通知の構成

ハートビートが失われたとき、電子メール通知を送信するか、あるいはアクションスクリプトを実行するように、Sun Cluster Geographic Edition ソフトウェアを構成できます。ハートビート喪失通知は、オプションの Notification_emailaddrs プロパティーと Notification_actioncmd プロパティーを使用して構成します。

ハートビート喪失通知は、ハートビートの Query_interval プロパティーで設定した時間が経過してもハートビート異常が継続する場合に送信されます。ハートビートモニターは、Query_interval に設定された時間間隔で、論理ホスト上の応答側にハートビート要求を送信します。Query_interval に設定された時間内に応答がなかった場合、内部カウントの値が増加します。この値が heartbeat.retries プロパティーに設定された数に達すると、ハートビートが異常な状態になったと見なされます。

たとえば、Query_intervalheartbeat.retries の両方にデフォルト値を設定することができます (120 秒と 3)。この場合、パートナークラスタから最後にハートビート応答があってから 10 分以内にハートビート喪失イベントが送信されます。


120sec (delay since last query) + 3*120sec (wait for normal response) 
+ 120 sec (wait for retry response)

ハートビート喪失システムイベントが発生してからハートビート喪失通知がトリガーされるまでの間に、遅延がさらに発生する可能性があります。電子メール通知を設定している場合は、さらに電子メールの配信遅延が発生することもあります。


注 –

ハートビート喪失イベントが発生しても、必ずしもリモートクラスタがクラッシュしたとは限りません。


これ以降の節では、ハートビート喪失通知プロパティーの設定方法と、ハートビート喪失イベントの発生時に Sun Cluster Geographic Edition ソフトウェアが実行するカスタムアクションスクリプトの作成方法について説明します。

ハートビート喪失通知のプロパティーの設定

ハートビート喪失通知の設定には、2 つのパートナーシッププロパティー、Notification_emailaddrsNotification_actioncmd を使用します。これらのプロパティーの設定には、geops コマンドを使用します。

これらのプロパティーは、パートナーシップの作成時にデフォルトのハートビートに対して設定できます。詳細は、「パートナーシップを作成する方法」を参照してください。「ハートビートのプロパティーを変更する方法」に記載されている方法でも、これらのプロパティーを変更できます。

電子メールでハートビート喪失通知を受けるには、Notification_emailaddrs プロパティーを設定します。コンマで区切り、複数の電子メールアドレスを指定できます。電子メール通知を使用する場合は、クラスタノードが電子メールクライアントとして構成されていなければいけません。メールサービスの設定方法については、『Solaris のシステム管理 (ネットワークサービス)』を参照してください。

ハートビート喪失時にコマンドを実行するには、Notification_actioncmd プロパティーを設定します。


例 12–10 既存のパートナーシップのためにハートビート喪失通知を設定

既存のパートナーシップ paris-newyork-ps に通知先の電子メールアドレスとカスタム通知スクリプトを指定するには、次のようにします。


phys-paris-1# geops set-prop \
-p Notification_emailaddrs=ops@paris.com,ops@newyork.com \
-p Notification_actioncmd=/opt/hb_action.sh paris-newyork-ps 

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

ローカルのクラスタがパートナークラスタ側のハートビート喪失を検出したときに実行される、アクションシェルスクリプトを作成できます。このスクリプトはルートアクセス権を使用して実行されるため、ファイルには、ルートユーザーの所有権と実行権を指定する必要があります。

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


# custom-action-command-path -c local-cluster-name -r remote-cluster-name -e 1 \
-n node-name -t time
custom-action-command-path

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

-c local-cluster-name

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

-p remote-cluster-name

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

-e1

ハートビート喪失イベントが発生したことを示す HBLOST=1 を指定します

-nnode-name

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

-t timestamp

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


注意 – 注意 –

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



例 12–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