ハートビートの喪失時に電子メール通知を送信してアクションスクリプトを実行するように、Sun Cluster Geographic Edition ソフトウェアを構成できます。ハートビート喪失通知は、オプションの Notification_emailaddrs プロパティーと Notification_actioncmd プロパティーを使用して構成します。
ハートビート喪失通知は、ハートビートの Query_interval プロパティーで設定した時間が経過してもハートビート異常が継続する場合に送信されます。ハートビートモニターは、Query_interval に設定された時間間隔で、論理ホスト上の応答側にハートビート要求を送信します。Query_interval に設定された時間内に応答がなかった場合、内部カウントの値が増加します。この値が heartbeat.retries プロパティーに設定された数に達すると、ハートビートが異常な状態になったと見なされます。
たとえば、Query_interval と heartbeat.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_emailaddrs と Notification_actioncmd を使用します。これらのプロパティーを指定するには、geops コマンドを使用します。
これらのプロパティーは、パートナーシップの作成時にデフォルトのハートビートに対して指定できます。詳細は、「パートナーシップを作成する方法」を参照してください。「ハートビートのプロパティーを変更する方法」に記載されている方法でも、これらのプロパティーを変更できます。
電子メールでハートビート喪失通知を受けるには、Notification_emailaddrs プロパティーを設定します。コンマで区切り、複数の電子メールアドレスを指定できます。電子メール通知を使用する場合は、クラスタノードが電子メールクライアントとして構成されていなければいけません。メールサービスの設定方法については、『Solaris のシステム管理 (ネットワークサービス)』を参照してください。
ハートビート喪失時にコマンドを実行するには、 Notification_actioncmd プロパティーを設定します。
この例では、パートナーシップ 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 プロパティーを設定している場合は、イベントに関する情報を提供する引数を次のようにコマンド行に指定してアクションコマンドを実行します。
# customactioncommandpath -c localclustername -r remoteclustername -e 1 \ -n nodename -t time |
作成したアクションコマンドのパスを指定します。
ローカルクラスタの名前を指定します。
リモートパートナークラスタの名前を指定します。
ハートビート喪失イベントが発生したことを示す HBLOST=1 を指定します。Sun Cluster Geographic Edition ソフトウェアではハートビート喪失通知だけがサポートされています。そのため、アクションシェルスクリプトに渡すことができる値は -e 1 だけです。
ハートビート喪失イベント通知を送信するクラスタノードの名前を指定します。
ハートビート喪失イベントの発生時刻を、1970 年 1 月 1 日 00:00:00 (グリニッジ平均時) からの経過時間 (ミリ秒単位) で指定します。
このスクリプトを使用して、二次クラスタへのテイクオーバーを自動化することができます。しかし、このような自動処理には危険もあります。主クラスタと二次クラスタの両方で、すべてのハートビート接続が完全に失われた結果としてハートビート喪失通知が送信された場合、二次クラスタへのテイクオーバーが自動的に行われるように設定していると、主クラスタが 2 つ存在するという状況が発生する可能性があります。
この例は、コマンド行に入力されたイベント情報が通知アクションシェルスクリプトで解析される状況を示しています。
#!/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 |