TOP調査レポート> 今回は
オープンソースをこう使った! 〜 運用管理ツールHinemosの秘密
オープンソースをこう使った! 〜 運用管理ツールHinemosの秘密

第6回:「PostgresForest」を使ったデータベースのクラスタリング

著者:NTTデータ  宇山 公隆   2006/10/13
1   2  3  次のページ
今回は

   前回はHinemosの可用性向上ということで、データベース以外のクラスタリングについて説明してきましたが、最終回となる今回はHinemos内部で利用しているデータベースのクラスタリングについて解説します。
Hinemosのクラスタリング構成

   Hinemosの内部で利用しているデータベース(PostgreSQL)は、そのままだとシングル構成でしか利用できません。そこでHinemosでは、データベースのクラスタ化のために、NTTデータが開発したOSSのPostgresForestというPostgreSQLのクラスタリングソフトを利用して、クラスタリングを構成しています(図1)。

Hinemosのクラスタリング構成
図1:Hinemosのクラスタリング構成


Hinemosで管理しているデータベース情報について

   Hinemosでは、設定情報や取得データを機能ごとにデータベースで管理しています。代表的な設定情報としては以下の情報となります。

  • 監視設定情報
  • 性能管理情報
  • ジョブ設定情報
  • 一括制御情報

表1:Hinemosのデータベースで管理している代表的な設定情報

   この他にもカレンダー情報や監視管理機能と関連している通知機能用の情報などと、様々な情報がデータベースにて管理されています(ただしリポジトリ情報のみはディレクトリサービスのOpenLDAPにて管理されています)。

   当然のことですが、これらのデータベースに格納されている情報はHinemosを動作させる上でどれもが必要な情報です。よってその他の機能のクラスタリングと同様に、データベースもクラスタリングさせて可用性を向上させる必要があります。

   データベースのクラスタリングといっても、データベース障害の際に、障害データベースの切り離し処理にサービス停止やその停止時間が長かったり、障害を起こしたデータベースを復旧し、元の状態に戻すためにまたサービスを停止したりしなければならないようではクラスタリングした意味がありません。

   理想的には障害データベースの切り離し/復旧/復旧後のサービスへの復帰を、Hinemosで運用管理をしているユーザに意識させることなく実施できることが必要です。

   そこで筆者らはPostgresForestを適用することによって、この課題を解決させました。


PostgresForestの特長について

   PostgresForestは利用者(HinemosではJBoss)からはJDBCドライバとして見えます。言い換えればPostgreSQLのJDBCドライバを置き換えるだけでアプリケーションには何も手を入れることなくPostgresForestの提供するクラスタ環境を利用することが可能となります。

   なお、PostgresForestは、管理配下のPostgreSQLのデータベースで障害が発生した場合、そのデータベースのみを切り離す縮退処理と障害を起こしたデータベースをオンライン状態で復旧し、処理に復帰させる処理が可能であり、Hinemosでもこの機能を利用して、内部利用データベースの縮退運転への移行、および復帰を実現しています。この点については後述します。

1   2  3  次のページ


NTTデータ  宇山 公隆
著者プロフィール
株式会社NTTデータ   宇山 公隆
基盤システム事業本部 オープンソース開発センタ シニアエキスパート
NTTデータにてDBMSの開発、SI、技術サポートや、ソフトウェア製品開発、新規ビジネス開拓など様々な仕事に従事。2002年よりOSS分野に参画。現在はHinemosの開発リーダとして、機能および品質向上とコミュニティの創造を目指して活動中。


INDEX
第6回:「PostgresForest」を使ったデータベースのクラスタリング
今回は
  HinemosでPostgresForestを採用した理由について
  Hinemosにおけるデータベース障害時の縮退運転への移行および復帰の仕組み