Sun GlassFish Enterprise Server 2.1 配備計画ガイド

可用性のための計画

ここでは、次の内容について説明します。

可用性の規模の適正化

システムやアプリケーションの可用性を計画するには、異なるアプリケーションにアクセスするユーザーグループの可用性ニーズを評価します。たとえば、料金を支払う外部のユーザーやビジネスパートナーはたいてい、サービスの品質 (QoS) に内部のユーザーより高い期待を持っています。そのため、アプリケーション機能、アプリケーション、サーバーなどが使用不可になっても、支払いを行う外部の顧客に比べて内部のユーザーの方が許容性が高い可能性があります。

次の図は、発生確率が低い出来事ほど、影響を軽減するためのコストと複雑さが増加するようすを示しています。この連続曲線の一端では、単純な負荷分散クラスタを使用して、ローカライズされたアプリケーション、ミドルウェア、およびハードウェアの障害に耐えることができます。曲線のもう一方の端では、地理的に孤立したクラスタを使用することにより、データセンター全体に影響する大災害を軽減できます。

高い投資収益率を実現するには、多くの場合、アプリケーション内の機能の可用性の要件を特定することが有効です。たとえば、保険見積もりシステムが使用不可になることは許容されない (それによって新しい企業を失う) 可能性がありますが、既存の顧客が現在の対象範囲を表示できるアカウント管理機能が短期間使用不可になっても、既存の顧客を失うことはほとんどありません。

可用性を向上させるためのクラスタの使用

もっとも基本的なレベルで言えば、クラスタとは、クライアントには 1 つのインスタンスとして見えるアプリケーションサーバーインスタンスのグループであり、たいていは複数の物理サーバー上にホストされています。これにより、水平方向のスケーラビリティーや、1 台のマシン上の 1 つのインスタンスより高い可用性が提供されます。この基本的なレベルのクラスタ分布が HTTP ロードバランサプラグインと連携して動作します。このプラグインは、HTTP および HTTPS 要求を受け付け、それをクラスタ内のインスタンスの 1 つに転送します。また、ORB や、統合されている JMS ブローカも、アプリケーションサーバークラスタへの負荷分散を実行します。ネットワーク障害のためにインスタンスが失敗して使用不可になるか、または応答しなくなると、要求は既存の使用可能なマシンにのみリダイレクトされます。ロードバランサはまた、失敗したインスタンスが復旧したことを認識し、それに応じて負荷を再配分することもできます。

システムへの冗長性の追加

高可用性を実現するための 1 つの方法は、システムにハードウェアやソフトウェアの冗長性を追加することです。あるユニットに障害が発生すると、冗長なユニットが引き継ぎます。これは、耐障害性とも呼ばれます。一般に、高可用性を最大化するには、システム内に存在する可能性のあるすべてのシングルポイント障害を特定して取り除きます。

障害クラスの識別

冗長性のレベルは、システムが耐える必要のある障害クラス (障害の種類) によって決定されます。障害クラスのいくつかの例を次に示します。

重複したシステムプロセスによって、単一のシステムプロセス障害や単一のマシン障害に耐えることができます。重複した、ミラー化された (ペアになった) マシンを異なる電源装置に接続することにより、単一の電源障害に耐えることができます。ミラー化されたマシンを個別のビル内に保持することにより、単一のビル火災に耐えることができます。ミラー化されたマシンを地理的に離れた場所に保持することにより、地震などの天災に耐えることができます。

可用性を向上させるための HADB 冗長ユニットの使用

「パフォーマンス目標の確立」で説明したように、可用性を向上させるために、HADB ノードは常にデータ冗長ユニット (DRU) で使用されます。

耐障害性を向上させるための HADB スペアノードの使用

スペアノードを使用すると、耐障害性が向上します。スペアノードは必須ではありませんが、最大限の可用性を実現します。

フェイルオーバー容量の計画

フェイルオーバー容量の計画では、サーバーまたはプロセスに障害が発生した場合にシステムがデータをシームレスに復元して処理を続行できるようにするには Application Server 配備にサーバーやプロセスをどれだけ追加する必要があるかを決定します。システムが過負荷になると、プロセスまたはサーバー障害が発生して、応答時間の低下や、場合によってはサービスの完全な停止を引き起す可能性があります。このような状況に対して準備することは、配備を成功させるために重要です。

容量 (特に、ピーク負荷時の容量) を維持するには、既存の配備に、Application Server インスタンスを実行しているスペアマシンを追加します。

たとえば、それぞれ 1 つの Application Server インスタンスを実行している 2 台のマシンから成るシステムを考えてみます。これらのマシンが合わせて、1 秒あたり 300 要求のピーク負荷を処理しています。これらのマシンの 1 つが使用不可になった場合は、マシン間の負荷分散が均一であると仮定すると、システムは 150 の要求しか処理できません。したがって、ピーク負荷時の要求の半分はサービスを受けられなくなります。