Sun Cluster データサービス開発ガイド (Solaris OS 版)

Agent Builder の使用

この節では、Agent Builder の使用方法について説明します。また、Agent Builder を使用する前に実施すべき作業についても説明しています。リソースタイプコードを生成したあとで Agent Builder を活用する方法についても説明します。

この節の内容は、次のとおりです。

アプリケーションの分析

Agent Builder を使用する前に、高可用アプリケーションまたはスケーラブルアプリケーションにしようとしているアプリケーションが必要な条件を満たしているかを確認します。この分析はアプリケーションの実行時特性だけに基づくものなので、Agent Builder はこの分析を行うことができません。詳細は、「アプリケーションの適合性の分析」を参照してください。

Agent Builder を使用しても、アプリケーションに適した完全なリソースタイプを必ず作成できるとはかぎりません。しかし、一般に Agent Builder は少なくとも部分的なソリューションにはなります。たとえば、比較的機能の高いアプリケーションでは、Agent Builder がデフォルトでは生成しないコード (プロパティーの妥当性検査を追加するコードや Agent Builder がエクスポーズしないパラメータを調節するコードなど) を別途生成する必要が生じる場合があります。このような場合、生成されたコードまたは RTR ファイルを修正する必要があります。Agent Builder は、まさにこのような柔軟性をもたらすように設計されています。

Agent Builder は、生成されるソースコードの特定の場所にコメントを埋め込みます。ユーザーは、この場所に独自のリソースタイプコードを追加できます。ソースコードを修正したあと、Agent Builder が生成した Makefile を使用すれば、ソースコードを再コンパイルし、リソースタイプパッケージを生成し直すことができます。

Agent Builder が生成したリソースタイプコードを使用せずに、リソースタイプコードを完全に作成し直す場合でも、Agent Builder が生成した Makefile やディレクトリ構造を使用すれば、独自のリソースタイプ用の Solaris パッケージを作成できます。

Agent Builder のインストールと構成

Agent Builder を個別にインストールする必要はありません。Agent Builder は、Sun Cluster ソフトウェアのインストール時にデフォルトでインストールされる SUNWscdev パッケージに含まれます。詳細は、『Sun Cluster ソフトウェアのインストール (Solaris OS 版)』を参照してください。

Agent Builder を使用する前に、次の要件を確認してください。


注 –

Agent Builder では、標準の cc コンパイラ以外のコンパイラも使用できます。別のコンパイラを使用するためには、そのコンパイラ (gcc など) に対するシンボリックリンクを cc から$PATH 内に指定します。あるいは、Makefile におけるコンパイラ指定 (現在は CC=cc) を変更し、別のコンパイラへの完全パスを指定することもできます。たとえば、Agent Builder により生成される Makefile の中で、CC=ccCC=pathname/gcc に変更します。この場合、Agent Builder を直接実行することはできません。代わりに、makemake pkg コマンドを使用して、データサービスコードとパッケージを生成する必要があります。


Agent Builder 画面

Agent Builder は 2 つのステップ (画面) からなるウィザードです。

    Agent Builder では、次の 2 つの画面を使用して、新しいリソースタイプを作成します。

  1. 「作成」画面。この画面では、作成するリソースタイプについての基本情報 (リソースタイプの名前や生成されるファイルの作業用ディレクトリなど) を指定します。作業ディレクトリは、リソースタイプテンプレートの作成や構成に使用する場所です。

    次の情報も指定します。

    • 作成するリソースの種類 (スケーラブルまたはフェイルオーバー)

    • ベースアプリケーションがネットワーク対応かどうか (つまり、そのクライアントとの通信にネットワークを使用するか)

    • 生成するコードのタイプ (C、Korn シェル (ksh)、または GDS)

    GDS の詳細は、第 10 章汎用データサービスを参照してください。この画面の情報はすべて指定する必要があります。指定後、「作成」を選択してその出力を生成します。この後「構成」画面を表示できます。

  2. 「構成」画面。この画面では、ベースアプリケーションを起動するために任意の UNIX シェルに渡すことができる完全なコマンド行を指定します。オプションとして、アプリケーションを停止するコマンドや検証するコマンドも提供できます。これらの 2 つのコマンドを指定しないと、生成される出力は信号を送信してアプリケーションを停止し、デフォルトの検証メカニズムを提供します。検証コマンドの説明は、「構成画面の使用」を参照してください。「構成」画面では、起動コマンド、停止コマンド、および検証コマンドのタイムアウト値の変更も行えます。

