慣習上、RTR ファイルでは、リソースプロパティをリソースタイププロパティのあとに宣言します。 リソースプロパティには、Sun Cluster が提供するシステム定義プロパティと、データサービス開発者が定義する拡張プロパティが含まれます。 どちらのタイプの場合でも、Sun Cluster が提供するプロパティ属性の数 (最小、最大、デフォルト値など) を指定できます。
次のリストは、サンプル RTR ファイルのシステム定義プロパティを示しています。
#リソースタイプ宣言のあとに、中括弧に囲まれたリソースプロパティ宣言の # リストが続く。プロパティ名宣言は、各エントリの左中括弧の直後にある # 最初の属性である必要がある。 # <method>_timeout プロパティの値は、RGM がメソッドの呼び出しが # 失敗したと結論するまでの時間 (秒) を設定する。 # すべてのメソッドタイムアウトの MIN 値は 60 秒に設定されている。 # これは、管理者が短すぎる時間を設定するのを防ぐためである。短すぎる # 時間を設定すると、スイッチオーバーやフェイルオーバーの性能が上がらず、 # さらには予期せぬ RGM アクションが発生する可能性がある(誤った # フェイルオーバー、ノードの再起動、リソースグループの # ERROR_STOP_FAILED 状態への移行など、管理者の介入を必要とする # RGM アクション)。 # メソッドタイムアウトに短すぎる時間を設定すると、データサービス全体の # 可用性が低下する。 { PROPERTY = Start_timeout; MIN=60; DEFAULT=300; } { PROPERTY = Stop_timeout; MIN=60; DEFAULT=300; } { PROPERTY = Validate_timeout; MIN=60; DEFAULT=300; } { PROPERTY = Update_timeout; MIN=60; DEFAULT=300; } { PROPERTY = Monitor_Start_timeout; MIN=60; DEFAULT=300; } { PROPERTY = Monitor_Stop_timeout; MIN=60; DEFAULT=300; } { PROPERTY = Thorough_Probe_Interval; MIN=1; MAX=3600; DEFAULT=60; TUNABLE = ANYTIME; } # 当該ノード上でアプリケーションを正常に起動できないと結論するまでに # 指定された時間内 (Retry_Interval) に行う再試行回数。 { PROPERTY = Retry_Count; MIN=0; MAX=10; DEFAULT=2; TUNABLE = ANYTIME; } # Retry_Interval には 60 の倍数を指定する。これは、この値は秒から分に変換され、 # 端数が切り上げられるためである。 # たとえば、50 (秒) は 1 分に変換される。このプロパティ値は再試行回数 # (Retry_Count ) のタイミングを指定する。 { PROPERTY = Retry_Interval; MIN=60; MAX=3600; DEFAULT=300; TUNABLE = ANYTIME; } { PROPERTY = Network_resources_used; TUNABLE = AT_CREATION; DEFAULT = ””; }
Sun Cluster はシステム定義プロパティを提供しますが、リソースプロパティ属性を使用すると、異なるデフォルト値を設定できます。 リソースプロパティに適用するために利用できる属性の完全なリストについては、リソースプロパティの属性 を参照してください。
サンプルの RTR ファイル内のシステム定義リソースプロパティについては、次の点に注意してください。
Sun Cluster は、すべてのタイムアウトに最小値 (1 秒) とデフォルト値 (3600 秒) を提供します。 サンプルの RTR ファイルは、最小値をそのまま (60 秒) にし、デフォルト値を 300 秒に変更しています。 クラスタ管理者は、このデフォルト値を使用することも、タイムアウト値を変更することもできます (たとえば、60秒以上)。 Sun Cluster は正当な最大値を持っていません。
Thorough_Probe_Interval、Retry_count、Retry_interval プロパティの TUNABLE 属性は ANYTIME に設定されています。 この設定は、データサービスが動作中でも、クラスタ管理者がこれらのプロパティの値を変更できることを意味します。 上記のプロパティは、サンプルのデータサービスによって実装される障害モニターによって使用されます。 サンプルのデータサービスは、管理アクションによってさまざまなリソースが変更されたときに障害モニターを停止および再起動するように、Update を実装します。 詳細は、Update メソッドを参照してください。
リソースプロパティは次のように分類されます。
必須—クラスタ管理者はリソースを作成するときに必ず値を指定する必要があります。
任意—クラスタ管理者が値を指定しない場合、システムがデフォルト値を提供します。
条件付き—RTR ファイルで宣言されている場合だけ、RGM はプロパティを作成します。
サンプルのデータサービスの障害モニターは、Thorough_probe_interval、 Retry_count、Retry_interval、Network_resources_used という条件付きプロパティを使用しているため、開発者はこれらのプロパティを RTR ファイルで宣言する必要があります。 プロパティの分類方法については、r_properties(5) のマニュアルページまたはリソースのプロパティを参照してください。
次に、RTR ファイルの最後の例として、拡張プロパティを示します。
# 拡張プロパティ # クラスタ管理者は、このプロパティの値として、アプリケーションによって # 使用される構成ファイルが格納されているディレクトリのパスを指定する。 # このアプリケーション (DNS) は、PXFS 上の DNS 構成ファイルのパス(通常 # named.conf) のパスを指定する。 { PROPERTY = Confdir; EXTENSION; STRING; TUNABLE = AT_CREATION; DESCRIPTION = ”The Configuration Directory Path”; } # 検証の失敗が宣言されるまでのタイムアウト値(秒)。 { PROPERTY = Probe_timeout; EXTENSION; INT; DEFAULT = 120; TUNABLE = ANYTIME; DESCRIPTION = ”Time out value for the probe (seconds)”; }
サンプルの RTR ファイルは 2 つの拡張プロパティ、Confdir と Probe_timeout を定義します。 Confdir は、DNS 構成ディレクトリへのパスを指定します。 このディレクトリには、DNS が正常に動作するために必要な in.named ファイルが格納されています。 サンプルのデータサービスの Start と Validate メソッドはこのプロパティを使用し、DNS を起動する前に、構成ディレクトリと in.named ファイルがアクセス可能であるかどうかを確認します。
データサービスが構成されるとき、Validate メソッドは、新しいディレクトリがアクセス可能であるかどうかを確認します。
サンプルのデータサービスの PROBE メソッドは、Sun Cluster コールバックメソッドではなく、ユーザー定義メソッドです。 したがって、Sun Cluster は この Probe_timeout プロパティを提供しません。 開発者はこの拡張プロパティを RTR ファイルに定義し、クラスタ管理者が Probe_timeout の値を構成できるようにする必要があります。