この例で使用するサンプルのリソースタイプ登録 (RTR) ファイルは、DNS リソースタイプの静的な構成を定義します。このタイプのリソースは、RTR ファイルで定義されているプロパティーを継承します。
RTR ファイル内の情報は、クラスタ管理者が HA-DNS データサービスを登録したときに Resource Group Manager (RGM) によって読み取られます。
RTR ファイルの形式は明確に定義されています。リソースタイププログラム、システム定義リソースプロパティー、拡張プロパティーという順番で並んでいます。詳細については、rt_reg(4) のマニュアルページと「リソースとリソースタイププロパティーの設定」を参照してください。
以降の節では、サンプル RTR ファイルの特定のプロパティーについて説明します。これらの節には、ファイルのさまざまな部分のリストがあります。サンプル RTR ファイルの内容の完全なリストについては、「リソースタイプ登録ファイルのリスト」を参照してください。
次のリストに示すように、サンプルのRTR ファイルはコメントから始まり、そのあとに、HA-DNS 構成を定義するリソースタイププロパティーが続きます。
リソースグループ、リソース、およびリソースタイプのプロパティー名は大文字と小文字が区別されません。プロパティー名を指定する際には、大文字と小文字を任意に組み合わせることができます。
# # Copyright (c) 1998-2005 by Sun Microsystems, Inc. # All rights reserved. # # Registration information for Domain Name Service (DNS) # #pragma ident “@(#)SUNW.sample 1.1 00/05/24 SMI” Resource_type = “sample”; Vendor_id = SUNW; RT_description = “Domain Name Service on Sun Cluster”; RT_version =”1.0”; API_version = 2; Failover = TRUE; RT_basedir=/opt/SUNWsample/bin; Pkglist = SUNWsample; Start = dns_svc_start; Stop = dns_svc_stop; Validate = dns_validate; Update = dns_update; Monitor_start = dns_monitor_start; Monitor_stop = dns_monitor_stop; Monitor_check = dns_monitor_check;
RTR ファイルの最初のエントリには、Resource_type プロパティーを宣言する必要があります。最初のエントリで宣言されていない場合は、リソースタイプの登録に失敗します。
次に、これらのプロパティーについての情報を説明します。
リソースタイプ名は、Resource_type プロパティーだけで指定できます (例: sample)。または接頭辞 vendor-id + ピリオド (.) + リソースタイププロパティー (例: SUNW.sample) の形式を使用することでも指定できます。
vendor-id を指定する場合、リソースタイプを定義する企業の略号を使用します。リソースタイプ名はクラスタ内で一意である必要があります。
RT_version プロパティーは、ベンダーによって指定されたサンプルのデータサービスのバージョンを識別します。
API_version プロパティーは Sun Cluster のバージョンを識別します。たとえば API_version = 2 は、Sun Cluster 3.0 以降の任意のバージョンの Sun Cluster でデータサービスを実行できることを示します。API_version = 5 は、3.1 9/04 以降の任意のバージョンの Sun Cluster にデータサービスをインストールできることを示します。ただし API_version = 5 は、3.1 9/04 の前にリリースされたすべてのバージョンの Sun Cluster にデータサービスをインストールできないことも示します。このプロパティーは、「リソースタイププロパティー」の API_version のエントリでより詳細に説明されています。
Failover = TRUE は、データサービスが、複数のノード上で同時にオンラインにできるリソースグループ上では実行できないことを示します。
RT_basedir は相対パス (コールバックメソッドのパスなど) を補完するためのディレクトリパスで、/opt/SUNWsample/bin を指します。
Start、Stop、Validate は、RGM によって実行される個々のコールバックメソッドプログラムへのパスを提供します。これらのパスは、RT_basedir で指定されたディレクトリからの相対パスです。
Pkglist は、SUNWsample をサンプルのデータサービスのインストールを含むパッケージとして識別します。
この RTR ファイルに指定されていないリソースタイププロパティー (Single_instance、Init_nodes、Installed_nodes など) は、デフォルト値に設定されます。リソースタイププロパティーの完全なリストとそのデフォルト値については、「リソースタイププロパティー」を参照してください。
クラスタ管理者は、RTR ファイルのリソースタイププロパティーの値を変更できません。
慣習上、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 秒 = 1 時間) を提供します。サンプル RTR ファイルは、最小タイムアウトを 60 秒に変更し、デフォルト値を 300 秒に変更しています。クラスタ管理者は、このデフォルト値を使用することも、タイムアウト値を 60 秒以上の 別の値に変更することもできます。Sun Cluster は最大値を設定していません。
プロパティー Thorough_probe_interval、Retry_count、Retry_interval の TUNABLE 属性は ANYTIME に設定されています。これらの設定は、データサービスが動作中でも、クラスタ管理者がこれらのプロパティーの値を変更できることを意味します。上記のプロパティーは、サンプルのデータサービスによって実装される障害モニターによって使用されます。サンプルのデータサービスは、管理アクションによってさまざまなリソースが変更されたときに障害モニターを停止および再起動するように、Update を実装します。「Update メソッドの仕組み」を参照してください。
リソースプロパティーは次のように分類されます。
必須。クラスタ管理者はリソースを作成するときに値を指定する必要があります。
任意。クラスタ管理者が値を指定しない場合、システムがデフォルト値を提供します。
条件付き。RGM は、RTR ファイル内にプロパティーが宣言されている場合にかぎりプロパティーを作成します。
サンプルのデータサービスの障害モニターは、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 の値を構成できるようにする必要があります。