Agent Builder の起動


注 –

GUI バージョンの Agent Builder にアクセスできない場合は、コマンド行インタフェースを使用して Agent Builder にアクセスできます。「コマンド行バージョンの Agent Builder を使用する方法」を参照してください。


既存のリソースタイプの作業ディレクトリから Agent Builder を起動すると、このツールは「作成」画面と「構成」画面を既存のリソースタイプの値に初期化します。

Agent Builder は次のコマンドを入力して起動します。


% /usr/cluster/bin/scdsbuilder

「作成」画面が表示されます。

図 9–1 Agent Builder の「作成」画面

「Sun Cluster Agent Builder」ダイアログ - Agent Builder メイン画面

Agent Builder のナビゲーション

「作成」画面と「構成」画面の情報は、次の操作で入力します。

各画面の下にあるボタンを使用すると、作業を完了したり、次の画面に進んだり、以前の画面に戻ったり、Agent Builder を終了したりできます。Agent Builder は、必要に応じてこれらのボタンを強調表示にしたり、グレー表示にしたりします。

たとえば、「作成」画面で必要なフィールドに入力し、希望するオプションを選択してから、画面の下にある「作成」ボタンをクリックします。この時点で、以前の画面は存在しないので、「戻る」ボタンはグレー表示されます。また、この作業が完成するまで次の手順には進めないので、「進む」ボタンもグレー表示されます。

「作成」、「戻る」、「進む」、「キャンセル」コマンドを示す画面下部のパネル

Agent Builder は、画面の下にある「出力ログ」領域に進捗メッセージを表示します。作業が終了したとき、Agent Builder は成功メッセージまたは警告メッセージを表示します。「進む」が強調表示されます。あるいは、これが最後の画面の場合は、「キャンセル」だけが強調表示されます。

「キャンセル」ボタンをクリックすると、任意の時点で Agent Builder を終了できます。

「ブラウズ」コマンド

Agent Builder のフィールドには、そのフィールドに情報を入力できるものや、「ブラウズ」をクリックしてディレクトリ構造内をブラウズし、ファイルまたはディレクトリを選択できるものなどがあります。

「ブラウズ」コマンド

「ブラウズ」をクリックすると、次のような画面が表示されます。

「ブラウズ」画面 - ファイルを一覧表示した状態

フォルダをダブルクリックすると、フォルダが開きます。カーソルをファイルに移動させると、「ファイル名」フィールドにファイルの名前が表示されます。必要なファイルを見つけ、そこにカーソルを移動したら、「選択」をクリックします。


注 –

ディレクトリをブラウズする場合は、必要なディレクトリにカーソルを移動し、「開く」をクリックします。ディレクトリにサブディレクトリがない場合、Agent Builder はブラウズウィンドウを閉じて、ユーザーがカーソルを移動したディレクトリの名前を適切なフィールドに表示します。サブディレクトリがある場合、「閉じる」をクリックすると、ブラウズウィンドウが閉じて、以前の画面に戻ります。Agent Builder は、ユーザーがカーソルを移動したディレクトリの名前を適切なフィールドに表示します。


「ブラウズ」画面の右上隅にあるアイコンには、次のような処理を行います。

アイコン 

目的 

上向き矢印アイコン

ディレクトリツリーの 1 つ上のレベルに移動します。 

家のイラスト付きアイコン

ホームフォルダに戻ります。 

新しいフォルダのアイコン

現在選択しているフォルダの下に新しいフォルダを作成します。 

表示方式を変更するアイコン

ビューを切り替えます。将来のために予約されています。 

Agent Builder のメニュー

Agent Builder には、ドロップダウンメニューとして「ファイル」メニューと「編集」メニューがあります。

Agent Builder の「ファイル」メニュー

「ファイル」メニューでは、次の 2 つのオプションを使用できます。

Agent Builder の「編集」メニュー

「編集」メニューでは、次の 2 つのオプションを使用できます。

作成画面の使用

リソースタイプを作成する最初の段階では、Agent Builder を起動したときに表示される「作成」画面に必要な情報を入力します。次の図は、フィールドに情報を入力したあとの「作成」画面を示しています。

図 9–2 Agent Builder の「作成」画面 (情報の入力後)

情報が入力されたあとの「作成」画面を示すダイアログボックス

作成画面には、次のフィールド、ラジオボタン、およびチェックボックスがあります。


注 –

