Sun Java System Application Server 9.1 高可用性 (HA) 管理ガイド

第 6 章 Application Server クラスタの使用

この章では、Application Server クラスタの使用法について説明します。この章の内容は次のとおりです。

クラスタの概要

クラスタは、同じアプリケーション、リソース、および設定情報を共有するサーバーインスタンスの集まりに名前を付けたものです。異なるマシン上のサーバーインスタンスを 1 つの論理クラスタにまとめ、それらのインスタンスを 1 つの単位として管理できます。マルチマシンクラスタのライフサイクルは、DAS を使用して容易に制御できます。

クラスタを使用すると、水平方向のスケーラビリティー、負荷分散、およびフェイルオーバー保護が可能になります。定義により、クラスタ内のすべてのインスタンスに対してリソースとアプリケーションの設定は同じになります。あるサーバーインスタンスまたはクラスタ内のあるマシンに障害が起きると、ロードバランサは障害を検出し、障害の起きたインスタンスからクラスタ内のほかのインスタンスにトラフィックをリダイレクトし、ユーザーセッションの状態を回復します。クラスタ内のすべてのインスタンス上には同一のアプリケーションとリソースがあるため、インスタンスはクラスタ内のほかのどのインスタンスにも処理を継続させることができます。

グループ管理サービス

グループ管理サービス (GMS) は、クラスタ内のインスタンスに対して有効になっている基盤コンポーネントです。GMS を有効にすると、クラスタインスタンスで障害が発生した場合にクラスタおよびドメイン管理サーバー (DAS) が障害を認識し、障害発生時に必要な処理を実行することができます。Application Server の多くの機能は GMS に依存します。たとえば、GMS は IIOP フェイルオーバー、インメモリーレプリケーション、トランザクションサービス、およびタイマーサービスの各機能によって使用されます。

クラスタ内の複数のサーバーインスタンスが異なるマシンに配置されている場合は、それらのマシンが同じサブネット上にあることを確認してください。


注 –

GMS 機能は開発者プロファイルでは利用できません。クラスタプロファイルおよびエンタープライズプロファイルでは、デフォルトで GMS が有効です。


GMS は Shoal フレームワークの中心的なサービスです。Shoal の詳細については、Project Shoal ホームページを参照してください。

Procedureクラスタに対して GMS を有効または無効にする

  1. ツリーコンポーネントで、「クラスタ」を選択します。

  2. クラスタの名前をクリックします。

  3. 「一般情報」で、必要に応じて「ハートビート有効」チェックボックスが選択または選択解除されていることを確認します。

    • GMS を有効にするには、「ハートビート有効」チェックボックスが選択されていることを確認します。

    • GMS を無効にするには、「ハートビート有効」チェックボックスが選択解除されていることを確認します。

  4. GMS を有効にしており、GMS で使用するデフォルトのポートおよび IP アドレスを変更する必要がある場合は、これらの設定値を変更します。

  5. 「保存」をクリックします。

GMS の設定

使用環境に合わせて GMS を設定します。これは、GMS が障害を確認する頻度を決定する設定値を変更することによって行います。たとえば、障害検出試行の間のタイムアウト、障害が疑われるメンバーの再試行の回数、または、クラスタのメンバーを確認するときのタイムアウトを変更できます。

管理コンソールで監視を設定するには、「Application Server 」ノード > 「設定」 > 「グループ管理サービス」の順に選択します。

同機能を持つ adadmin コマンドは get および set です。

クラスタの操作

Procedureクラスタを作成する

  1. ツリーコンポーネントで、「クラスタ」ノードを選択します。

  2. 「クラスタ」ページで、「新規」をクリックします。

    「クラスタの作成」ページが表示されます。または「新しいクラスタ」ページが表示されます。

  3. 「名前」フィールドで、クラスタの名前を入力します。

    この名前は、次の条件を満たす必要があります。

    • 大文字と小文字、数字、下線、ハイフン、およびピリオド (.) だけで構成される

    • すべてのノードエージェント名、サーバーインスタンス名、クラスタ名、および設定名の間で一意である

    • domain」ではない

  4. 「設定」フィールドで、ドロップダウンリストから設定を選択します。

    • 共用設定を使用しないクラスタを作成するには、default-config を選択します。

      「選択している設定のコピーを作成します」ラジオボタンを選択済みにしておきます。デフォルト設定のコピーは、cluster_name-config という名前になります。

    • 共用設定を使用するクラスタを作成するには、ドロップダウンリストから設定を選択します。

      「選択している設定を参照します」ラジオボタンを選択して、指定した既存の共用設定を使用するクラスタを作成します。

  5. オプションとして、サーバーインスタンスを追加できます。

    クラスタ作成後にサーバーインスタンスを追加することも可能です。

    クラスタのサーバーインスタンスを作成する前に、まず 1 つまたは複数のノードエージェントまたはノードエージェントのプレースホルダを作成します。「ノードエージェントのプレースホルダを作成する」を参照してください。

    サーバーインスタンスを作成するには、次のようにします。

    1. 「作成するサーバーインスタンス」セクションで、「追加」をクリックします。

    2. 「インスタンス名」フィールドにインスタンスの名前を入力します。

    3. 「ノードエージェント」ドロップダウンリストからノードエージェントを選択します。

  6. 「了解」をクリックします。

  7. 表示される「クラスタを正常に作成」ページで「了解」をクリックします。

