Sun Cluster 3.1 データサービス開発ガイド

出力

この節では、Agent Builder の出力について説明します。

ソースファイルとバイナリファイル

リソースグループと、最終的にはクラスタ上のリソースを管理する Resource Group Manager (RGM) は、コールバックモデル上で動作します。つまり、特定のイベント (ノードの障害など) が発生したとき、RGM は、当該ノード上で動作しているリソースごとにリソースタイプのメソッドを呼び出します。たとえば、RGM は Stop メソッドを呼び出して、当該ノード上で動作しているリソースを停止します。次に、Stop メソッドを呼び出して、異なるノード上でリソースを起動します。このモデルの詳細については、RGM モデルコールバックメソッド、および rt_callbacks( 1HA) のマニュアルページを参照してください。

このモデルをサポートするため、Agent Builder は、 install_directory/rt_name/bin ディレクトリに、コールバックメソッドとして機能する 8 つの実行可能プログラム (C) またはスクリプト (ksh) を生成します。


注 –

厳密には、障害モニターを実装する rt_name_probe プログラムはコールバックプログラムではありません。RGM は rt_name_probe を直接呼び出すのではなく、rt_name_monitor_start および rt_name_monitor_stop を呼び出します。そして、これらのメソッドが rt_name_probe を呼び出すことによって、障害モニターが起動および停止されます。


Agent Builder が生成する 8 つのメソッドは次のとおりです。

各メソッドに固有な情報については、rt_callbacks(1HA) のマニュアルページを参照してください。

Agent Builder は、install_directory/rt_name/src ディレクトリ (C 出力の場合) に、次のファイルを生成します。

Agent Builder は rt_name.o ファイルを各メソッドの .o ファイルにリンクして、実行可能ファイルを install_directory/rt_name/bin ディレクトリに作成します。

ksh 出力の場合、install_directory/rt_name/bininstall_directory/rt_name/src ディレクトリは同じです。各ディレクトリには、7 つのコールバックメソッドと PROBE メソッドに対応する 8 つの実行可能スクリプトが格納されます。


注 –

ksh 出力には、2 つのコンパイル済みユーティリティープログラム (gettimegethostnames) が含まれます。これらのプログラムは、時間を取得して検証を行うのに必要なコールバックメソッドです。


ソースコードを編集して、make コマンドを実行すると、コードを再コンパイルできます。さらに、再コンパイル後、make pkgコマンドを実行すると、新しいパッケージを生成できます。ソースコードの修正をサポートするために、Agent Builder はソースコード中の適切な場所に、コードを追加するためのコメント文を埋め込みます。生成されたソースコードの編集を参照してください。

ユーティリティースクリプトとマニュアルページ

リソースタイプを生成し、そのパッケージをクラスタにインストールした後は、リソースタイプのインスタンス (リソース) をクラスタ上で実行する必要があります。一般に、リソースを実行するには、管理コマンドまたは SunPlex Manager を使用します。Agent Builder は、ターゲットリソースタイプのリソースを起動するためのカスタマイズされたユーティリティスクリプトに加え、リソースを停止および削除するスクリプトも生成します。これら 3 つのスクリプトは install_directory/rt_name/util ディレクトリに格納されており、次のような処理を行います。


注 –

これらのスクリプトは内部的な規則を使用して、リソースとリソースグループの名前付けを行います。そのため、削除スクリプトを使用できるリソースは、対応する起動スクリプトで起動されたリソースだけです。


Agent Builder は、スクリプト名にアプリケーション名を追加することにより、スクリプトの名前付けを行います。たとえば、アプリケーション名が ftp の場合、各スクリプトは startftpstopftp、および removeftp になります。

Agent Builder は、各ユーティリティースクリプト用のマニュアルページを install_directory/rt_name/man/man1m ディレクトリに格納します。これらのマニュアルページにはスクリプトに渡す必要があるパラメータについての説明が記載されているので、各スクリプトを起動する前に、これらのマニュアルページをお読みください。

これらのマニュアルページを表示するには、man コマンドに -M オプションを付けて、上記のマニュアルページが格納されているディレクトリへのパスを指定する必要があります。たとえば、ベンダーが SUNW で、アプリケーション名が ftp である場合、startftp(1M) のマニュアルページを表示するには、次のコマンドを使用します。


man -M install_directory/SUNWftp/man startftp

クラスタ管理者は、マニュアルページユーティリティースクリプトも利用できます。Agent Builder が生成したパッケージをクラスタ上にインストールすると、ユーティリティースクリプト用のマニュアルページは、 /opt/rt_name/man ディレクトリに格納されます。たとえば、startftp(1M) のマニュアルページを表示するには、次のコマンドを使用します。


man -M /opt/SUNWftp/man startftp

サポートファイル

Agent Builder はサポートファイル (pkginfopostinstallpostremovepreremove など) を install_directory/rt_name/etc ディレクトリに格納します。このディレクトリには、Resource Type Registration (RTR) ファイルも格納されます。RTR ファイルは、ターゲットリソースタイプが利用できるリソースとリソースタイププロパティを宣言して、リソースをクラスタに登録するときにプロパティ値を初期化します。詳細については、リソースとリソースタイププロパティの設定を参照してください。RTR ファイルの名前は、ベンダー名とリソースタイプ名をピリオドで区切って連結したものです。 (たとえば、SUNW.ftp)。

RTR ファイルは、ソースコードを再コンパイルしなくても、標準のテキストエディタで編集および修正できます。ただし、make pkg コマンドを使用して、パッケージを再構築する必要があります。

パッケージディレクトリ

install_directory/rt_name/pkg ディレクトリには、Solaris パッケージが格納されます。パッケージの名前は、ベンダー名とアプリケーション名を連結したものです (たとえば、SUNWftp)。install_directory/rt_name/src ディレクトリ内の Makefile は、新しいパッケージを作成するのに役立ちます。たとえば、ソースファイルを修正し、 コードを再コンパイルした場合、あるいは、パッケージユーティリティースクリプトを修正した場合、make pkg コマンドを使用して新しいパッケージを作成します。

パッケージをクラスタから削除する場合、同時に複数のノードから pkgrm コマンドを実行しようとすると、pkgrm コマンドが失敗する可能性があります。この問題を解決するには、次の 2 つの方法があります。

同時に複数のノードから pkgrm を実行しようとして失敗した場合は、再度いずれかのノードで pkgrm を実行した後、残りのノードで pkgrm を実行します。

rtconfig ファイル

C または ksh ソースコードを生成する場合、Agent Builder は、作業ディレクトリ内に構成ファイル rtconfig を生成します。このファイルには、作成および構成画面でユーザーが入力した情報が含まれています。既存のリソースタイプの作業ディレクトリから Agent Builder を起動した場合、または、「ファイル」メニューの「リソースタイプをロード」 コマンドを使って既存のリソースタイプをロードした場合、Agent Builder は rtconfig ファイルを読み取り、作成および構成画面に、既存のリソースタイプ用としてユーザーが指定した情報を自動入力します。この機能は、既存のリソースタイプのクローンを作成したい場合に便利です。詳細については、既存のリソースタイプのクローンの作成を参照してください。