Sun Java System Application Server Enterprise Edition 8.1 2005Q2 高可用性 (HA) 管理ガイド

高可用性データベースの概要

この節では、高可用性データベース (HADB) を紹介したあと、Application Server で使用するために HADB を設定および構成する方法について説明します。

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

HADB と Application Server

HADB は、アプリケーションサーバー層とは独立に実行および管理することのできる、水平方向にスケーラブルなデータベースです。HADB は、負荷分散、フェイルオーバー、および状態復元機能により、最大 99.999% のサービスおよびデータの可用性をサポートするように設計されています。

Application Server は、HADB を使用して、HTTP およびステートフルセッション Bean (SFSB) のセッションデータを格納します。セッション持続性のメカニズムがないと、Web または EJB コンテナがフェイルオーバーしたときに、HTTP や SFSB のセッションの状態データが失われます。

状態管理を Application Server と切り離しておくことには、大きな利点があります。Application Server インスタンスは、状態レプリケーションを外部の高可用性状態サービスに委任する、スケーラブルで高性能な Java™ 2 Platform, Enterprise Edition (J2EE™ プラットフォーム) コンテナとしての動作に CPU サイクルを消費します。この疎結合のアーキテクチャーのために、アプリケーションサーバーインスタンスを容易にクラスタに追加したり、クラスタから削除したりすることができます。HADB の状態レプリケーションサービスを独立に拡大縮小して、最適な可用性とパフォーマンスを得ることができます。

HADB サーバーのアーキテクチャー

高可用性とは、アップグレードのための予定された停止や、ハードウェアまたはソフトウェアの障害によって引き起こされた予期しない停止があったとしても可用性が高いことを意味します。HADB は、単純なデータモデルと、冗長性のある、スケーラブルな高性能テクノロジに基づいています。HADB は、高性能なエンタープライズアプリケーションサーバー環境内で、すべてのタイプのセッション状態持続性を実現するための理想的なプラットフォームを提供します。

次の図は、4 つのアクティブノードと 2 つのスペアノードを備えたデータベースのアーキテクチャーを示しています。ノード 0 および 1 はミラーノードのペアであり、ノード 2 および 3 も同様です。

図 2–1 HADB のアーキテクチャー

HADB のアーキテクチャー

HADB は、データの断片化とレプリケーションを通してデータの高可用性を達成します。データベース内のすべてのテーブルが分割され、フラグメントと呼ばれる、ほぼ同じサイズのサブセットが作成されます。断片化は、データベースのノード間にデータを均等に分散させるハッシュ関数に基づいています。各フラグメントは 2 回、すなわちデータベースとミラーノードに格納されます。これにより、フォルトトレランスと、データのすばやい復旧が保証されます。さらに、ノードに障害が発生した場合や、ノードが停止した場合は、そのノードが再度アクティブになるまでスペアノードが処理を引き継ぐことができます。

HADB ノードは、互いをミラー化する、2 つのデータ冗長ユニット (DRU) から構成されます。各 DRU は、アクティブノードとスペアノードの半分から構成され、データの完全なコピーを 1 つ持っています。フォールトトレランスを保証するために、1 つの DRU をサポートするコンピュータは、電源 (無停電電源装置の使用を推奨)、処理装置、およびストレージに関して完全に自立している必要があります。1 つの DRU で停電が発生した場合は、電源が復旧するまで、もう一方の DRU 内のノードが引き続き要求を処理することができます。

セッション持続性のメカニズムがないと、ある Web または EJB コンテナが別のコンテナにフェイルオーバーしたときに、非活性化されたセッション状態を含む HTTP や SFSB のセッションの状態が失われます。HADB を使用してセッション持続性を実現することにより、この状況が克服されます。HADB は、状態情報を、独立してはいるが、適切に統合された持続的記憶領域層に格納および取得します。

セッションデータが削除されると、HADB は領域を再生します。HADB は、セッションデータレコードを固定サイズのブロックに配置します。ブロックのすべてのレコードが削除されると、そのブロックは解放されます。ブロックの各レコードはランダムに削除される場合があり、それによってブロック内にホールが作成されます。ブロック内に新しいレコードが挿入され、隣接する領域が必要になると、ホールが削除されてブロックはいっぱいになります。

以上が、アーキテクチャーの簡単な概要です。詳細については、『Sun Java System Application Server Enterprise Edition 8.1 2005Q2 Deployment Planning Guide 』を参照してください。

HADB ノード

データベースノードは、一連のプロセス、共有メモリーの専用領域、および 1 つ以上の二次ストレージデバイスで構成されます。データベースは、セッションデータを格納、更新、および取得します。各ノードにはミラーノードがあるため、ノードはペアで作成されます。さらに、可用性を最大にするために、各 DRU に 1 つずつ、合計 2 つ以上のスペアノードが含まれています。それにより、ノードに障害が発生した場合は、そのノードが修復されている間、スペアが処理を引き継ぐことができます。

ノードトポロジの別の形態については、『Sun Java System Application Server Enterprise Edition 8.1 2005Q2 Deployment Planning Guide』の第 3 章「Selecting a Topology」を参照してください。

新機能と機能強化

Sun Java System Application Server Enterprise Edition 8.1 で提供される HADB のバージョンには、多くの新機能と機能強化が導入されています。

管理システム内の基礎となるコンポーネントが変更され、それにより HADB 管理が機能強化されています。古い hadbm インタフェース関数には、マイナーな変更が加えられています。また、これらの変更により、SSH/RSH への依存性も解消されています。

管理エージェントサーバープロセス (ma) はドメインを構成し、データベース設定をリポジトリ内に保持します。このリポジトリ情報は、すべてのエージェントに分配されます。

詳細については、次の項目を参照してください。

全般的な改善点

このバージョンの HADB では、全般的に次の点が改善されています。

具体的な変更項目

このバージョンの HADB では、以前のバージョンから次の項目が変更されています。

HADB に対するカスタマサポートの使用

HADB の問題についてカスタマサポートに電話する前に、次の情報をできるだけ多く収集してください。