同機能を持つ asadmin コマンド

create-cluster

参照

クラスタ、サーバーインスタンス、およびノードエージェントを管理する方法の詳細については、「ノードエージェントの配備」を参照してください。

Procedureクラスタのサーバーインスタンスを作成するには

始める前に

クラスタのサーバーインスタンスを作成する前に、まずノードエージェントまたはノードエージェントのプレースホルダを作成します。「ノードエージェントのプレースホルダを作成する」を参照してください。

  1. ツリーコンポーネントで、「クラスタ」ノードを開きます。

  2. クラスタのノードを選択します。

  3. 「インスタンス」タブをクリックして、「クラスタ化されたサーバーインスタンス」ページを表示します。

  4. 「新規」をクリックして、「クラスタ化されたサーバーインスタンスの作成」ページまたは「新しいクラスタ化されたサーバーインスタンス」ページを表示します。

  5. 「名前」フィールドで、サーバーインスタンスの名前を入力します。

  6. 「ノードエージェント」ドロップダウンリストからノードエージェントを選択します。

  7. 「了解」をクリックします。

同機能を持つ asadmin コマンド

create-instance

参照

Procedureクラスタを設定する

  1. ツリーコンポーネントで、「クラスタ」ノードを開きます。

  2. クラスタのノードを選択します。

    「一般情報」ページで、次のタスクを実行できます。

    • 「クラスタの起動」をクリックして、クラスタ化されたサーバーインスタンスを起動します。

    • 「クラスタの停止」をクリックして、クラスタ化されたサーバーインスタンスを停止します。

    • 「EJB タイマーを移行」をクリックして、停止されたサーバーインスタンスからクラスタ内の別のサーバーインスタンスに EJB タイマーを移行します。

同機能を持つ asadmin コマンド

start-clusterstop-clustermigrate-timers

参照

Procedureクラスタ化されたインスタンスを起動、停止、および削除する

  1. ツリーコンポーネントで、「クラスタ」ノードを開きます。

  2. サーバーインスタンスを含むクラスタのノードを開きます。

  3. 「インスタンス」タブをクリックして、「クラスタ化されたサーバーインスタンス」ページを表示します。

    このページで、次のタスクを実行できます。

    • インスタンスのチェックボックスを選択して「削除」、「起動」、または「停止」をクリックし、指定したすべてのサーバーインスタンスに対して選択したアクションを実行します。

    • インスタンスの名前をクリックして、「一般情報」ページを表示します。

Procedureクラスタ内のサーバーインスタンスを設定するには

  1. ツリーコンポーネントで、「クラスタ」ノードを開きます。

  2. サーバーインスタンスを含むクラスタのノードを開きます。

  3. サーバーインスタンスノードを選択します。

  4. 「一般情報」ページでは、次の操作を行えます。

    • 「インスタンスを起動」をクリックして、インスタンスを起動します。

    • 「インスタンスの停止」をクリックして、実行するインスタンスを停止します。

    • 「JNDI ブラウズ」をクリックして、実行中のインスタンスの JNDI ツリーをブラウズします。

    • 「ログファイルを表示」をクリックして、サーバーのログビューアを開きます。

    • 「ログをローテーション」をクリックして、インスタンスのログファイルをローテーションします。このアクションは、ログファイルのローテーションをスケジュールします。実際のローテーションは、次にログファイルがエントリに書き込まれたときに行われます。

    • 「トランザクションの回復」をクリックして、未完了のトランザクションを回復します。

    • 「プロパティー」タブをクリックして、インスタンスのポート番号を変更します。

    • 「監視」タブをクリックして、監視プロパティーを変更します。

参照

