Oracle Solaris Cluster リファレンスマニュアル

印刷ビューの終了

更新: 2015 年 9 月
 
 

rt_callbacks (1HA)

名前

rt_callbacks - Oracle Solaris Cluster リソースとしてサービスを管理するためのコールバックインタフェース

形式

method-path -R resource -T type -G group [-Z zonename]
validate-path [-c | -u] -R resource -T type -G group [-r prop=
     val] [-x prop=val] [-g prop=val] [-Z zonename] [-X prop{nodeid}=
     val]

説明

Oracle Solaris Cluster リソースタイプのコールバックインタフェースは、Resource Group Manager (RGM) がサービスをクラスタリソースとして制御するためのインタフェースを定義します。リソースタイプの実装者は、コールバックメソッドとして機能するプログラムまたはスクリプトを提供します。

method-path

リソースタイプ登録ファイルで宣言されているプログラムへのパスです。このプログラムは、リソースタイプのコールバックメソッド STARTSTOPINITFINIBOOTPRENET_STARTPOSTNET_STOPMONITOR_STARTMONITOR_STOPMONITOR_CHECKUPDATE のいずれかとして clresourcetype コマンドで登録されます。clresourcetype(1CL) および rt_reg(4) のマニュアルページを参照してください。

validate-path

リソースタイプ登録ファイル内でリソースタイプの VALIDATE メソッドとして宣言されているプログラムへのパスです。このプログラムは clresourcetype コマンドで登録されます。

コールバックメソッドは指定されたオプションを渡され、クラスタ上のサービスの操作を制御する特定のアクションを実行します。

リソースタイプの開発者は、リソースタイプ登録ファイルでコールバックメソッドプログラムへのパスを宣言します。クラスタ管理者は、clresourcetype コマンドを使用してクラスタ構成にリソースタイプを登録します。クラスタ管理者は、登録後、登録されたリソースタイプを使用してリソースを作成できます。これらのリソースは、RGM が管理するリソースグループ内に構成されます。

RGM は、管理するリソースグループ内のリソースのコールバックメソッドを自動的に呼び出して、イベントに応答します。コールバックメソッドは、リソースによって表されるサービスに関して特定のアクションを実行すると想定されています。これらのアクションの例には、クラスタノード上でのサービスの停止と開始があります。

コールバックメソッドから返される終了ステータスコードは、コールバックメソッドの成功または失敗を RGM に通知します。メソッドが失敗またはリソース状態の障害を報告すると、RGM がアクションを実行します。この結果、クラスタ管理者は障害に気付き、適切なアクションを実行できます。

オプション

次のオプションがサポートされています。

–c

クラスタ管理者がすべてのリソースとリソース グループのプロパティーの初期設定を検証するためのリソースを作成する際に、このメソッドを呼び出すことを指定します。

RGM は –c オプションまたは –u オプションのどちらかを指定しますが、両方のオプションを同時に指定することはありません。

クラスタ管理者がリソースを作成し、VALIDATE メソッドが呼び出されると、すべてのシステム定義、拡張、およびリソースグループプロパティーが VALIDATE メソッドに渡されます。クラスタ管理者がリソースを更新して、VALIDATE メソッドが呼び出されると、更新されているプロパティーのみが VALIDATE メソッドに渡されます。

–g prop =val

VALIDATE メソッドに渡されるリソースグループプロパティーの値を指定します。

prop

リソースグループプロパティーの名前です。

val

クラスタ管理者がリソースを作成または更新した際にメソッドに渡される値です。

–G group

リソースを構成するリソースグループの名前を指定します。

–r prop =val

VALIDATE メソッドに渡されるシステムが定義したリソースプロパティーの値を指定します。

prop

システムが定義したリソースプロパティーの名前です。

val

クラスタ管理者がリソースを作成または更新した際にメソッドに渡される値です。

–R resource

メソッドが呼び出されるリソース名を指定します。

–T type

リソースが属するリソースタイプの名前を指定します。

–u

クラスタ管理者が既存のリソースまたは既存のリソースグループを更新するとメソッドが呼び出されることを指定します。

RGM は –c オプションまたは –u オプションのどちらかを指定しますが、両方のオプションを同時に指定することはありません。

クラスタ管理者がリソースを作成し、VALIDATE メソッドが呼び出されると、すべてのシステム定義、拡張、およびリソースグループプロパティーが VALIDATE メソッドに渡されます。クラスタ管理者がリソースを更新して、VALIDATE メソッドが呼び出されると、更新されているプロパティーのみが VALIDATE メソッドに渡されます。

