TOP調査レポート> Hinemosをクラスタ化する際のJBossの設定
オープンソースをこう使った! 〜 運用管理ツールHinemosの秘密
オープンソースをこう使った! 〜 運用管理ツールHinemosの秘密

第5回:JBossのクラスタリング機能を活用した可用性向上について

著者:NTTデータ  大上 貴充   2006/9/28
前のページ  1  2  3   4  次のページ
Hinemosをクラスタ化する際のJBossの設定

   では、実際にHinemosのJBossをクラスタ化する際の設定について解説します。なお、クラスタリング方式はアクティブ/スタンバイです。

JMSの永続化用データベースを変更する

   JMSサービスは永続化用のデータベースが必要となります。デフォルトでは、軽量・高速なHSQLDBを利用しますが、このデータベースもクラスタ化する必要が生じます。永続化用データベースをPostegreSQL(正確には以降で述べるPostgresForest)に変更することで、Hinemosのデータベースと同様にクラスタ化することができます。

   JMSサービスで使用するデータソースの変更には、「JBOSS_HOME/server/all/deploy-hasingleton/jms/hsqldb-jdbc2-service.xml」を削除し、かわりに「JBOSS_HOME/docs/examples/jms/postgres-jdbc3-service.xml」をコピーし、編集して利用します。

   そして、次のようにデータソースの設定部分で、「PostgresDS」となっている箇所を、PostgresForestに接続するデータソース名に変更します。


(画像をクリックすると別ウィンドウに拡大図を表示します)


Hinemosの提供機能をシングルトンサービスとする

   アクティブ/スタンバイ方式のクラスタリングとするため、Hinemosの機能を提供するサービスおよびEJBをすべてシングルトン化します。シングルトン化したサービスおよびEJBは、最初に起動したJBossでアクティブとなり、2台目のJBossではスタンバイ状態となります。

   シングルトン化する手段は簡単です。シングルトン化したいサービスのサービスファイル(*-service.xml)とEJB-jarファイルのデプロイ先をdeployディレクトリではなく、deploy-hasingletonディレクトリとします。


クライアント側の設定

   Hinemosのアーキテクチャは、GUIクライアントであるEclipse RCPのアプリケーションから、EJBコンテナのJBossに直接RMIでアクセスするという斬新なものです。ここで、マネージャにアクセスする部分が実装されているわけですが、JBossをクラスタ化した際に、どのノードがアクティブになっているのかを意識して接続先を変更するといった作りこみは必要ありません。

   JBossはスマートプロキシとHA-JNDIと呼ばれる仕組みによって、クラスタリングされているノードの中からサービスを提供しているノードを自動的に判別し、接続先を変更する機能を提供しています。

   接続先URIを下記のように変更するたけで、実際の接続先を意識することなくJBossクラスタリング環境に接続することができます。

接続先URI
jnp://server1:1100,server2:1100


OpenLDAPの可用性向上

   OpenLDAPの可用性向上は、OpenLDAPに標準で組み込まれているsyncreplを用いたレプリケーションで実現することができます。syncreplのレプリケーションは、2台のOpenLDAPをそれぞれプロバイダ、コンシューマとして起動することで、コンシューマはプロバイダの複製を保持します。ただし、コンシューマは参照のみで更新できないという制限が生じます。

   Hinemosでは、LDAPの接続先としてマスタとスレーブの2つの接続先を設定できます。JNDI経由でLDAPにアクセスする際、マスタへの接続に失敗した場合はスレーブへの接続を試みます。この2つの接続先を、syncreplで同期されているプロバイダとコンシューマに設定することで可用性向上がはかれます(図4)。

syncreplを使ったOpenLDAPのクラスタリング
図4:syncreplを使ったOpenLDAPのクラスタリング

   この場合、プロバイダ(マスタ)に障害が発生すると、コンシューマ(スレーブ)へのアクセスとなるため、更新ができないという制限が発生します。しかし、HinemosがOpenLDAPに格納するリポジトリ情報はいわばマスタ情報であり、運用中に頻繁に変更する種類のものではないため、障害発生時には更新できなくても大きな問題はないと考えることができます。

前のページ  1  2  3   4  次のページ


NTTデータ  大上 貴充
著者プロフィール
株式会社NTTデータ   大上 貴充
基盤システム事業本部 オープンソース開発センタ
2004年よりOSSを用いたシステム構築、運用管理ツールの研究開発に従事。現在はHinemosの開発メンバとして、より一層の機能充実、品質向上とコミュニティの創造を目指して活動中。

INDEX
第5回:JBossのクラスタリング機能を活用した可用性向上について
  はじめに
  JBossの可用性向上
Hinemosをクラスタ化する際のJBossの設定
  PostgreSQLの可用性向上