cc コンパイラが $PATH 変数に含まれていないと、Agent Builder は「C」ラジオボタンをグレー表示し、「ksh」ラジオボタンを選択可能にします。別のコンパイラを指定する方法については、「Agent Builder のインストールと構成」の最後にある注記を参照してください。


必要な情報を入力したあと、「作成」をクリックします。画面の一番下にある「出力ログ」領域には、Agent Builder が行なったアクションが表示されます。「編集」メニューの「出力ログを保存」を使用すれば、出力ログ内の情報を保存できます。

これが終わると、Agent Builder は、成功メッセージか警告メッセージを表示します。


注 –

完全なリソースタイプを生成するには 2 段階の作業が必要ですが、最初の段階 (つまり、作成) が完了したあとに Agent Builder を終了しても、指定した情報や Agent Builder で作成した内容が失われることはありません。「Agent Builder で作成したコードの再利用」を参照してください。


構成画面の使用

リソースタイプを作成する最初の段階では、Agent Builder を起動したときに表示される「作成」画面に必要な情報を入力します。すると、次の画面が表示されます。リソースタイプの作成が完了していなければ、構成画面にはアクセスできません。

図 9–3 Agent Builder の「構成」画面

構成画面

構成画面には、次のフィールドがあります。

Agent Builder の Korn シェルベース $hostnames 変数の使用

多くのアプリケーション (特に、ネットワーク対応アプリケーション) では、アプリケーションが通信し、顧客の要求に対してサービスを提供するホスト名をコマンド行に指定して、アプリケーションに渡す必要があります。多くの場合、ホスト名は、構成画面において、ターゲットリソースタイプの起動、停止、および検証コマンドに指定する必要がある引数です。しかし、アプリケーションが待機するホスト名はクラスタ固有のものです。つまり、ホスト名はリソースがクラスタで実行されるときに決められ、Agent Builder がリソースタイプコードを生成する時点で決めることはできません。

この問題を解決するために、Agent Builder は $hostnames 変数を提供します。この変数を使用すると、起動、停止、および検証コマンドのコマンド行にホスト名を指定できます。


注 –

$hostnames 変数は、Korn シェルベースのサービスでのみサポートされます。$hostnames 変数は、C ベースや GDS ベースのサービスではサポートされません。


$hostnames 変数を指定する方法は、実際のホスト名を指定する方法と同じです。たとえば、次のようになります。


% /opt/network_aware/echo_server -p port-no -l $hostnames

ターゲットリソースタイプのリソースがあるクラスタ上で動作するとき、そのリソースに構成されている LogicalHostname または SharedAddress ホスト名が $hostnames 変数の値に置き換えられます。リソースのホスト名は、Network_resources_used リソースのリソースプロパティーで構成されます。

Network_resources_used プロパティーに複数のホスト名を構成している場合、すべてのホスト名をコンマで区切って $hostnames 変数に指定します。

プロパティー変数の使用

プロパティー変数を使用すれば、Sun Cluster のリソースタイプ、リソース、リソースグループの一部のプロパティーの値を RGM フレームワークから取り出すことができます。Agent Builder は起動、検証、停止のコマンド文字列をスキャンしてプロパティー変数がないかをチェックし、プロパティー変数があればコマンドを実行する前にそれらの変数を対応する値に置き換えます。


注 –

プロパティー変数は、Korn シェルベースのサービスではサポートされません。


プロパティー変数のリスト

この節では、使用できるプロパティー変数を示します。Sun Cluster のリソースタイプ、リソース、リソースグループのプロパティーについては、付録 A 標準プロパティーを参照してください。

リソースプロパティー変数

リソースタイププロパティー変数

リソースグループプロパティー変数

プロパティー変数の構文

プロパティー変数を指定する場合は、プロパティー名の前にパーセント符号 (%) を指定します。次はその例です。

/opt/network_aware/echo_server -t %RS_STOP_TIMEOUT -n %RG_NODELIST

上の例の場合、Agent Builder はこれらのプロパティー変数を解釈し、たとえば、次の値を使って echo_server スクリプトを起動します。

/opt/network_aware/echo_server -t 300 -n phys-node-1,phys-node-2,phys-node-3

Agent Builder によるプロパティー変数の置き換え

Agent Builder では、プロパティー変数のタイプは次のように解釈されます。

Agent Builder で作成したコードの再利用

Agent Builder を使用すると、次のような方法で、完成した作業内容を再利用できます。

Procedure既存のリソースタイプからクローンを作成する方法