Procedureクラスタ用のアプリケーションを設定する

  1. ツリーコンポーネントで、「クラスタ」ノードを開きます。

  2. クラスタのノードを選択します。

  3. 「アプリケーション」タブをクリックして、「アプリケーション」ページを表示します。

    このページで、次のタスクを実行できます。

    • 「配備」ドロップダウンリストから、配備するアプリケーションのタイプを選択します。表示される「配備」ページで、アプリケーションを指定します。

    • 「フィルタ」ドロップダウンリストから、リストに表示するアプリケーションのタイプを選択します。

    • アプリケーションを編集するには、アプリケーション名をクリックします。

    • アプリケーションの横にあるチェックボックスを選択して、「有効」または「無効」を選択し、クラスタのアプリケーションを有効または無効にします。

参照

Procedureクラスタ用のリソースを設定する

  1. ツリーコンポーネントで、「クラスタ」ノードを開きます。

  2. クラスタのノードを選択します。

  3. 「リソース」タブをクリックして、「リソース」ページを表示します。

    このページで、次のタスクを実行できます。

    • クラスタ用の新規リソースを作成します。「新規」ドロップダウンリストから、作成するリソースのタイプを選択します。リソースを作成するときには、必ずクラスタをターゲットとして指定します。

    • リソースをグローバルに有効または無効にします。リソースの横にあるチェックボックスを選択して、「有効」または「無効」をクリックします。このアクションはリソースを削除しません。

    • 特定のタイプのリソースのみを表示します。「フィルタ」ドロップダウンリストから、リストに表示するリソースのタイプを選択します。

    • リソースを編集します。リソース名をクリックします。

参照

Procedureクラスタを削除する

  1. ツリーコンポーネントで、「クラスタ」ノードを選択します。

  2. 「クラスタ」ページで、クラスタ名の横にあるチェックボックスを選択します。

  3. 「削除」をクリックします。

同機能を持つ asadmin コマンド

delete-cluster

参照

ProcedureEJB タイマーを移行する

サーバーインスタンスが異常に、または突然実行を停止した場合、そのサーバーインスタンス上にインストールされた EJB タイマーを、クラスタ内の実行中サーバーインスタンスに移動する必要があります。このためには、次の手順を実行します。

  1. ツリーコンポーネントで、「クラスタ」ノードを開きます。

  2. クラスタのノードを選択します。

  3. 「一般情報」ページで、「EJB タイマーを移行」をクリックします。

  4. 「EJB タイマーを移行」ページで、次の操作を行います。

    1. 「ソース」ドロップダウンリストから、タイマーの移行元である停止されたサーバーインスタンスを選択します。

    2. (省略可能) 「送信先」ドロップダウンリストから、タイマーを移行する先の実行中サーバーインスタンスを選択します。

      このフィールドを空のままにした場合、実行中のサーバーインスタンスがランダムに選択されます。

    3. 「了解」をクリックします。

  5. 送信先サーバーインスタンスを停止して再起動します。

    ソースサーバーインスタンスが実行中の場合、または送信先サーバーインスタンスが停止中の場合は、管理コンソールにエラーメッセージが表示されます。

同機能を持つ asadmin コマンド

migrate-timers

参照

Procedureサービスを停止せずにコンポーネントをアップグレードする

ロードバランサと複数のクラスタを使用して、サービスを停止することなく、Application Server 内のコンポーネントをアップグレードできます。たとえば、コンポーネントとして、JVM、Application Server、または Web アプリケーションが可能です。

次の場合、この方法は使えません。


注意 – 注意 –

クラスタ内のすべてのサーバーインスタンスは一緒にアップグレードします。そうでないと、1 つのインスタンスから異なるバージョンのコンポーネントを実行するインスタンスに処理を継続するセッションによって、バージョンミスマッチが発生するリスクがあります。


  1. クラスタの「一般情報」ページで「クラスタの停止」ボタンを使って、クラスタの 1 つを停止します。

  2. そのクラスタでコンポーネントをアップグレードします。

  3. クラスタの「一般情報」ページで「クラスタの起動」ボタンを使って、クラスタを起動します。

  4. ほかのクラスタで、1つずつプロセスを繰り返します。

    1 つのクラスタ内のセッションから別のクラスタ内のセッションに処理を引き継ぐことはないので、1 つのバージョンのコンポーネントを実行しているサーバーインスタンスから、異なるバージョンのコンポーネントを実行している (別のクラスタ内の) 別のサーバーインスタンスへのセッションへ処理が継続されることによって、バージョンのミスマッチが発生する危険はありません。クラスタは、このようにそのクラスタ内のサーバーインスタンスのセッションフェイルオーバーに対する安全境界として機能します。

参照