この節では、Sun Cluster HA for Apache Tomcat のインストールと構成の計画に必要な情報を示します。
Sun Cluster には、スケーラブルサービスと呼ばれるデータサービスを対象とした水平のスケーラビリティという概念があります。この概念には、IP ベースの負荷均衡アルゴリズムが含まれます。このため、ユーザーはハードウェアのロードバランサー を使用することなく水平に拡張できます。このスケーラブルサービスの詳細は、『Sun Cluster の概念』を参照してください。
スケーラブル構成で Sun Cluster HA for Apache Tomcat を使用する場合は、あらかじめクラスタとクライアントの設備をよく確認する必要があります。
クライアントがプロキシを介してアプリケーションにアクセスする場合は、使用されているプロキシがセッションコンテキストにおいて同一のままであるかを確認する必要があります。これはイントラネットでは一般に保証されますが、確認の調査が必要です。
プロキシがセッションコンテキストで変化する場合、それは負荷均衡の観点から見ると、ソース IP アドレスが変化することを意味します。この場合、(ハードウェア負荷均衡であるかソフトウェア負荷均衡であるかにかかわらず)IP ベースの負荷均衡が失敗します。
特に、アプリケーションがインターネットで使用されている場合、セッションコンテキストにおいて同一のソース IP アドレスが維持されることは保証されません。
この問題を解決して Apache Tomcat から水平方向のスケーラビリティを得るオプションはいくつかあります。
Sun Cluster HA for Apache Tomcat には、水平方向のスケーラビリティを得る手段として 2 つの構成方法が用意されています。
Sun Cluster HA for Apache Tomcat を純粋なスケーラブル構成で使用する。
Sun Cluster HA for Apache Tomcat をマルチマスター構成で使用する。
マルチマスター構成とスケーラブル構成は、どちらもスケーラブルデータサービスとして構成されます。この 2 つの構成の違いは、ノードのアクセス方法にあります。
クライアントは、共有アドレスを使用してスケーラブル構成にアクセスします。この場合、Sun Cluster は負荷均衡を行います。
クライアントは、各ノードの物理アドレスを介してマルチマスター構成にアクセスします。負荷均衡は、どこか別の場所で行う必要があります。
スケーラブルデータサービスの詳細は、『Sun Cluster の概念』を参照してください。
スケーラブル構成としての Sun Cluster HA for Apache Tomcat
同じソース IP アドレスが (たとえばイントラネットなどで) セッションコンテキストにおいて維持されることが保証される場合は、Sun Cluster HA for Apache Tomcat をスケーラブル構成で使用できます。
セッションコンテキストにおいてソース IP アドレスが変化する可能性があるがスケーラブル構成が望ましいという場合は、セッションを複製して Apache Tomcat を構成する必要があります。このような構成は、広域ファイルシステムまたはデータベースを使用したアプリケーションによって行えます。
この方法では、パフォーマンスの低下が発生します。
この場合、Tomcats インバウンドメモリーセッション複製を使用するほうが高いパフォーマンスを得られます。
Apache Tomcat 4.x におけるこの処理は、http://www.theserverside.com/resources/article.jsp?l=Tomcat の説明に従って行なってください。
Apache Tomcat 5.x には、インバウンドメモリーセッション複製 が組み込み機能として含まれています。
Apache Tomcat 3.x の場合、インバウンドメモリーセッション複製は設定できません。
マルチマスター構成としての Sun Cluster HA for Apache Tomcat
上記以外の状況では、Sun Cluster HA for Apache Tomcat をマルチマスター構成で使用できます。外部的な負荷均衡が必要であることに注意してください。通常の構成では、スケーラブル Apache Web サーバーをロードバランサーとして使用し、Apache Web サーバーの各インスタンスの背後で Apache Tomcat インスタンスの物理的なホスト名を 1 つ構成します。また、セッションコンテキストを処理する必要のあるハードウェアロードバランサーを使用することもできます。
スケーラブル構成とマルチマスター構成の違いは、クライアントがクラスタノードにアクセスする方法だけです。スケーラブル構成ではクライアントは共有アドレスにアクセスしますが、マルチマスター構成ではクライアントは物理的なホスト名にアクセスします。このため、Sun Cluster の観点からはこれらの 2 つの構成に違いはありません。
Sun Cluster HA for Apache Tomcat のインストールと構成の計画を立てる際には、この節に示された制限事項を考慮してください。この節では、Sun Cluster HA for Apache Tomcat だけに適用されるソフトウェアとハードウェア上の構成制限の一覧を示します。
すべてのデータサービスに適用される制限事項については、『Sun Cluster ご使用にあたって』を参照してください。
Sun Cluster HA for Apache Tomcat によるスケーラブル構成は、セッション複製または信頼性のあるソース IP アドレスを達成できる場合だけ採用してください。これ以外の状況でこの構成を採用すると、アプリケーションの動作に予期しない結果が生じることがあります。
信頼できるソース IP アドレスを使用するスケーラブル構成で Sun Cluster HA for Apache Tomcat を導入する場合は、リソースパラメタ Load_balancing_policy を必ず LB_STICKY に設定する必要があります。 特に、セッション複製がまったく使用されない場合にはこの設定が必要です。この制限が守られないと、アプリケーションの動作に予期しない結果が生じることがあります。その他のすべてのスケーラブル構成では、キャッシュを有効利用できます。
これらの制限事項を守らないと、データサービスの構成がサポートされない場合があります。
ここで示す要件を参考にして、Apache Tomcat のインストールと構成の計画を行なってください。これらの要件が適用されるのは、Sun Cluster HA for Apache Tomcat だけです。Sun Cluster HA for Apache Tomcat のインストールと構成を進めるには、あらかじめ次の要件を満たす必要があります。
次の要件を満たさないと、データサービスの構成がサポートされない場合があります。
スケーラブル構成またはマルチマスター構成のために Tomcat Home ディレクトリをローカル記憶装置上に構成する –Apache Tomcat をスケーラブルリソースグループとしてインストールする場合は、Tomcat Home ディレクトリとその動的なデータをローカル記憶装置上に作成する必要があります。
この作業を行うのは、Apache Tomcat がディレクトリ構造を利用してその構成、ログ、配備されたアプリケーションなどを保存するためです。
ただし、ローカル記憶装置にゆとりがない場合は、共有記憶装置上の広域ファイルシステムを使用することもできます。
この場合、Tomcat アプリケーションの配備は Apache Tomcat をホスティングするノードごとに行う必要があります。
Sun Cluster HA for Apache Tomcat マルチマスター構成の配備 — Apache Tomcat をマルチマスター構成で配備する場合は、前述のロードバランサーが必要です。
フェイルオーバー構成のために共有記憶装置上に Apache Tomcat Home ディレクトリを構成する – Apache Tomcat をフェイルオーバーリソースグループとしてインストールする場合は、Tomcat Home ディレクトリを共有記憶装置上に作成する必要があります。Tomcat Home ディレクトリは、HAStoragePlus リソースと共に広域ファイルシステム (GFS) に置くことも、フェイルオーバーファイルシステム (FFS) に置くこともできます。望ましいのは FFS 上への配置です。
この作業を行うのは、Apache Tomcat がディレクトリ構造を利用してその構成、ログ、配備されたアプリケーションなどを保存するためです。バイナリをローカル記憶装置に保存して動的なデータ部分を共有記憶装置に保存することも可能ですが、このような方法はお勧めできません。
広域ファイルシステムをマウントする場合は /global という接頭辞を指定し、フェイルオーバーファイルシステムをマウントする場合は /local という接頭辞を指定するようにしてください。 必須ではありませんが、こうするのが最も良い方法とされています。
Apache Tomcat コンポーネントとその依存性 — Sun Cluster HA for Apache Tomcat データサービスは、1 つ以上の Apache Tomcat インスタンスを保護するように設定できます。各インスタンスは、1 つの Apache Tomcat リソースによって対応される必要があります。次に、Apache Tomcat リソースとほかの必須リソース間の依存関係の概要を示します。
表 1–4 フェイルオーバー構成用の Apache Tomcat コンポーネントとその依存関係 (-> は依存先を示す)
コンポーネント |
説明 |
---|---|
記憶装置リソース |
このリソースは、SUNW.HAStoragePlus または SUNW.HAStorage リソースタイプのどちらかです。 |
Apache Tomcat (必須) |
-> SUNW.HAStoragePlus / SUNW.HAStorage リソース 記憶装置リソースには、Apache Tomcat ファイルシステムのマウントポイントを管理し、マウントされるまで Apache Tomcat が起動しないようにする役割があります。 |
論理ホスト (必須) |
Apache Tomcat は一般的なデータサービスをベースとしているため、このコンポーネントはリソースグループの論理ホストに暗黙に依存します。したがって、論理ホストが存在する必要がありますが、明示的な依存は不要です。 |
各 Apache Tomcat とそのパラメタファイル pfile がルートファイルシステムに保存されているかぎり、スケーラブル構成の特殊な要件のために記憶装置またはアドレスに依存する必要はありません。この条件が満たされない場合は、次の表の内容に従ってください。
表 1–5 スケーラブル構成またはマルチマスター構成用の Apache Tomcat コンポーネントとその依存関係 (-> は依存先を示す)
コンポーネント |
説明 |
---|---|
記憶装置リソース |
このリソースは、SUNW.HAStorage または SUNW.HAStoragePlus リソースタイプのどちらかです。 |
Apache Tomcat (必須) |
-> 記憶装置リソース 記憶装置リソースには、Apache Tomcat ファイルシステムのマウントポイントを管理し、マウントされるまで Apache Tomcat が起動しないようにする役割があります。 |
共有アドレス (必須) |
共有アドレスリソースは、スケーラブルリソースグループが依存する個別のリソースグループ内に置かれます。 |
Apache Tomcat の詳細は、jakarta.apache.org Web ページを参照してください。
Apache Tomcat コンポーネントの構成 / 登録ファイルは、/opt/SUNWsctomcat/util に置かれています。これらのファイルによって、Sun Cluster に Apache Tomcat コンポーネントを登録できます。
これらのファイル内では、該当する依存関係がすでに適用されています。
# cd /opt/SUNWsctomcat # # ls -l util total 4 -rwx--x--- 1 root other 709 Apr 29 11:57 sctomcat_config -rwx--x--- 1 root other 561 Apr 29 11:58 sctomcat_register # more util/* :::::::::::::: util/sctomcat_config :::::::::::::: # # Copyright 2003 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # # This file will be sourced in by sctomcat_register and the parameters # listed below will be used. # # These parameters can be customized in (key=value) form # # RS - name of the resource for the application # RG - name of the resource group containing RS # PORT - name of the port number # LH - name of the LogicalHostname SC resource # SCALABLE - true or false for a scalable or failover resource # PFILE - absolute pathname to the parameter file for the Tomcat resource # HAS_RS - name of the HAStoragePlus SC resource # (it can be a , separated list for the dependencies) (日本語) # このファイルは、sctomcat_register によってソースに取り込まれます。 # パラメタは以下のものが使用されます。 # # これらのパラメタは、(key=value) フォームを使用してカスタマイズできます。 # # RS - アプリケーションのリソースの名前 # RG - RS を含むリソースグループの名前 # PORT - ポート番号の名前 # LH - LogicalHostname SC リソースの名前 # SCALABLE - スケーラブルリソースかフェイルオーバーリソースかを true または false で指定 # PFILE - Tomcat リソースのパラメタファイルの絶対パス名 # HAS_RS - HAStoragePlus SC リソースの名前 # (依存関係にもとづいて個別のリストにもできる) # RS= RG= PORT=8080 LH= SCALABLE=false PFILE= HAS_RS= :::::::::::::: util/sctomcat_register :::::::::::::: # # Copyright 2003 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # . `dirname $0`/sctomcat_config scrgadm -a -j $RS -g $RG -t SUNW.gds \ -x Start_command="/opt/SUNWsctomcat/bin/start_sctomcat \ -R $RS -G $RG -N $PFILE " \ -x Stop_command="/opt/SUNWsctomcat/bin/stop_sctomcat \ -R $RS -G $RG -N $PFILE " \ -x Probe_command="/opt/SUNWsctomcat/bin/probe_sctomcat \ -R $RS -G $RG -N $PFILE " \ -y Port_list=$PORT/tcp -y Network_resources_used=$LH \ -x Stop_signal=9 \ -y Scalable=$SCALABLE \ -y Resource_dependencies=$HAS_RS |