–x prop =val

ローカルノードのリソース拡張プロパティーの値を指定します。

prop

リソース拡張プロパティー名です。拡張プロパティーは、リソースタイプの実装によって定義されます。この拡張プロパティーは、リソースタイプ登録ファイルのパラメータ表で宣言されます。

val

クラスタ管理者がリソースを作成または更新した際にメソッドに渡される値です。

–X prop{ nodeid}=val

指定されたノードのノード単位のリソース拡張プロパティーの値を指定します。

prop

リソース拡張プロパティー名です。拡張プロパティーは、リソースタイプの実装によって定義されます。この拡張プロパティーは、リソースタイプ登録ファイルのノード別のパラメータ表で宣言されます。

node

整数のノード ID。これは、ノード別のプロパティー値が設定されるノードを指定します。

val

クラスタ管理者がリソースを作成または更新した際にメソッドに渡される値です。

–Z zonename

リソースグループが実行を構成されている非大域ゾーンの名前を指定します。

Global_zone リソースタイププロパティーに TRUE が設定されている場合、リソースを含むリソースグループが非大域ゾーンで動作している場合でも、メソッドは大域ゾーンで実行されます。このオプションは、リソースグループが実行するよう構成されている非大域ゾーンの名前を指定します。

次のいずれかの条件が満たされると、–Z オプションは渡されません。

  • Global_zone プロパティーに FALSE が設定されます。

  • リソースグループが大域ゾーンで実行するよう構成されている。

使用法

コールバックメソッドは、それらを呼び出す RGM によって定義されます。これらのメソッドは、クラスタリソース上で処理を実行します。また、これらのメソッドは、メソッドが成功したか失敗したかを報告する終了ステータスを返します。各コールバックメソッドについては、次のセクションで説明します。

BOOT

このメソッドは、クラスタがブートまたはリブートされたときに、ノードがクラスタに結合または再結合すると呼び出されます。このメソッドは、Init_nodes リソースタイププロパティーにより指定されたノード上で呼び出されます。INIT と同様に、このメソッドは、リソースを含むリソースグループがオンラインになったあと、クラスタに結合するノード上でリソースを初期化します。このメソッドは、管理されているソースグループ内のリソース上で呼び出されますが、管理されていないリソースグループ内のリソース上では呼び出されません。

FINI

このメソッドは、リソースを含むリソースグループが RGM の管理から外れたときに呼び出されます。このメソッドは、Init_nodes リソースタイププロパティーにより指定されたノード上で呼び出されます。このメソッドは、リソースの構成を解除し、INIT メソッドまたは BOOT メソッドにより行われたすべての永続的な設定をクリーンアップします。

INIT

このメソッドは、リソースを含むリソースグループが RGM の管理下に入ったときに呼び出されます。このメソッドは、Init_nodes リソースタイププロパティーにより指定されたノード上で呼び出されます。このメソッドは、リソースを初期化します。

MONITOR_CHECK

このメソッドは、リソースを含むリソースグループが新しいノードに再配置される前に呼び出されます。このメソッドは、障害モニターが scha_control コマンドまたは scha_control() 関数の GIVEOVER オプションを実行したときに呼び出されます。scha_control(1HA) および scha_control(3HA) のマニュアルページを参照してください。

このメソッドは、リソースグループの潜在的な新しいマスターである任意のノードで呼び出されます。MONITOR_CHECK メソッドは、ノードがリソースを実行するために十分健全であるかどうかを評価します。MONITOR_CHECK メソッドは、並行して実行されるほかのメソッドと衝突しない方法で実装する必要があります。

MONITOR_CHECK メソッドが失敗した場合、コールバックが呼び出されたノードへのリソースグループの再配置は拒否されます。

MONITOR_START

このメソッドは、リソースの起動後に、リソースが起動したノード上で呼び出されます。このメソッドは、リソースのモニターを開始します。

MONITOR_START が失敗した場合、RGM によりリソースの状態が MONITOR_FAILED に設定されます。

MONITOR_STOP

このメソッドは、リソースの停止前に、リソースを実行しているノード上で呼び出されます。このメソッドは、リソースのモニターを停止します。このメソッドは、モニタリングがクラスタ管理者によって無効化されている場合も呼び出されます。

