TOP
>
調査レポート
> PostgreSQLの可用性向上
オープンソースをこう使った! 〜 運用管理ツールHinemosの秘密
第5回:JBossのクラスタリング機能を活用した可用性向上について
著者:
NTTデータ 大上 貴充
2006/9/28
前のページ
1
2
3
4
PostgreSQLの可用性向上
PostgreSQLのクラスタリングにはPostgresForestを用います。PostgresForestは、Hinemosと同様、NTTデータが開発しているOSSのPostgreSQLクラスタリングソフトウェアです。
PostgresForestは、複数のマシン上で稼動するPostgreSQLを仮想的に1つのPostgreSQLとして運用することを可能とます。アプリケーションから見ると1つのJDBCドライバとして利用することができるため、複数のPostgreSQLがあたかも単一のRDBMSのように見えます。
JBossからアクセスする場合は、データソースの設定(ドライバクラス名と接続先URL)を変更するだけで、アプリケーション的には特に変更を加えることなくデータベースの信頼性を向上させることができます。
なお、PostgresForestの詳細については次回の記事に譲りたいと思います。
PostgresForest
http://www.nttdata.co.jp/services/postgresforest/
障害発生時の動作イメージ
ここまで、Hinemosを2台のマネージャノードを使い、それぞれをマスタとスレーブとして、アクティブ-スタンバイ方式の可用性構成を組む方法について解説しました。
ここでは、障害時の動作をマスタのサーバがダウンした場合について説明します(図5)。
図5:障害発生時の動作イメージ
(画像をクリックすると別ウィンドウに拡大図を表示します)
クラスタ化されているJBossは、IPマルチキャスト通信を用いて死活監視をしています。マスタのサーバがダウンした場合、スレーブのJBossは障害を検知し、フェイルオーバを実行し、シングルトンサービスとなっているJMSサービスと、Hinemosの機能を起動します。以降のアクセスはこちらのサーバが処理することになります。
OpenLDAPとPostgreSQLはスレーブノードも多重化され、マスタノードと同じ情報を保持しているため、障害後は縮退運転することで、そのままサービスを継続することができます。
クライアントからの接続は、JBossの提供するスマートプロキシの機能によって自動的に切り替えられます。
まとめ
Hinemosでは、利用しているOSSが持つそれぞれのクラスタリング機能を活用することで、アプリケーションレベルではほとんど意識することなく、可用性の向上を実現することができます。
次回は、今回詳しく解説することのできなかった、データベースのクラスタリングについて解説いたします。
前のページ
1
2
3
4
著者プロフィール
株式会社NTTデータ 大上 貴充
基盤システム事業本部 オープンソース開発センタ
2004年よりOSSを用いたシステム構築、運用管理ツールの研究開発に従事。現在はHinemosの開発メンバとして、より一層の機能充実、品質向上とコミュニティの創造を目指して活動中。
INDEX
第5回:JBossのクラスタリング機能を活用した可用性向上について
はじめに
JBossの可用性向上
Hinemosをクラスタ化する際のJBossの設定
PostgreSQLの可用性向上