この記事は、フェイルオーバー/スイッチオーバー後、リソースが正常に起動した際、任意の処理を実施する方法を紹介します。
LifeKeeperに標準的な機能ではサポートされていませんので、Genericリソースとリソース依存関係を活用することで実現できます。
手順
複数のリソースで依存関係が構成されている場合、フェイルオーバー/スイッチオーバーの後、リソースが下位から上位の方向にて順に処理されます。
例えば、次のリソースの構成となる場合、起動処理は C→B→A の順にて処理されます。
(停止処理は逆となりますので、A→B→C の順となります。)
A リソース
└ B リソース
└ C リソース
次に、ROOT というGeneric リソースを作成し、既存のリソース構成の最上位(依存関係)に追加すると、フェイルオーバーやスイッチオーバーの後、リソースの起動順番がC→B→A →ROOT になります。
ROOT リソース
└ A リソース
└ B リソース
└ C リソース
ここで、Generic リソースの起動スクリプトに実行したい内容またはスクリプトの呼び出しを追記すると
フェイルオーバー/スイッチオーバー後、リソースが正常に起動した際、特定のスクリプトを実行できます。停止用スクリプトでは、exit 0 のみを記載しても問題ありません。
※起動用スクリプトを含め、exit 0 にて処理が終了すると、Generic リソースの起動(停止)は成功したと判断します。
exit 1 にて処理が終了すると、Generic リソースの起動(停止)は失敗したと判断します。
※quickCheck や Local Recovery 用のスクリプトの用意は不要です。
その他、Generic リソース作成直後は、稼働系ノード、待機系ノードにて Generic リソースの起動用スクリプト及び停止用スクリプトの内容が同一となります。
そのため、稼働系ノード、待機系ノードのいずれか一方にて、起動用スクリプトや停止用スクリプトの内容を変更されたい場合は、対象のノードにおける次のスクリプトを、vi コマンド等より直接編集してください。
なお、編集いただいた内容は、ファイルの保存後に即時反映されますので、LifeKeeperの再起動は不要です。
参考資料
[ドキュメント][Windows]%20汎用アプリケーションリソース開発の手引
[Linux] GenericARK開発ガイドとサンプルスクリプト
改訂履歴
[公開日:2024年4月16日]