MONITOR_STOP メソッドが失敗した場合に RGM が実行するアクションは、リソースの Failover_mode プロパティーの設定に依存します。Failover_modeHARD に設定されている場合、RGM は、ノードをリブートすることによってリソースを強制的に停止しようとします。その他の場合、RGM はリソースの状態に STOP_FAILED を設定します。

POSTNET_STOP

STOP メソッドを補助するメソッドで、関連ネットワークアドレスを停止したあとに必要な停止アクションを実行します。このメソッドは、STOP メソッドが呼び出されたノード上で呼び出されます。このメソッドは、リソースグループ内のネットワークアドレスを停止したあとに、リソースの STOP メソッドが呼び出されたあと呼び出されます。ただし、このメソッドは、ネットワークアドレスが unplumb される前に呼び出されます。POSTNET_STOP メソッドは、リソースの STOP メソッドと、このリソースに依存するすべてのリソースの POSTNET_STOP メソッドのあとに呼び出されます。

POSTNET_STOP メソッドが失敗したときに RGM が実行するアクションは、リソースの Failover_mode プロパティーの設定によって異なります。Failover_modeHARD に設定されている場合、RGM は、ノードを中止することによってリソースを強制的に停止しようとします。その他の場合、RGM はリソースの状態に STOP_FAILED を設定します。

PRENET_START

START メソッドを補助するメソッドで、関連ネットワークアドレスを構成する前に必要な起動アクションを実行します。このメソッドは、START メソッドが呼び出されるノード上で呼び出されます。このメソッドは、同じリソースグループ内のネットワークアドレスが plumb されたあと、呼び出されます。ただし、このメソッドは、アドレスが構成され、リソースの START メソッドが呼び出される前に呼び出されます。PRENET_START メソッドは、そのリソースの START メソッドの前、およびそのリソースに依存するすべてのリソースの PRENET_START メソッドの前に呼び出されます。

PRENET_START メソッドが失敗したときに RGM が実行するアクションは、リソースの Failover_mode プロパティーの設定によって異なります。Failover_modeSOFT または HARD に設定されている場合、RGM は、そのリソースを含むリソースグループを別のノードに再配置しようとします。その他の場合、RGM はリソースの状態に START_FAILED を設定します。

START

このメソッドは、リソースを含むリソースグループがクラスタノード上でオンラインになったときに、そのクラスタノード上で呼び出されます。クラスタ管理者は、clresourcegroup コマンドを使用して、オンとオフの状態を切り替えることができます。START メソッドは、ノード上のリソースを有効にします。

START メソッドが失敗したときに RGM が実行するアクションは、リソースの Failover_mode プロパティーの設定によって異なります。Failover_modeSOFT または HARD に設定されている場合、RGM は、そのリソースのグループを別のノードに再配置しようとします。その他の場合、RGM はリソースの状態に START_FAILED を設定します。

STOP

このメソッドは、リソースを含むリソースグループがクラスタノード上でオフラインになったときに、そのクラスタノード上で呼び出されます。クラスタ管理者は、clresourcegroup コマンドを使用して、オンとオフの状態を切り替えることができます。このメソッドは、リソースを (アクティブであれば) 停止します。

STOP メソッドが失敗したときに RGM が実行するアクションは、リソースの Failover_mode プロパティーの設定によって異なります。Failover_modeHARD に設定されている場合、RGM は、ノードをリブートすることによってリソースを強制的に停止しようとします。その他の場合、RGM はリソースの状態に STOP_FAILED を設定します。

UPDATE

このメソッドを呼び出すと、プロパティーが変更されたことを実行中のリソースに通知することができます。UPDATE メソッドは、RGM がソースまたはそのリソースグループのプロパティーの設定に成功したあとに呼び出されます。このメソッドは、リソースがオンラインであるノード上で呼び出されます。このメソッドは、アクティブなリソースに影響を与える可能性のあるプロパティー値を読み取り、それに応じて実行中のリソースを調整するために、scha_resource_get および scha_resourcegroup_get コマンドを呼び出すことができます。

VALIDATE

このメソッドは、リソースが作成された場合やリソースまたはリソースを含むリソースグループが更新された場合に呼び出されます。VALIDATE は、そのリソースのタイプの Init_nodes プロパティーで指定されている一連のクラスタノード上で呼び出されます。

VALIDATE メソッドは、リソースの作成または更新が適用される前に呼び出されます。メソッドがノード上で失敗し、障害終了ステータスコードが生成されると、作成または更新は中止されます。

