汎用データサービス (GDS: Generic Data Service) バージョン 2 は、単純なネットワーク認識型およびネットワーク非認識型アプリケーションを Oracle Solaris Cluster Resource Group Manager (RGM) フレームワークにプラグインすることにより、これらのアプリケーションの可用性またはスケーラビリティーを向上できるようにするためのメカニズムです。
GDSv2 には、コールバックメソッド (rt_callbacks(1HA)) やリソースタイプ登録 (RTR) ファイル (rt_reg(4)) を備えた、フル機能の Oracle Solaris Cluster リソースタイプが含まれています。
boot コマンドのタイムアウト値を秒単位で指定します。
任意
60 秒
300 秒
すべての時間
リソースが正常に開始または停止できなかった場合、またはリソースモニターが正常ではないリソースを検出し、その結果再起動またはフェイルオーバーを要求する場合に RGM が取る回復アクションを変更します。
failover_mode プロパティーの詳細は、r_properties(5) のマニュアルページを参照してください。
任意
SOFT
すべての時間
fini コマンドのタイムアウト値を秒単位で指定します。
任意
60 秒
300 秒
すべての時間
init コマンドのタイムアウト値を秒単位で指定します。
任意
60 秒
300 秒
すべての時間
monitor_start コマンドのタイムアウト値を秒単位で指定します。
任意
60 秒
300 秒
すべての時間
monitor_stop コマンドのタイムアウト値を秒単位で指定します。
任意
60 秒
300 秒
すべての時間
起動に失敗したリソースをモニターが再起動する回数です。
retry_count プロパティーの詳細は、r_properties(5) のマニュアルページを参照してください。
条件付き
10
2
すべての時間
失敗したリソースの再起動の間、この秒数だけ待機します。
retry_interval プロパティーの詳細は、r_properties(5) のマニュアルページを参照してください。
条件付き
3600
370 秒
すべての時間
リソースがスケーラブルであるかどうか、つまり、リソースが Oralce Solaris Cluster ソフトウェアのネットワーキング負荷分散機能を使用することを示します。
scalable プロパティーが TRUE に設定されている場合は、load_balancing_policy や load_balancing_weights などの追加プロパティーを使用して負荷分散動作を構成します。
scalable、load_balancing_policy、load_balancing_weights の各プロパティーの詳細は、r_properties(5) のマニュアルページを参照してください。
任意
FALSE
作成時
start コマンドのタイムアウト値を秒単位で指定します。
任意
60 秒
300 秒
すべての時間
stop コマンドのタイムアウト値を秒単位で指定します。
任意
60 秒
300 秒
すべての時間
リソースの障害プローブの呼び出し間隔 (秒数) を指定します。
thorough_probe_interval の詳細は、r_properties(5) のマニュアルページを参照してください。
条件付き
3600 秒
60 秒
300 秒
すべての時間
update コマンドのタイムアウト値を秒単位で指定します。
任意
60 秒
300 秒
すべての時間
validate コマンドのタイムアウト値を秒単位で指定します。
任意
60 秒
300 秒
すべての時間
ノードまたはゾーンがブートまたはリブートされたときに実行されるコマンドを指定します。直接シェルに渡すことができる完全なコマンド行を指定してください。通常、このコマンドは init_command と同じ初期化を実行します。このコマンドが (前回の実行中にリソースを初期化している場合でも) 不変であることを確認する必要があります。このコマンドの以降の呼び出しは、正常に終了する必要があります。
任意
Null
無効時
プロセスモニター機能 (PMF) によってモニターされるプロセスを制御します。このプロパティーには、フォークされた子プロセスのモニターレベルを指定します。このプロパティーを省略したり、このプロパティーをデフォルト値に設定したりすると、pmfadm(1M) の –C オプションを省略した場合と同じになり、すべての子 (およびその子孫) がモニターされます。
任意
-1
作成時
通常、Debug_gds は Oracle Solaris Cluster の開発およびサポートで使用されます。ただし、GDSv2 内で発生するさまざまな呼び出しおよびシーケンスを理解する際に立つことがあります。
debug_gds=FALSE が設定されている場合、GDSv2 の内部デバッグメッセージがシステムログに送信されません。
debug_gds=TRUE が設定されている場合、すべての GDSv2 の内部デバッグメッセージがシステムログに送信されます。
任意
TRUE
無効時
トレースおよびデバッグのメッセージを設定するコマンドを指定します。debug_level を大きくすると、より多くのメッセージをシステムログに書き込むことができます。1 つのノードに設定するか、またはノードごとに異なる値を設定することによって、ノードごとの拡張プロパティーとして debug_level を設定できます。
任意
True
整数
0
3
0
すべての時間
リソースのフェイルオーバーを許可します。プロパティーの値が False の場合、リソースのフェイルオーバーは無効です。このプロパティーを使用して、アプリケーションリソースによるリソースグループのフェイルオーバーを防ぐことができます。
任意
True
無効時
リソースが RGM による管理対象でなくなったときに実行されるコマンドを指定します。直接シェルに渡すことができる完全なコマンド行を指定してください。通常、このコマンドは一部のクリーンアップを実行するか、または init_command で実行された初期化を取り消します。このコマンドは、次の状況が発生したときにリソースが管理対象外になるノードまたはゾーン上で実行されます。
そのリソースを含むリソースグループの状態が管理対象外に切り替えられた。この場合、RGM はノードリスト内のすべてのノードおよびゾーン上で fini_command を実行する GDSv2 fini メソッドを実行します。
リソースが管理対象リソースグループから削除された。この場合、RGM はノードリスト内のすべてのノードおよびゾーン上で fini_command を実行する GDSv2 fini メソッドを実行します。
ノードまたはゾーンがリソースを含むリソースグループのノードリストから削除された。この場合、RGM はノードリスト内のすべてのノードおよびゾーン上で fini_command を実行する GDSv2 fini メソッドを実行します。
任意
Null
無効時
次の状況のいずれかが発生した結果として、リソースが RGM による管理対象になったときに実行されるコマンドを指定します。直接シェルに渡すことができる完全なコマンド行を指定してください。
そのリソースが配置されているリソースグループの状態が管理対象外から管理対象に切り替えられた。
リソースがすでに管理対象になっているリソースグループに作成された。
任意
Null
無効時
ホスト名を取得するシステムコールが呼び出されるたびに挿入される論理ホスト名を指定します。次の操作が実行された場合にかぎり、論理ホストが挿入されます。
clreslogicalhostname(1CL) コマンドで、論理ホスト名に対応するリソースが作成された。
論理ホストが自分のリソースと異なるリソースグループ内にある場合に、リソースに論理ホストリソースとの依存関係がある。
/usr/lib/secure/libschost.so.1 から /usr/cluster/lib/libschost.so.1 へのシンボリックリンクが作成されている必要があります。
/usr/lib/secure/64/libschost.so.1 から /usr/cluster/lib/[amd64|sparcv9]/libschost.so.1 へのシンボリックリンクが作成されている必要があります。
任意
TRUE
Null
無効時
monitor_retry_interval プロパティーによって指定された時間枠内にプロセスモニター機能 (PMF) が障害モニターを再起動する回数。このプロパティーは、リソースではなく障害モニター自身の再起動を参照します。システム定義のプロパティー retry_interval および retry_count は、リソースの再起動を制御します。
任意
整数
4
0 - 2147483647
-1 は、無限の再試行回数を示します。
常時
完全な障害が宣言される前にプローブタイムアウトが発生する可能性がある回数を指定します。
システムの負荷が高く、probe_timeout 値の期間内にプローブを完了できない場合、プローブタイムアウトが発生する可能性があります。また、チェック対象のアプリケーションが応答不能になった場合も、プローブタイムアウトが発生する可能性があります。
プローブタイムアウトが発生した場合、GDSv2 ではアプリケーションが実行中かどうかが認識されず、num_probe_timeouts に完全な障害を宣言することが遅延されます。したがって、num_probe_timeouts=2 の場合、GDSv2 が完全な障害を宣言するには、2 回の連続するプローブタイムアウトが発生する必要があります。完全な障害が宣言された場合、RGM は failover_mode プロパティーをチェックして、実行するアクションを決定します。
任意
1
2
すべての時間
child_mon_level 拡張プロパティーの記載に従って、アプリケーションがプロセスモニター機能 (PMF) の制御下で起動されていることを確認します。モニター対象のプロセスがすべて終了すると、これらのプロセスはリソースプロパティー retry_count および retry_interval の設定に従って再起動されます。再試行回数を超過した場合、RGM は failover _mode プロパティーをチェックして、実行するアクションを決定します。
任意
TRUE
無効時
ネットワーク認識型アプリケーションまたはネットワーク非認識型アプリケーションの健全性を定期的にチェックするコマンドを指定します。アプリケーションを検証するには、シェルに直接渡すことができる完全なコマンドを指定します。アプリケーションが正常に実行されていれば、検証コマンドは終了ステータスとして 0 を返します。
プローブコマンドの終了ステータスは、アプリケーションの障害の重大度を判断するために使用されます。終了ステータス (プローブステータス) は、0 (正常) から 100 (全面的な障害) までの整数になります。検証ステータスの値が 201 で、Failover_enabled の値が FALSE に設定されていなければ、アプリケーションのフェイルオーバーが行われます。
probe_command が設定されておらず、PMF_managed=TRUE が設定されている場合は、内部プローブが使用されます。すべてのアプリケーションプロセスに失敗した場合、このプローブはアプリケーションの PMF タグをチェックして、PMF を使用したアプリケーションの高速再起動を提供します。PMF_managed=FALSE が設定されている場合、probe_command エントリが必須です。
任意
" "
無効時
アプリケーションを起動するコマンドを指定します。直接シェルに渡すことができる完全なコマンドを指定してください。
PMF_managed=TRUE が設定されている場合、start コマンド (またはそれにフォークされる子プロセスのいずれか) は、実際にクライアントにサービスを提供する、長く実行されるプログラムあるいはデーモンである必要があります。child_mon_level 拡張プロパティーの記載に従って、start_command のプロセスツリーは PMF によってモニターされます。
必須
1
デフォルトなし
無効時
最初の試行でアプリケーションの起動に失敗した場合に、start_failed が宣言されるかどうかを指定します。
start_exit_on_error=FALSE が設定されている場合、アプリケーションは正常に起動するまで start_timeout の期間内で、できるだけ頻繁に起動されます。
start_exit_on_error=TRUE が設定されている場合、最初の試行でアプリケーションの起動に失敗すると、start_failed 状態が宣言されます。
任意
FALSE
無効時
アプリケーションを停止するコマンドを指定します。直接シェルに渡すことができる完全なコマンド行を指定してください。
PMF_managed=TRUE が設定されている場合、stop_command を省略できます。stop_command が省略されている場合、stop_signal 拡張プロパティー値が PMF タグの下で実行されているアプリケーションプロセスに送信されます。PMF_managed=FALSE が設定されている場合、stop_command が必須です。
任意
NULL
無効時
アプリケーションの停止に失敗した場合に、stop_failed が宣言されるかどうかを指定します。
stop_exit_on_error=TRUE=TRUE が設定されている場合、アプリケーションの停止に失敗すると、stop_failed が宣言されます。
stop_exit_on_error=FALSE が設定されている場合、アプリケーションの停止に失敗すると、PMF_managed 拡張プロパティーがチェックされます。PMF_managed=TRUE が設定されている場合、stop_signal 拡張プロパティー値が、PMF タグの下で実行されているアプリケーションプロセスに送信されます。PMF_managed=FALSE が設定されている場合、アプリケーションの停止に失敗すると、stop_failed が宣言されます。
任意
FALSE
無効時
PMF_managed=TRUE が設定された場合に、stop_command を使用したアプリケーションの停止に失敗したときにアプリケーションを停止するシグナルを指定します。このプロパティーの値は、signal(3HEAD) のマニュアルページに定義されているものと同じです。
任意
1
37
15
無効時
GDSv2 プローブは、タイムアウトクロックの下で probe_command を実行し、fork(2) および exec(2) の呼び出しを使用して probe_command を新しいプロセスとして実行します。負荷の高いシステムでは、子プロセスがフォークされる時点から子プロセスが probe_command を実行する時点まで、数秒間の遅延が発生する可能性があります。
timeout_delay=FALSE が設定されている場合、子プロセスがフォークされるとすぐに、タイムアウトクロックが開始されます。
timeout_delay=TRUE が設定されている場合、子プロセスの実行が開始されたときにはじめて、タイムアウトクロックが開始されます。
どちらの設定にも利点があるため、timeout_delay を設定したときの影響を考慮するようにしてください。
システムの負荷が高い場合は、RGM が failover_mode プロパティーを照会することでアプリケーションの回復を試みることができるように、プローブタイムアウトを発生させるようにしてください。この場合、負荷の高いシステムでは timeout_delay=FALSE が適切な設定であり、デフォルト設定にもなっています。
システムの負荷が高く、Probe_command の実行が開始されたときにはじめてタイムアウトクロックが開始されることを保証する場合は、timeout_delay=TRUE が適切な設定です。ただし、プローブタイムアウトが引き続き発生しない保証はありません。代わりに、probe_command の実行が開始されるまで、タイムアウトクロックが遅延されるだけです。probe_command が完了処理中の場合に、タイムアウトクロックが開始されると、プローブタイムアウトが引き続き発生する可能性があります。
プローブタイムアウトが発生した場合、障害は GDSv2 に返されます。デフォルトでは、num_probe_timeouts=2 が設定されている場合、2 回の連続するプローブタイムアウトが発生すると完全な障害となります。GDSv2 によって完全な障害が返されると、RGM は Failover_mode プロパティーを照会して、実行するアクションを決定します。
任意
FALSE
すべての時間
アプリケーションを検証するコマンドへの絶対パスを指定します。絶対パスを指定しない場合、アプリケーションは検証されません。
validate コマンドの終了ステータスは、GDSv2 リソースの作成または更新を許可するべきかどうかを決定するのに使用されます。指定された validate コマンドは、リソースを作成または更新する前に、そのリソースを含むリソースグループのノードリストにある各ノードで実行されます。validate コマンドがゼロ以外で終了した場合、要求されたリソースの作成または更新は許可されません。validate コマンドが stdout または stderr に書き込んだ出力は、リソースを作成または更新するための管理コマンドを発行したユーザーに戻されます。このような出力を使用すると、リソースの検証が失敗した理由を説明できます。
検証コマンドはまた、リソースグループを新しいノードに再配置するために scha_control コマンドの GIVEOVER オプションを実行する前にも実行されます。このコマンドがゼロ以外で終了した場合、GIVEOVER はブロックされ、リソースグループは引き続き現在のノードをマスターとします。
任意
NULL
無効時
wait_for_online=TRUE が設定されている場合、start_command が試みられると probe_command が発行されます。probe_command でゼロの終了ステータスが返された場合、アプリケーションは使用可能とみなされ、リソースはオンライン状態になります。
wait_for_online=FALSE が設定されている場合、start_command が試みられても probe_command は発行されません。start_command がゼロの終了ステータスで終了した場合、リソースはオンライン状態になります。それ以外の場合、リソースは start_failed 状態になります。
probe_command が設定されておらず、PMF_managed=TRUE が設定されている場合は、probe_command でダミープローブが使用されます。このダミープローブは、関連付けられた PMF タグが存在するかどうかをチェックするだけです。
任意
TRUE
無効時
この拡張プロパティーは、wait_for_online=TRUE が設定されている場合にのみ使用されます。
wait_for_online=TRUE が設定されている場合、start_timeout の期間内に start_command が試みられると、または probe_command でゼロの終了ステータスが返されるまで、probe_command が実行されます。それ以外の場合、2 秒ごとに probe_command が試みられます。デフォルトでは、start_timeout=300 が設定されているため、probe_command は正常に実行されるまで何回も試みられます。
wait_probe_limit を使用すると、start_timeout の期間内に probe_command が実行される回数を制限できます。
wait_probe_limit=0 が設定されている場合、probe_command でゼロの終了ステータスが返されるまで、start_timeout の期間内に probe_command が試みられます。それ以外の場合、RGM が START タイムアウトを宣言するまで、probe_command の試行が続行されます。
wait_probe_limit=1 が設定されている場合、start_timeout の期間内に probe_command が 1 回だけ試みられます。probe_command でゼロの終了ステータスが返された場合、リソースはオンライン状態になります。それ以外の場合、リソースは start_failed 状態になります。同様に、wait_probe_limit=8 が設定されている場合、start_timeout の期間内に probe_command が最大で 8 回試みられます。probe_command でゼロの終了ステータスが返された場合、リソースはオンライン状態になります。それ以外の場合、リソースは start_failed 状態になります。
任意
0
0
無効時
次の例では、「sleep 1800 &」という提供されたデモアプリケーションを使用します。GDSv2 デモアプリケーションの詳細は、Oracle Solaris Cluster Generic Data Service (GDS) Guide を参照してください。
# clresourcegroup create -p pathprefix=/opt/ORCLscgds/demo myrg # clresource create -g myrg -t ORCL.gds \ # -p Start_command="%RG_PATHPREFIX/demo_start -R %RS_NAME -G %RG_NAME -T %RT_NAME" \ # -p Stop_command="%RG_PATHPREFIX/demo_stop -R %RS_NAME -G %RG_NAME -T %RT_NAME" \ # -p Probe_command="%RG_PATHPREFIX/demo_probe -R %RS_NAME -G %RG_NAME -T %RT_NAME" \ # -p Validate_command="%RG_PATHPREFIX/demo_validate -R %RS_NAME -G %RG_NAME \ # -T %RT_NAME" -d myrs # clresourcegroup online -eM myrg # clresource status myrs
次の属性については、attributes(5) を参照してください。
|
ORCL.gds_proxy(5), clreslogicalhostname(1CL ), clresource(1CL), clresourcegroup(1CL), clresourcetype(1CL), clressharedaddress(1CL), rt_callbacks(1HA), scdsbuilder(1HA), scha_control(1HA), scha_resource_get(1HA), hatimerun(1M), pmfadm(1M), signal(3HEAD), rt_reg(4), attributes(5), r_properties(5), scalable_service(5)