Sun Cluster データサービス開発ガイド (Solaris OS 版)

制御および初期化コールバックメソッド

制御および初期化コールバックメソッドは、主に、リソースを起動および停止します。その他にも、リソース上で初期化と終了コードを実行します。

Start

リソースを含むリソースグループがクラスタノード上でオンラインになったとき、RGM はクラスタノード上でこのメソッドを実行します。このメソッドは、そのノード上でリソースを起動します。

ローカルノード上でリソースが起動され、利用可能になるまで、Start メソッドは終了してはなりません。したがって、Start メソッドは終了する前にリソースをポーリングし、リソースが起動しているかどうかを判断する必要があります。さらに、このメソッドには、十分な長さのタイムアウト値を設定する必要があります。たとえば、データベースデーモンなど特定のリソースが起動するのに時間がかかる場合、そのメソッドには十分な長さのタイムアウト値が必要です。

RGM が Start メソッドの失敗に応答する方法は、Failover_mode プロパティーの設定によって異なります。

リソースタイプ登録 (RTR) ファイルの Start_timeout プロパティーが、リソースの Start メソッドのタイムアウト値を設定します。

Stop

リソースを含むリソースグループがクラスタノード上でオフラインになったとき、RGM はクラスタノード上でこの必須メソッドを実行します。このメソッドは、リソースを (アクティブであれば) 停止します。

ローカルノード上でリソースがすべての活動を完全に停止し、すべてのファイル記述子を閉じるまで、Stop メソッドは終了してはなりません。そうしないと、RGM が (実際にはアクティブであるのに) リソースが停止したと判断するため、データが破壊されることがあります。データの破壊を防ぐために最も安全な方法は、リソースに関連するローカルノード上ですべてのプロセスを停止することです。

Stop メソッドは終了する前にリソースをポーリングし、リソースが停止しているかどうかを判断する必要があります。さらに、このメソッドには、十分な長さのタイムアウト値を設定する必要があります。たとえば、特定のリソース (データベースデーモンなど) が停止するのに時間がかかる場合、そのメソッドには十分な長さのタイムアウト値が必要です。

RGM が Stop メソッドの失敗に応答する方法は、Failover_mode プロパティーの設定によって異なります。「リソースのプロパティー」を参照してください。

RTR ファイルの Stop_timeout プロパティーが、リソースの Stop メソッドのタイムアウト値を設定します。

Init

リソースを管理下に置くとき、RGM はこのオプションメソッドを実行して、リソースの初期化を 1 回だけ実行します。リソースグループが管理されていない状態から管理されている状態に切り替えられるとき、またはすでに管理されているリソースグループでリソースが作成されるとき、RGM はこのメソッドを実行します。このメソッドは、Init_nodes リソースプロパティーにより特定されるノード上で呼び出されます。

Fini

リソースを管理下から外すとき、RGM はこのオプションメソッドを実行してリソース使用後のクリーンアップ処理を実行します。リソースグループが管理されていない状態に切り替えられるとき、または管理されているリソースグループからリソースが削除されるとき、RGM はこのメソッドを実行します。このメソッドは、Init_nodes リソースプロパティーにより特定されるノード上で呼び出されます。

Boot

RGM は Init とよく似たこのオプションメソッドを実行し、リソースの所属リソースグループが RGM の管理下に置かれたあと、クラスタを結合するノード上のリソースを初期化します。Init_nodes リソースプロパティーにより特定されるノード上で、RGM はこのメソッドを実行します。起動または再起動の結果としてノードがクラスタに結合または再結合したときに、Boot メソッドは呼び出されます。


注 –

InitFini Boot メソッドが失敗すると、syslog() 関数がエラーメッセージを生成します。ただし、それ以外は RGM によるリソース管理に影響しません。