TOP調査レポート> ミッションクリティカルな用途にPostgreSQLを適用する
オープンソースの適用可能性を示す
オープンソースの適用可能性を示す

第8回:PostgreSQLを使い切るためのノウハウを徹底解説する その2
著者:SRA OSS  石井 達夫   2006/5/16
1   2  3  次のページ
ミッションクリティカルな用途にPostgreSQLを適用する

   PostgreSQLの導入が成功し、さらにミッションクリティカルな用途に適用しようとした際に、まず直面するのが可用性の問題だ。DBが止るとシステム全体のダウンにつながるため、DBの停止時間は可能な限り短くしたい。

   Webサーバであれば、複数のサーバを設置してロードバランサで管理すれば、比較的簡単に「止らない」Webサーバシステムを構築できる。だがDBの場合は、複数のDBサーバでデータの一貫性を保つ工夫をしない限り、同じ方法では対応できない。

   PostgreSQLの可用性を高める方法の中でも実績のあるのが、フェールオーバー型のクラスタだ。

   この方法では、2台以上のDBサーバが「共有ディスク」という、複数のシステムに接続された特殊なディスク装置を使用する。普段はどちらかのDBサーバが共有ディスクをマウントし、他のサーバはアクセスできない状態になっている。

   2台のサーバは互いに相手を監視する「ハートビート」信号を定期的に投げあっている。ディスクをマウントしている方のサーバがダウンすると、もう1台のサーバは共有ディスクをマウント、PostgreSQLを立ち上げて処理を続行する。この方法であれば、ダウンタイムを数分以内に止められる。

   PostgreSQL自体には、このような構成を組む機能はないので、外部ソフトが必要になる。このようなソフトは「HA(HighAvailabiliy)ソフト」と呼ばれることがある。

   オープンソースのものもあるが、実績という点では今のところ商用製品に軍配が上がる。

   SRAOSSでは、米スチール・アイ社が開発した「LifeKeeper」をLinux用に、NEC製の「CLUSTERPRO」をWindows用に使っている。


   PostgreSQLと商用HAソフトの組合わせにより、極めて安定した高可用性システムを構築できる。既存のPostgreSQLアプリケーションをそのまま移行できるのも魅力だ。

   商用HAソフトや共有ディスクが必要になるので、価格的には高くなるが、それでも商用DBを使う場合と比べれば安価といえる。


PowerGresPlusをカプコンが導入

   カプコンでは、オンラインゲームのサーバシステムに、このようなHAシステムを導入している。DBはSRAOSSが販売する「PowerGresPlus」という製品を使っている。PowerGresPlusは、商用DBのエンジンをPostgreSQLに組み込んだ製品。PostgreSQLのユーザーインタフェースを維持しながら、更新性能などに優れた特長を持つ。

   このシステムで面白いのは、DBサーバとしてはスタンバイ側になっている方が、逆にNFSサーバのホット側になっている点だ。単なるホットスタンバイだと、スタンバイ側のサーバが遊んでしまうのを、回避しているのだ。

   いわゆる「たすきがけアクティブ/アクティブ」構成になっており、普段でも2台のサーバを無駄なく使えるのだ。これにより、コンピュータリソースの有効利用と、信頼性の向上を両立させている(図1)。

HAシステムの構成例
図1:HAシステムの構成例

   共有ディスクを使ったHAシステムでは、共有ディスクが高価なだけでなく、万一、共有ディスクが破壊されたときにバックアップからDBの再構築を余儀なくされる。

   この問題に対処する方法の1つがレプリケーションだ。レプリケーションでは、2台以上のDBサーバを用意しておき、何らかの方法で2つのDBの内容を一致させる。一致させるタイミングによって、レプリケーションは「同期レプリケーション」と「非同期レプリケーション」にわかれる。

   PostgreSQLにレプリケーション機能はないが、OSSとして提供される以下のような実績のあるレプリケーションソフトが存在する。

1   2  3  次のページ

SRA OSS 石井 達夫
著者プロフィール
SRA OSS,Inc.  石井 達夫
SRAを経て、現在はSRA OSS,Incの日本支社長として、日本でのOSSビジネスを推進する立場にある。個人的にもPostgreSQLの開発、普及活動に取り組んでおり、名実ともにPostgreSQLを最強OSSDBにするのが夢。主な著書は「PostgreSQL完全攻略ガイド」など。

INDEX
第8回:PostgreSQLを使い切るためのノウハウを徹底解説する その2
ミッションクリティカルな用途にPostgreSQLを適用する
  Slony-I
  pgpool