Sun Cluster 製品で提供されるデータサービスには、障害モニターが組み込まれています。障害モニターは、次の機能を実行します。
データサービスサーバーのプロセスの予期せぬ終了を検出する
データサービスの健全性の検査
障害モニターは、データサービスが作成されたアプリケーションを表現するリソースに含まれます。このリソースは、データサービスを登録および構成したときに作成します。詳細は、データサービスのマニュアルを参照してください。
障害モニターの動作は、このリソースのシステムプロパティと拡張プロパティによって制御されます。事前に設定された障害モニターの動作は、これらのプロパティーのデフォルト値に基づいています。現在の動作は、ほとんどの Sun Cluster システムに適しているはずです。したがって、障害モニターの調整は、事前に設定されたこの動作を変更する場合「だけに」すべきです。
障害モニターを調整するには、次の作業が含まれます。
障害モニターの検証間隔を設定する。
障害モニターの検証タイムアウトを設定する。
継続的な障害とみなす基準を定義する。
リソースのフェイルオーバー動作を指定する
これらの作業は、データサービスの登録と構成の際に行います。詳細は、データサービスのマニュアルを参照してください。
リソースの障害モニターは、そのリソースを含むリソースグループをオンラインにしたときに起動されます。障害モニターを明示的に起動する必要はありません。
リソースが正しく動作しているかどうかを判断するには、障害モニターで当該リソースを定期的に検証します。障害モニターの検証間隔は、リソースの可用性とシステムの性能に次のような影響を及ぼします。
障害モニターの検証間隔は、障害の検出とその障害への対応にどの程度の時間がかかるかに影響を与えます。したがって、障害モニターの検証間隔を短くすると、障害の検出とその障害への対応にかかる時間も短くなります。このような時間の短縮は、リソースの可用性が向上することを意味します。
障害モニターの検証では、プロセッササイクルやメモリなどのシステムリソースが使用されます。したがって、障害モニターの検証間隔を短くすると、システムの性能は低下します。
さらに、障害モニターの最適な検証間隔は、リソースの障害への対応にどの程度の時間が必要かによって異なります。この時間は、リソースの複雑さが、リソースの再起動などの操作にかかる時間にどのような影響を及ぼすかに依存します。
障害モニターの検証間隔を設定するには、リソースの Thorough_probe_interval システムプロパティーを必要な間隔 (秒単位) に設定します。
障害モニターの検証タイムアウトでは、検証に対するリソースからの応答にどのくらいの時間を許すかを指定します。このタイムアウト内にリソースからの応答がないと、障害モニターは、このリソースに障害があるものとみなします。障害モニターの検証に対するリソースの応答にどの程度の時間がかかるかは、障害モニターがこの検証に使用する操作によって異なります。データサービスの障害モニターがリソースを検証するために実行する操作については、データサービスのマニュアルを参照してください。
リソースの応答に要する時間は、障害モニターやアプリケーションとは関係のない次のような要素にも依存します。
システム構成
クラスタ構成
システム負荷
ネットワークトラフィックの量
障害モニターの検証タイムアウトを設定する場合は、必要なタイムアウト値をリソースの Probe_timeout 拡張プロパティーに秒単位で指定します。
一時的な障害による中断を最小限に抑えるために、障害モニターは、このような障害が発生するとこのリソースを再起動します。継続的な障害の場合は、リソースの再起動よりも複雑なアクションをとる必要があります。
フェイルオーバーリソースの場合は、障害モニターがこのリソースを別のノードにフェイルオーバーします。
スケーラブルリソースの場合は、障害モニターがこのリソースをオフラインにします。
障害モニターは、指定された再試行間隔の中で、リソースの完全な障害の回数が、指定されたしきい値を超えると障害を継続的であるとみなします。ユーザーは、継続的な障害とみなす基準を定義することによって、 可用性要件とクラスタの性能特性を満たすしきい値や再試行間隔を設定できます。
障害モニターは、いくつかの障害を、リソースの「完全な障害」としてみなします。完全な障害は通常、サービスの完全な損失を引き起こします。次に、完全な障害の例を示します。
データサービスサーバーのプロセスの予期せぬ終了
障害モニターがデータサービスサーバーに接続できない
完全な障害が発生すると、障害モニターは再試行間隔内の完全な障害の回数を 1 つ増やします。
障害モニターは、それ以外の障害を、リソースの「部分的な障害」とみなします。部分的な障害は完全な障害よりも重大ではなく、通常、サービスの低下を引き起こしますが、サービスの完全な損失は引き起こしません。次に、障害モニターがタイムアウトするまでにデータサービスサーバーからの応答が不完全であるという部分的な障害の例を示します。
部分的な障害が発生すると、障害モニターは再試行間隔内の完全な障害の回数を小数点数だけ増やします。部分的な障害は、再試行間隔を過ぎても累積されます。
部分的な障害の次の特性は、データサービスに依存します。
障害モニターが部分的な障害とみなす障害のタイプ
それぞれの部分的な障害が完全な障害の回数に追加する小数点数
データサービスの障害モニターが検出する障害については、データサービスのマニュアルを参照してください。
障害のあるリソースが再起動するのに必要な最大時間は、次のプロパティーの値を合計したものです。
Thorough_probe_interval システムプロパティー
Probe_timeout 拡張プロパティー
再試行回数がしきい値に達しないうちに再試行間隔がきてしまうのを避けるためには、再試行間隔としきい値の値を次の式に従って計算します。
retry_interval >= 2 x threshold × (thorough_probe_interval + probe_timeout)
係数 2 は、ただちにリソースをフェイルオーバーしたりオフラインにすることはない部分的な検証障害を考慮したものです。
しきい値と再試行間隔を設定するには、リソースの次のようなシステムプロパティーを使用します。
リソースのフェイルオーバー動作は、次の障害に対して RGM がどのように応答するかを決定します。
リソースの起動の失敗
リソースの停止の失敗
リソースの障害モニターの停止の失敗
リソースのフェイルオーバー動作を指定するには、リソースの Failover_mode システムプロパティーを設定します。このプロパティーに指定できる値については、「リソースのプロパティー」における Failover_mode システムプロパティーの説明を参照してください。