この節では、高可用性データベース (HADB) を紹介したあと、Application Server で使用するために HADB を設定および構成する方法について説明します。
この節では、次のトピックについて説明します。
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 は、高性能なエンタープライズアプリケーションサーバー環境内で、すべてのタイプのセッション状態持続性を実現するための理想的なプラットフォームを提供します。
次の図は、4 つのアクティブノードと 2 つのスペアノードを備えたデータベースのアーキテクチャーを示しています。ノード 0 および 1 はミラーノードのペアであり、ノード 2 および 3 も同様です。
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 』を参照してください。
データベースノードは、一連のプロセス、共有メモリーの専用領域、および 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 に SSH/RSH は必要なくなりました。
HADB 管理のための管理者パスワードにより、セキュリティーが強化されています。
将来のバージョンへの自動オンラインアップグレードが可能になりました。
単一ホストへの依存性が解消されています。
データベースの異種構成がサポートされています。デバイスパスと履歴パスを個別に設定することができます。
複数のプラットフォームを均一に管理できます。
このバージョンの HADB では、以前のバージョンから次の項目が変更されています。
ネットワーク構成に UDP マルチキャストが必要になりました。
管理エージェント (ma) を、すべての HADB ホストで実行することが必要になりました。
ドメイン管理のための新しい hadbm コマンドは次のとおりです。 hadbm createdomain、hadbm deletedomain、hadbm extenddomain、hadbm reducedomain、hadbm listdomain、hadbm disablehost。パッケージ管理のための新しいコマンドは次のとおりです。hadbm registerpackage、hadbm unregisterpackage、hadbm listpackage。
すべての hadbm コマンドに、次の新しいオプションが追加されました。
adminpassword
adminpasswordfile
no-adminauthentication
agent
javahome
hadbm create の変更点は次のとおりです。
新規オプション:
no-clear
no-cleanup
package
packagepath
agent
拡張されたオプション:
hosts (ドメインにホストを登録する)
set
削除されたオプション:
inetd
inetdsetupdir
configpath
installpath
set TotalDataDevideSizePerNode
set managementProtocol
変更点: devicesize はオプションになり、必須ではなくなりました。
hadbm startnode および hadbm restartnode コマンドの startlevel オプションに、新しい値 clear が追加されました。
hadbm addnodes の変更点は次のとおりです。新規オプション: set、historypath、devicepath。inetdsetupdir オプションは削除されました。
hadbm get および hadbm set の変更点は次のとおりです。新しい属性 historypath (履歴ファイルの異種パス) および packagename が追加されました。削除された属性は次のとおりです。managementProtocol、TotalDeviceSizePerNode、installpath、および syslogging。
HADB の問題についてカスタマサポートに電話する前に、次の情報をできるだけ多く収集してください。
システム使用のプロファイル:
アクティブな並行ユーザーの数
アクティブでないユーザーの数
1 秒あたりにシステムにログインするユーザーの数
平均のセッションサイズ
セッション状態のタイムアウト期間 (SessionTimeout 値)
ユーザー 1 人あたり、1 秒あたりのトランザクションの比率
マシンのプロパティー:
RAM
CPU の数
CPU 速度
オペレーティングシステムのバージョン
物理ディスクの数
合計のディスクサイズ
使用可能なディスク容量
データ転送容量
ネットワークのプロパティー:
転送容量
1 ノードあたりのホスト名 (ネットワークインタフェース) の数
HADB データ:
履歴ファイル
dbconfigpath/databasename/nodeno ディレクトリに格納されている、cfg および meta ファイル。dbconfigpath は、管理エージェント設定ファイルの変数 ma.server.dbconfigpath で定義されています。
バージョン情報 (hadbm --version)