付録D クラスターサービスリソースチェックとフェイルオーバーのタイムアウト

本付録は、rgmanager がクラスターリソースのステータスをモニターする方法、ステータスチェック間隔を修正する方法について説明しています。また、動作がタイムアウトすることでサービスが失敗することを示す __enforce_timeouts サービスパラメーターについても説明しています。

注記

本付録の内容を十分に理解するためには、リソースエージェント及びクラスター設定ファイルである /etc/cluster/cluster.conf を詳しく理解していただく必要があります。cluster.conf の要素と属性の総括的な一覧と説明は、/usr/share/cluster/cluster.rng にあるクラスタースキーマと /usr/share/doc/cman-X.Y.ZZ/cluster_conf.html (例えば、/usr/share/doc/cman-3.0.12/cluster_conf.html) にある注釈付きスキーマを参照してください。

D.1. リソースステータスチェック間隔の修正

rgmanager は、全サービスではなく、個別のリソースのステータスを確認します。10 秒ごとに、rgmanager はリソースツリーをスキャンし、「ステータスチェック」間隔が経過したリソースを探します。
各リソースエージェントは、定期的に行われるステータスチェック間の期間を指定します。各リソースは、特別な <action> タグを使用して cluster.conf ファイルで明示的に上書きされていない限りは、これらのタイムアウト値を利用します。
<action name="status" depth="*" interval="10" />
このタグは cluster.conf ファイル内のリソースの特別な子です。例えば、ステータスチェックの間隔を上書きしたいファイルシステムリソースがある場合、cluster.conf ファイルのファイルシステムリソースを以下のように指定できます。

  <fs name="test" device="/dev/sdb3">
    <action name="status" depth="*" interval="10" />
    <nfsexport...>
    </nfsexport>
  </fs>

一部のエージェントは、複数の「深さ」でチェックを行います。例えば、通常のファイルシステムステータスチェック (深さ 0) は、ファイルシステムが正しい場所にマウントされているかを確認します。これより強度なチェックは深さ 10 であり、ファイルシステムからのファイルの読み取りが可能かどうかを確認します。深さ 20 のステータスチェックは、ファイルシステムへの書き込みが可能かどうかを確認します。ここの例では、depth* に設定されています。これは、これらの値がすべての深さに使用されることを示しています。結果として、10 秒ごとにリソースエージェントにより最高に定義された深さ (この場合は 20) で test ファイルシステムを確認します。