クラスタ管理者がリソースを作成し、VALIDATE メソッドが呼び出されると、すべてのシステム定義、拡張、およびリソースグループプロパティーが VALIDATE メソッドに渡されます。クラスタ管理者がリソースを更新して、VALIDATE メソッドが呼び出されると、更新されているプロパティーのみが VALIDATE メソッドに渡されます。scha_resource_get および scha_resourcegroup_get コマンドを使用すると、更新されていないリソースのプロパティーを取得できます。

リソース依存関係プロパティーは、VALIDATE コマンド行で 2 つの異なる –r オプションで渡されます。一方の –r オプションはリソース名のみを一覧表示し、ローカルノードで適用可能な依存関係を表します。もう一方の –r オプションには、{LOCAL_NODE} などの修飾子を含む依存関係の全体のリストが含まれます。プロパティー名 Resource_dependencies、Resource_dependencies_offline_restart、Resource_dependencies_restart、および Resource_dependencies_weak は、ローカルノードの修飾子を含まない依存関係名を提供します。対応するプロパティー名 Resource_dependencies_Q、Resource_dependencies_Q_offline_restart、Resource_dependencies_Q_restart、および Resource_dependencies_Q_weak は、修飾子を含む依存関係の同じリストを提供します。

たとえば、次を設定します:

# clresource set -p Resource_dependencies=r1@node1,r2@node2,r3{local_node},r4

node1 では、次の引数が VALIDATE メソッドに渡されます。

... -r Resource_dependencies=r1,r3,r4
-r Resource_dependencies_Q=r1@node1,r2@node2,r3{local_node},r4
 ...

node2 では、Resource_dependencies プロパティーの値が r2,r3,r4 になるのに対して、Resource_dependencies_Q プロパティーの値はすべてのノード上で同じです。同様に、プロパティー名 Resource_dependencies_Q_weak、Resource_dependencies_Q_restart、および Resource_dependencies_Q_offline_restart は、依存関係プロパティー Resource_dependencies_weak、Resource_dependencies_restart、および Resource_dependencies_offline_restart にそれぞれ対応します。

Network_resources_used プロパティーを明示的に設定しない場合は、その値は、4 つの Resource_dependencies プロパティーから派生し、これら 4 つのプロパティーに出現するすべてのネットワークアドレスリソースを含んでいます。各ノード上の Network_resources_used プロパティーの派生値は、ノード単位の依存関係をすべて反映しているため、ノードごとに異なる可能性があります。

VALIDATE メソッドを実装すると、ユーザーが stdout または stderr に書き込むすべてのメッセージはユーザーコマンドに戻されます。このアクションは、検証障害の理由を説明したり、リソースに関係してユーザーに指示を与えるのに便利です。

環境変数

Oracle Solaris Cluster リソース管理コールバックメソッドは、RGM によりスーパーユーザー権限で実行されます。これらのメソッドを実装するプログラムは、適切な実行権でインストールされます。セキュリティ上の理由から、これらのプログラムに対する書き込み権は設定しません。

コールバックメソッドの実行のために設定される環境変数は次のとおりです。

HOME=/
PATH=/usr/bin:/usr/cluster/bin
LD_LIBRARY_PATH=/usr/cluster/lib

SIGNALS

コールバックメソッド呼び出しがタイムアウト期間を超えた場合は、最初に SIGTERM シグナルがプロセスに送信されます。SIGTERM シグナルが 10 秒以内にメソッドの実行を停止できなかった場合は、プロセスに SIGKILL シグナルが送信されます。

終了ステータス

次の終了ステータスコードが返されます。

0

コマンドは正常に完了しました。

0 以外

エラーが発生しました。

失敗の終了ステータス値は、失敗時の RGM のアクションに影響を及ぼしません。ただし、終了ステータスはメソッドの失敗時にクラスタログに記録されます。リソースタイプを実装して、0 以外の複数の終了ステータスを定義することにより、クラスタログを介して管理者とエラー情報を交換できます。

属性

次の属性については、attributes(5) を参照してください。

属性タイプ
属性値
使用条件
ha-cluster/developer/api
インタフェース
安定性
発展中

関連項目

clresourcegroup(1CL), clresourcetype(1CL), scha_cmds(1HA), scha_control(1HA), scha_resource_get(1HA), scha_resourcegroup_get(1HA), signal(3C), stdio(3C), scha_calls(3HA), scha_control(3HA), rt_reg(4), attributes(5)