パフォーマンスに関連した要因を 第 1 章「製品概念」の説明に従って見積もったあと、Application Server のトポロジを選択します。トポロジとは、マシン、Application Server インスタンス、および HADB ノードの配置や、それらの間の通信フローのことです。
2 つの基本的な配備トポロジが存在します。どちらのトポロジにも、クラスタ内の複数の Application Server インスタンス、HADB ノードのミラー化されたセット、および HADB スペアノードという共通の構成要素が含まれています。どちらのトポロジも、正しく機能するには一連の共通の設定が必要です。
この章の内容は次のとおりです。
両方のトポロジの 「共通の要件」。
次の 2 つのトポロジ:
ここでは、両方のトポロジに共通の要件について説明します。
どちらのトポロジも、次の基本要件を満たす必要があります。
HADB ノードをホストするマシンはペアになっている必要がある。つまり、これらのマシンの台数は偶数である必要があります。
各データ冗長ユニット (DRU) 内のマシンの台数は同じである必要がある。ミラー化された (ペアになった) ノードが、主ノードとは別の DRU に含まれるように HADB データベースを作成します。
HADB ノードをホストする各マシンにローカルのディスク記憶装置があり、その装置を使用して HADB 内のすべての持続情報を格納する必要がある。
HADB ノードをホストするマシンは、同じオペレーティングシステムを実行している必要がある。構成とパフォーマンスの点から見て、同一またはほぼ同一のマシンを使用すると最適です。
HTTP セッション情報および SFSB セッション情報を HADB まで持続させるには、Application Server インスタンスはクラスタ内にあり、関連するすべての要件を満たしている必要がある。クラスタの設定の詳細については、『Sun Java System Application Server Enterprise Edition 8.2 高可用性 (HA) 管理ガイド』の第 6 章「Application Server クラスタの使用」を参照してください。
Application Server インスタンスをホストしているマシンは、構成とパフォーマンスの点から見て、できるだけ同一である必要がある。これは、ロードバランサプラグインが負荷分散にラウンドロビン方式を使用しており、異なるクラスのマシンがインスタンスをホストしている場合は、これらのマシン全体にわたって負荷が最適には分散されないからです。
できれば、DRU ごとに個別の無停電電源装置 (UPS) を用意する。
各 DRU には HADB 内のデータの完全なコピーが含まれているため、ほかの DRU が使用不可になっても引き続き要求に対応できます。ただし、ある DRU 内のノードと、別の DRU にあるそのノードのミラーに同時に障害が発生した場合は、データの一部が失われます。そのため、停電やディスク障害など、単一の障害によって両方の DRU が影響を受けることがないようにシステムを設定することが重要です。
各 DRU を、完全に独立した冗長システム上で実行してください。
HADB ノードとマシンを設定する場合は、次のガイドラインに従ってください。
各マシン上で動作しているノードの数と同数のスペアノードを持たせて各 DRU を設定します。これは、構成内の各マシンが n 個のデータノードを実行している場合は、1 台のマシンの障害によって n 個のノードがダウンするためです。
負荷をできるだけ均等に分散するために、すべてのマシン上で同じ数の HADB ノードを実行します。
同じマシン上の異なる DRU からノードを実行しないでください。同じマシン上の異なる DRU からノードを実行する必要がある場合は、そのマシンが任意のシングルポイント障害 (ディスク、メモリー、CPU、電源、オペレーティングシステムのクラッシュなどに関連した障害) を必ず処理できるようにしてください。
いずれのトポロジも、Application Server インスタンスはクラスタ内にあります。これらのインスタンスは、セッション情報を HADB まで持続させます。クラスタ内のすべての Application Server インスタンスの設定情報を含むようにロードバランサを設定してください。
クラスタの設定、およびクラスタへの Application Server インスタンスの追加の詳細については、『Sun Java System Application Server Enterprise Edition 8.2 高可用性 (HA) 管理ガイド』の第 6 章「Application Server クラスタの使用」を参照してください。
共存トポロジでは、Application Server インスタンスと HADB ノードが同じマシン上に存在します。このため、共存トポロジと呼ばれています。このトポロジに必要なマシンの数は、分離層トポロジに比べて少なくなります。共存トポロジでは、CPU がより効率的に使用されます。つまり、Application Server インスタンスと HADB ノードが 1 台のマシンを共有するため、処理がそれらの間で均等に分散されます。
このトポロジには、少なくとも 2 台のマシンが必要です。スループットを向上させるには、より多くのマシンをペアで追加します。
共存トポロジは、マシンの処理能力をフルに活用できるため、大規模な対称多重処理 (SMP) マシンに適しています。
次の図は、共存トポロジの構成例を示しています。
マシン SYS0 は Application Server インスタンス A を、マシン SYS1 は Application Server インスタンス B を、マシン SYS2 は Application Server インスタンス C を、マシン SYS3 は Application Server インスタンス D をそれぞれホストしています。
これらの 4 つのインスタンスは、情報を次の 2 つの DRU に持続させるクラスタを形成します。
DRU0 は 2 台のマシン、SYS0 と SYS2 で構成されます。HADB ノードのアクティブ 0 はマシン SYS0 上にあります。HADB ノードのスペア 2 はマシン SYS2 上にあります。
DRU1 は 2 台のマシン、SYS1 と SYS3 で構成されます。HADB ノードのアクティブ 1 はマシン SYS1 上にあります。HADB ノードのスペア 3 はマシン SYS3 上にあります。
スケーラビリティーとスループットを向上させるには、より多くのマシンを追加して、Application Server インスタンスと HADB ノードの数を増やします。たとえば、それぞれ 1 つの Application Server インスタンスと 1 つの HADB ノードを含む、2 台のマシンを追加できます。HADB ノードは必ずペアで追加し、各 DRU に対して 1 つのノードを割り当ててください。「共存トポロジのバリエーション」は、この構成を示しています。
このバリエーションでは、「構成例」で説明された共存トポロジにマシン SYS4 と SYS5 が追加されています。
Application Server インスタンスは、次のようにホストされています。
マシン SYS0 はインスタンス A をホストしている
マシン SYS1 はインスタンス B をホストしている
マシン SYS2 はインスタンス C をホストしている
マシン SYS3 はインスタンス D をホストしている
マシン SYS4 はインスタンス E をホストしている
マシン SYS5 はインスタンス F をホストしている
これらのインスタンスは、情報を次の 2 つの DRU に持続させるクラスタを形成します。
DRU0 は、マシン SYS0、SYS2、および SYS4 で構成されます。HADB ノードのアクティブ 0 はマシン SYS0 上にあります。HADB ノードのアクティブ 2 はマシン SYS2 上にあります。HADB ノードのスペア 4 はマシン SYS4 上にあります。
DRU1 は、マシン SYS1、SYS3、および SYS5 で構成されます。HADB ノードのアクティブ 1 はマシン SYS1 上にあります。HADB ノードのアクティブ 3 はマシン SYS3 上にあります。HADB ノードのスペア 5 はマシン SYS5 上にあります。
このトポロジでは、Application Server インスタンスと HADB ノードが別のマシン上に存在します。このため、 分離層 と呼ばれています。
このトポロジには、共存トポロジに比べて多くのハードウェアが必要です。このトポロジは、異なる種類のマシンがある場合に適している可能性があります。Application Server インスタンスをホストするためにあるマシンのセットを割り当て、HADB ノードをホストするために別のセットを割り当てることができます。たとえば、より性能の高いマシンを Application Server インスタンスに使用し、ほかのマシンを HADB に使用することもできます。
次の図は、分離層トポロジを示しています。
このトポロジでは、マシン SYS0 は Application Server インスタンス A を、マシン SYS1 は Application Server インスタンス B をそれぞれホストしています。これらの 2 つのインスタンスは、セッション情報を次の 2 つの DRU に持続させるクラスタを形成します。
DRU0 は 2 台のマシン、SYS2 と SYS4 で構成されます。HADB ノードのアクティブ 0 はマシン SYS2 上にあり、HADB ノードのスペア 2 はマシン SYS4 上にあります。
DRU1 は 2 台のマシン、SYS3 と SYS5 で構成されます。HADB ノードのアクティブ 1 はマシン SYS3 上にあり、HADB ノードのスペア 3 はマシン SYS5 上にあります。
あるマシンに障害が発生した場合でも、任意の DRU の完全なデータが引き続きほかのマシンに使用可能になるように、DRU 上のすべてのノードが異なるマシン上にあります。
分離層トポロジのバリエーションとして、構成に対して水平方向により多くのマシンを追加することにより、Application Server インスタンスの数を増やします。たとえば、新しい Application Server インスタンスを作成することにより、構成例に別のマシンを追加します。同様に、HADB ノードをホストするためのマシンを追加することにより、HADB ノードの数を増やします。HADB ノードは、各 DRU に対して 1 つずつ、ペアで追加する必要があることに注意してください。
「分離層トポロジのバリエーション」は、この構成を示しています。
この構成では、Application Server インスタンスをホストしている各マシンに 2 つのインスタンスがあります。したがって、クラスタ内には合計 6 つの Application Server インスタンスが存在します。
HADB ノードは、マシン SYS3、SYS4、SYS5、および SYS6 上にあります。
DRU0 は、次の 2 台のマシンで構成されます。
HADB ノードのアクティブ 0 と HADB ノードのアクティブ 2 をホストしている SYS3。
HADB ノードのスペア 4 と HADB ノードのスペア 6 を含む SYS5。
DRU1 は、次の 2 台のマシンで構成されます。
HADB ノードのアクティブ 1 と HADB ノードのアクティブ 3 をホストしている SYS4。
HADB ノードのスペア 5 と HADB ノードのスペア 7 をホストしている SYS6。
HADB ノードをホストしている各マシンが 2 つのノードをホストしています。したがって、4 つのアクティブノードと 4 つのスペアノードの、合計 8 つの HADB ノードが存在します。
どのトポロジ (またはバリエーション) がパフォーマンスと可用性の要件をもっともよく満たすかを判断するには、各トポロジをテストし、マシンや CPU の異なる組み合わせで試してください。
目標を満たすには、どういうトレードオフが必要かを判断します。たとえば、保守の容易性が重要な場合は、分離層トポロジの方が適しています。この場合のトレードオフは、このトポロジには共存トポロジに比べて多くのマシンが必要なことです。
トポロジを選択する上で重要な要因は、使用可能なマシンの種類です。システムに大規模な対称多重処理 (SMP) マシンが含まれている場合は、これらのマシンの処理能力をフルに活用できるため、共存トポロジが有力です。システムにさまざまな種類のマシンが含まれている場合は、Application Server 層と HADB 層に異なるマシンのセットを割り当てることができるため、分離層トポロジの方が有効です。たとえば、もっとも性能の高いマシンを Application Server 層に使用し、その他のマシンを HADB 層に使用することもできます。
次の表は、共存トポロジと分離層トポロジを比較しています。左の列にはトポロジの名前が示され、中央の列は各トポロジの長所を、右の列は各トポロジの短所をそれぞれ示しています。
表 3–1 トポロジの比較
トポロジ |
長所 |
短所 |
---|---|---|
共存トポロジ |
必要なマシンの数が少ない。HADB ノードと Application Server インスタンスが同じ層に存在するため、追加の負荷を処理する各スペアノード上に Application Server インスタンスを作成できます。 CPU 使用率の向上。1 台のマシンを共有する Application Server インスタンスと HADB ノードの間で処理が均等に分散されます。 マシンの処理能力をフルに活用できるため、大規模な対称多重処理 (SMP) マシンに有効。 |
保守がより複雑になる。たとえば、保守を実行するために HADB ノードをホストしているマシンをシャットダウンする必要がある場合は、そのマシン上のアプリケーションサーバーインスタンスも使用不可になります。 |
分離層トポロジ |
保守が容易。たとえば、HADB ノードを停止することなく、Application Server インスタンスをホストしているマシン上で保守を実行できます。 異なる種類のマシンがある場合に有効。Application Server 層と HADB 層に異なるマシンのセットを割り当てることができます。たとえば、より性能の高いマシンを Application Server 層に使用し、その他のマシンを HADB 層に使用することができます。 |
共存トポロジに比べて多くのマシンが必要。アプリケーションサーバーインスタンスと HADB ノードが別の層に配置されるため、HADB スペアノードをホストしているマシンにはアプリケーションサーバーインスタンスを配置できません。 CPU 使用率の低下。アプリケーションサーバー層と HADB 層の負荷が不均一になる可能性があります。この問題は、マシンの台数が少ない (4 〜 6 台) 場合により大きくなります。 |