Java Enterprise System 配備の可用性戦略には、次のものがあります。
ロードバランス: 冗長ハードウェアコンポーネントおよびソフトウェアコンポーネントを使用して、処理による負荷を分散します。ロードバランサは、サービスに対するあらゆる要求を、そのサービスの複数の対称インスタンスのいずれかに送信します。インスタンスの 1 つが失敗した場合は、ほかのインスタンスにその負荷を負わせることができます。
フェイルオーバー: コンポーネントで障害が発生した場合、サービスの継続的なアクセスと重要なデータのセキュリティーを提供するためには、冗長ハードウェアおよびソフトウェアの管理が必要とされます。
Sun Cluster ソフトウェアは、Messaging Server のメッセージストレージや Calendar Server のカレンダデータなど、バックエンドコンポーネントによって管理される重要なデータのためのフェイルオーバーソリューションを提供します。
サービスのレプリケーション: サービスのレプリケーションにより、同じデータへのアクセス用に複数のソースが提供されます。Directory Server は、LDAP ディレクトリアクセス用に、多数のレプリケーション戦略および同期戦略を提供します。
以降の各節では、さまざまなレベルのロードバランス、フェイルオーバー、およびサービスのレプリケーションを提供する可用性ソリューションの例をいくつか示します。
サービスのすべてのコンピュータリソースを 1 つのサーバーに配置します。サーバーに障害が発生した場合、サービス全体が失敗します。
Sun は、次の利点を提供するハイエンドサーバーを提供しています。
システムが稼働した状態でのハードウェアコンポーネントの交換と再設定
サーバー上の、障害から分離されたドメインで複数アプリケーションを稼働する機能
システムの再起動を必要とせずに、処理能力、パフォーマンス速度、および I/O 設定をアップグレードする機能
通常、ハイエンドサーバーは、同等の機能を持つマルチサーバーシステムより高価になります。ただしシングルサーバーでは、管理、監視、データセンターでのサーバーのホスティング費用が軽減されます。ロードバランス、フェイルオーバー、障害シングルポイントの除去は、マルチサーバーシステムのほうが柔軟に対応できます。
ロードバランスとフェイルオーバーの両方を提供する平行冗長サーバーを使用することで、いくつかの方法で可用性を向上できます。次の図は、N+1 フェイルオーバーシステムを構成する 2 つのレプリカサーバーを示しています。N+1 システムには、1 つのサーバーで障害が発生した場合に、その処理能力の 100% を提供するための追加サーバーが含まれます。
上の「水平方向の冗長システム」に示される各サーバーは、同一処理能力を持ちます。1 つのサーバーが単独でパフォーマンス要件を満たします。もう一方のサーバーは、バックアップとしてサービスに適用された場合に 100% のパフォーマンスを提供します。
N+1 フェイルオーバー設計の利点は、フェイルオーバー状況でも 100% の処理能力を提供できることです。欠点には、1 つのサーバーはフェイルオーバー状況でだけ使用されるスタンバイであるため、パフォーマンス全体の向上なしにハードウェアコストが上昇することが挙げられます。
次の図は、2 つのサーバーの間でパフォーマンスを分散するロードバランスとフェイルオーバーを実装するシステムを示しています。
上の「水平方向の冗長システム」で示されているシステムでは、一方のサーバーに障害が発生した場合に、処理能力は低下しますが、すべてのサービスを利用できます。残ったサーバーは 6 CPU の処理能力を提供します。 これは、10 CPU という要件の 60% に相当します。
この設計の利点は、両方のサーバーを利用可能な状態では、2 CPU の潜在処理能力を追加されることです。
次の図は、パフォーマンス向上とロードバランス用に、多数のサーバーの間でパフォーマンスを分散する例を示しています。
「水平方向の冗長システム」に示される設計では 5 つのサーバーが使用されるため、1 つのサーバーに障害が発生した場合に、残りのサーバーが 8 CPU の処理能力を提供します。 これは、10 CPU のパフォーマンス要件の 80% に相当します。この設計に 2 CPU の処理能力を持つサーバーを追加すると、効率的に N+1 設計を実現できます。1 つのサーバーに障害が発生しても、残りのサーバーによってパフォーマンス要件は 100% 満たされます。
この設計には、次のような利点があります。
1 つのサーバーに障害が発生した場合のパフォーマンスの追加
複数のサーバーがダウンした場合の可用性
保守とアップグレードのためにサーバーを順に停止できる
複数のローエンドサーバーは、通常は 1 つのハイエンドサーバーより安い
ただし、サーバーを追加することで、管理と保守のコストは大きく上昇します。データセンターでのサーバーのホスティング費用も考慮する必要があります。サーバーの追加投入によるメリットは、ある時点から減少に転じます。
高い可用性 (4 ナインまたは 5 ナインなど) が必要となる状況では、可用性設計の一部として Sun Cluster ソフトウェアの利用を検討することができます。クラスタシステムは、冗長サーバーとストレージやその他のネットワークリソースを結合したものです。クラスタ内のサーバーは、継続的に相互通信します。1 つのサーバーがダウンした場合、クラスタ内の残りのデバイスはそのサーバーを分離し、障害のあるノードから別のノードにアプリケーションまたはデータをフェイルオーバーします。このフェイルオーバープロセスは、比較的迅速に行われるため、システムの利用者がサービスの中断を感じることはほとんどありません。
Sun Cluster ソフトウェアは、専用ハードウェアの追加と、設定、管理、維持のための特別なスキルを必要とします。