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

リソースの監視

通常、モニターは、リソース上で定期的に障害検証を実行し、検証したリソースが正しく動作しているかどうかを検出するように実装します。障害検証が失敗した場合、モニターはローカルで再起動するか、RMAPI 関数 scha_control () または DSDL 関数 scds_fm_action() を呼び出して、影響を受けるリソースグループのフェイルオーバーを要求できます。

また、リソースの性能を監視して、性能を調節または報告できます。可能であれば、リソースタイプに固有な障害モニターを作成することを推奨します。このような障害モニターを作成しなくても、リソースタイプは Sun Cluster により基本的なクラスタの監視が行われます。Sun Cluster は、ホストハードウェアの障害、ホストのオペレーティングシステムの全体的な障害、およびパブリックネットワーク上で通信できるホストの障害を検出します。

RGM がリソースモニターを直接呼び出すことはありませんが、RGM は自動的にリソース用のモニターを起動する準備を整えます。リソースをオフラインにするとき、RGM は、リソース自体を停止する前に、Monitor_stop メソッドを呼び出して、ローカルノード上でリソースのモニターを停止します。リソースをオンラインにするとき、RGM は、リソース自体を起動した後に、Monitor_start メソッドを呼び出します。

RMAPI 関数 scha_control()scha_control() を呼び出す DSDL 関数 scds_fm_action() を使用すると、リソースモニターは異なるノードへのリソースグループのフェイルオーバーを要求できます。Monitor_check が定義されている場合、scha_control は健全性検査の一環としてこの関数を呼び出して、リソースが属するリソースグループをマスターするのに要求されたノードが十分信頼できるかどうかを判断します。Monitor_check が「このノードは信頼できない」と報告した場合、あるいはメソッドがタイムアウトした場合、RGM はフェイルオーバー要求に適する別のノードを探します。すべてのノードで Monitor_check が失敗した場合、フェイルオーバーは取り消されます。

リソースモニターは、モニターから見たリソースの状態を反映するように StatusStatus_msg プロパティを設定します。これらのプロパティを設定するには、RMAPI 関数 scha_resource_setstatus() または scha_resource_setstatus コマンド、あるいは DSDL 関数 scds_fm_action() を使用します。


注 –

StatusStatus_msg はリソースモニターに固有の使用方法ですが、これらのプロパティは任意のプログラムで設定できます。


RMAPI による障害モニターの実装例については、「障害モニターの定義」を参照してください。DSDL による障害モニターの実装例については、SUNW.xfnts 障害モニター」を参照してください。Sun が提供するデータサービスに組み込まれている障害モニターについては、『Sun Cluster データサービスの計画と管理 (Solaris OS 版)』を参照してください。