Agent Builder で作成した既存のリソースタイプのクローンを作成するには、次の手順に従います。

  1. 既存のリソースタイプを Agent Builder にロードします。

    次のいずれかの方法を使用します。

    • Agent Builder で作成された既存のリソースタイプの作業ディレクトリから Agent Builder を起動します。作業ディレクトリに rtconfig ファイルが含まれているか確認します。Agent Builder がこのリソースタイプの値を「作成」や「構成」画面にロードします。

    • 「ファイル」ドロップダウンメニューの「リソースタイプをロード」オプションを使用します。

  2. 作成画面で作業ディレクトリを変更します。

    「ブラウズ」を使ってディレクトリを選択する必要があります。新しいディレクトリ名を入力するだけでは不十分です。ディレクトリを選択したあと、Agent Builder は「作成」ボタンを有効に戻します。

  3. 必要に応じて既存のリソースタイプに変更を加えます。

    リソースタイプ用に生成されたコードのタイプを変更できます。

    たとえば、初めに Korn シェルバージョンのリソースタイプを作成し、あとで C バージョンのリソースタイプが必要になった場合には、次の手順で対応できます。

    • 既存の Korn シェルリソースタイプをロードする

    • 出力用の言語を C に変更する

    • 「作成」をクリックしてリソースタイプの C バージョンを構築する

  4. リソースタイプのクローンを作成します。

    1. 「作成」をクリックして、リソースタイプを作成します。

    2. 「次へ」をクリックして「構成」画面を表示します。

    3. 「構成」をクリックしてリソースタイプを構成し、次に「キャンセル」をクリックして終了します。

生成されたソースコードの編集

リソースタイプを作成するプロセスを簡単にするために、Agent Builder は入力できる情報量を制限しています。必然的に、生成されるリソースタイプの範囲も制限されます。したがって、より複雑な機能を追加するには、生成されたソースコードまたは RTR ファイルを修正する必要があります。付加的な機能の例としては、プロパティーの妥当性検査を追加するコードや、Agent Builder がエクスポーズしないパラメータを調節するコードなどが挙げられます。

ソースファイルは、install-directory/ rt-name/src ディレクトリに置かれます。Agent Builder は、ソースコード内においてコードを追加できる場所にコメント文を埋め込みます。このようなコメントの形式は次のとおりです (C コードの場合)。

/* User added code -- BEGIN vvvvvvvvvvvvvvv */
/* User added code -- END   ^^^^^^^^^^^^^^^ */

注 –

コメントは Korn シェルソースコードのものと同じですが、Korn シェルソースコードの場合は、コメント記号 (#) がコメントの始めを表します。


たとえば、rt-name.h は、さまざまなプログラムが使用するユーティリティー関数をすべて宣言します。宣言リストの最後はコメント文になっており、ここでは自分のコードに追加したい関数を宣言できます。

install-directory /rt-name/src ディレクトリには、対応するターゲットと共に Makefile も生成されます。make コマンドを使用すると、ソースコードを再コンパイルできます。make pkg コマンドを使用すると、リソースタイプパッケージを生成し直すことができます。

RTR ファイルは、install-directory/ rt-name/etc ディレクトリに置かれます。RTR ファイルは、普通のテキストエディタで編集できます。RTR ファイルの詳細は、「リソースとリソースタイププロパティーの設定」を参照してください。プロパティーについては、付録 A 標準プロパティーを参照してください。

Procedureコマンド行バージョンの Agent Builder を使用する方法

コマンド行バージョンの Agent Builder でも、GUI と同様の基本手順を使用します。ただし、GUI では情報を入力しましたが、コマンド行インタフェースでは scdscreatescdsconfig コマンドに引数を渡します。詳細は、scdscreate(1HA)scdsconfig(1HA)のマニュアルページを参照してください。

コマンド行バージョンの Agent Builder の使用方法は次のとおりです。

  1. アプリケーションに高可用性またはスケーラビリティーを持たせるため、scdscreate を使って Sun Cluster リソースタイプテンプレートを作成します。

  2. scdsconfig を使って、scdscreate で作成したリソースタイプテンプレートを構成します。

    プロパティー変数を指定できます。プロパティー変数については、「プロパティー変数の使用」を参照してください。

  3. 作業ディレクトリの pkg サブディレクトリに移動します。

  4. pkgadd コマンドを実行して、scdscreate で作成したパッケージをインストールします。


    # pkgadd -d . package-name
    
  5. (省略可能) 生成されたソースコードを編集します。

  6. 起動スクリプトを実行します。