サンプルのデータサービスはクラスタのイベント (管理アクション、アプリケーションの異常終了、ノードまたはゾーンの異常終了など) に応じて、DNS アプリケーションの起動、停止、再起動や、クラスタのゾーンまたはノード間での DNS アプリケーションの切り替えを行います。
アプリケーションの再起動は、プロセス監視機能 (PMF) によって管理されます。アプリケーションの障害が再試行最大期間または再試行最大回数を超えると、障害モニターは、アプリケーションリソースを含むリソースグループを別のノードまたはゾーンにフェイルオーバーします。
サンプルのデータサービスは、nslookup コマンドを使用してアプリケーションが正常であることを確認する PROBE メソッドという形で障害監視機能を提供します。DNS サービスのハングを検出すると、PROBE は DNS アプリケーションをローカルで再起動することによって、この状況を修正しようとします。DNS アプリケーションをローカルで再起動することで状況が改善されず、サービスの問題が繰り返し検出される場合、PROBE は、サービスをクラスタ内の別のノードまたはゾーンにフェイルオーバーしようとします。
サンプルのデータサービスには、具体的に、次のような要素が含まれています。
リソースタイプ登録ファイル - データサービスの静的なプロパティーを定義します。
Start コールバックメソッド - HA-DNS データサービスを含むリソースグループがオンラインになるときに RGM によって実行され、in.named デーモンを起動します。
Stop コールバックメソッド - HA-DNS を含むリソースグループがオフラインになるときに RGM によって実行され、in.named デーモンを停止します。
障害モニター - DNS サーバーが動作しているかどうかを確認することによって、サービスの信頼性を検査します。障害モニターはユーザー定義の PROBE メソッドによって実装され、Monitor_start と Monitor_stop コールバックメソッドによって起動および停止されます。
Validate コールバックメソッド - RGM によって実行され、サービスの構成ディレクトリがアクセス可能であるかどうかを検査します。
Update コールバックメソッド - クラスタ管理者がリソースプロパティーの値を変更したときに RGM によって呼び出され、障害モニターを再起動します。