Sun GlassFish Enterprise Server 2.1 クイックスタートガイド

第 4 章 ロードバランサの操作

ここでは、Web Server ソフトウェアを Application Server のクラスタに対するロードバランサとして機能するように設定する方法の手順について説明します。また、ロードバランサの設定手順や Web Server にエクスポートする手順についても説明します。ロードバランサ機能は、エンタープライズプロファイルかクラスタプロファイルでドメインを実行している場合のみ使用できます。

ロードバランサはクラスタとともに配備されます。ロードバランサには次のような機能があります。

Enterprise Server には、Sun JavaTM System Web Server、Apache、および Microsoft Windows IIS などの一般的な Web サーバー用のロードバランスプラグインが含まれています。

このセクションを完了するには、このマニュアルの手順に従って今までに作成したドメイン管理サーバーと 2 つのインスタンスに加え、Web Server を実行するための十分なメモリーがシステムに必要です。512M バイト~ 1024M バイトのメモリーをシステムに装備することをお勧めします。

このトピックでは、次の手順について説明します。

ロードバランスの設定

ロードバランスを設定する前に、ロードバランサプラグインをインストールする必要があります。ここでは、クラスタまたはエンタープライズプロファイルでドメインを実行していることを前提とします。

Procedureロードバランスを設定するには

  1. 管理コンソールを使用してロードバランサを作成します。または、asadmin create-http-lb(1) コマンドを使用することもできます。

    1. 管理コンソールで「HTTP ロードバランサ」ノードをクリックします。

    2. 「新規」をクリックします。

    3. ロードバランサの名前として lb1 と入力し、Web Server のインストールされているホスト、Web Server インスタンスのポートを入力します。このサンプルシナリオでは、Web Server ホストは localhost で、ポートは 38000 です。

    4. 「変更を自動的に適用」チェックボックスをオンにします。このオプションを選択した場合は、ロードバランサの設定をエクスポートする必要がありません。ロードバランサの設定に対するすべての変更が、自動的に伝達されます。

    5. ターゲットとして cluster1 を選択します。

      サンプルのクラスタ (cluster1) の作成方法は、「クラスタの作成 」を参照してください。

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

  2. cluster1 のロードバランスを有効にします。

    asadmin enable-http-lb-server cluster1

  3. clusterjsp アプリケーションのロードバランスを有効にします。

    asadmin enable-http-lb-application –name clusterjsp cluster1

参照

ロードバランサの設定や診断プログラムの作成などの詳細なトピックについては、『Sun GlassFish Enterprise Server 2.1 高可用性 (HA) 管理ガイド』の第 4 章「HTTP 負荷分散の設定」を参照してください。

ロードバランスの起動

Web Server を起動または再起動することでロードバランスを起動します。

ロードバランスの検証

アプリケーションを配備してロードバランサが実行されたら、ロードバランスが機能していることを検証します。

Procedureロードバランスを検証するには

  1. clusterjsp アプリケーションの最初のページを表示するには、ブラウザで次の URL を入力します。

    http:// localhost:web_server_port /clusterjsp

    localhost 変数を、Web Server を実行するシステム名に置き換えます。

    web_server_port 変数を、web_server_install_dir /https-hostname /config/server.xmlLS 要素のポート属性の値に置き換えます。この例では、ポート 38000 を使用しています。

    「アプリケーションの配備を確認する」で表示されたのと同じようなページが表示されます。

  2. セッションおよびホスト情報が次のとおり表示されるかどうかを確認します。次に例を示します。

    • Executed From Server: localhost

    • Server Port Number: 38000

    • Executed Server IP Address: 192.18.145.133

    • Session Created: Day Mon 05 14:55:34 PDT 2005

  3. Server Port Number は 38000、つまり Web Server のポートです。ロードバランサは、クラスタの 2 つのインスタンスに要求を転送しました。

  4. 別のブラウザソフトウェア、または別のマシン上のブラウザを使用して、新しいセッションを作成します。同じブラウザからの要求が何度も続いて、同じインスタンスに進みます。

    これらのセッションは、クラスタの 2 つのインスタンスに分散されている必要があります。次の場所にあるサーバーアクセスログファイルを調べれば確認できます。

    • Solaris Java Enterprise System インストールの場合

      /var/opt/SUNWappserver/nodeagents/nodeagent_name /instance1/logs/access/server_access_log

      /var/opt/SUNWappserver/nodeagents/nodeagent_name /instance2/logs/access/server_access_log

    • Linux Java Enterprise System インストールの場合

      /var/opt/sun/appserver/nodeagents/ nodeagent_name/instance1/logs/access/server_access_log

      /var/opt/sun/appserver/nodeagents/ nodeagent_name/instance2/logs/access/server_access_log

    • Windows Java Enterprise System インストールの場合

      as-install \nodeagents\nodeagent_name \instance1\logs\access\server_access_log

      as-install\nodeagents\nodeagent_name \instance1\logs\access\server_access_log

    • スタンドアロンの Enterprise Server インストールの場合

      as-install /nodeagents/nodeagent_name/instance1/logs/access/server_access_log

      as-install/nodeagents/nodeagent_name /instance2/logs/access/server_access_log

  5. HttpSession に格納する名前と値のペア (Name=Name Value=Duke) を追加します。

  6. 「セッションデータに追加」ボタンをクリックします。

  7. セッションデータが追加されたかどうかを確認します。

インメモリーレプリケーション機能を使用した高可用性とフェイルオーバー

GlassFish v2 は HADB を提供していません。高可用性とフェイルオーバーのために、GlassFish ではインメモリーレプリケーション機能が提供されています。この機能を実行するための手順を次に示します。

  1. アプリケーションを配備する前にロードバランサプラグインをインストールした Web サーバーを再起動します。これによって、loadbalancer.xml ファイルに設定されている順序で、インスタンスによって要求が処理されます。この章で提供される loadbalancer.xml ファイルを使用する場合、instance1 が最初の要求を処理します。

  2. すでに clusterjsp Web アプリケーションが配備済みなので、ここにセッションデータが格納されます。最初の要求を処理したのと同じインスタンスによって後続の要求が処理され、セッションデータが要求間で維持されていることを確認できるようにする必要があります。

  3. いくつか要求を送信し、これらの要求を処理したインスタンスをメモしてから、その特定のインスタンスをシャットダウンします。インスタンスを停止するには次のコマンドを使用します。 asadmin stop-instance --user adminuser --password adminpassword instance1

  4. 次の要求を送信し、新しいデータが格納されていることと、これまでに追加されたデータもまだセッション内に存在することを確認します。要求を処理するサーバーのどれかが使用できない場合は、同じクラスタ内の別のサーバーが、それ以前のすべてのセッションとともにその要求を引き継ぎ、要求を完了させます。