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用に使っている。
LifeKeeper
http://powergres.sraoss.co.jp/s/ja/index.php
CLUSTERPRO
http://powergres.sraoss.co.jp/s/ja/product/windows-ha.php
PostgreSQLと商用HAソフトの組合わせにより、極めて安定した高可用性システムを構築できる。既存のPostgreSQLアプリケーションをそのまま移行できるのも魅力だ。
商用HAソフトや共有ディスクが必要になるので、価格的には高くなるが、それでも商用DBを使う場合と比べれば安価といえる。
PowerGresPlusをカプコンが導入
カプコンでは、オンラインゲームのサーバシステムに、このようなHAシステムを導入している。DBはSRAOSSが販売する「PowerGresPlus」という製品を使っている。PowerGresPlusは、商用DBのエンジンをPostgreSQLに組み込んだ製品。PostgreSQLのユーザーインタフェースを維持しながら、更新性能などに優れた特長を持つ。
このシステムで面白いのは、DBサーバとしてはスタンバイ側になっている方が、逆にNFSサーバのホット側になっている点だ。単なるホットスタンバイだと、スタンバイ側のサーバが遊んでしまうのを、回避しているのだ。
いわゆる「たすきがけアクティブ/アクティブ」構成になっており、普段でも2台のサーバを無駄なく使えるのだ。これにより、コンピュータリソースの有効利用と、信頼性の向上を両立させている(図1)。
図1:HAシステムの構成例
共有ディスクを使ったHAシステムでは、共有ディスクが高価なだけでなく、万一、共有ディスクが破壊されたときにバックアップからDBの再構築を余儀なくされる。
この問題に対処する方法の1つがレプリケーションだ。レプリケーションでは、2台以上のDBサーバを用意しておき、何らかの方法で2つのDBの内容を一致させる。一致させるタイミングによって、レプリケーションは「同期レプリケーション」と「非同期レプリケーション」にわかれる。
PostgreSQLにレプリケーション機能はないが、OSSとして提供される以下のような実績のあるレプリケーションソフトが存在する。
1
2
3
次のページ
著者プロフィール
SRA OSS,Inc. 石井 達夫
SRAを経て、現在はSRA OSS,Incの日本支社長として、日本でのOSSビジネスを推進する立場にある。個人的にもPostgreSQLの開発、普及活動に取り組んでおり、名実ともにPostgreSQLを最強OSSDBにするのが夢。主な著書は「PostgreSQL完全攻略ガイド」など。
INDEX
第8回:PostgreSQLを使い切るためのノウハウを徹底解説する その2
ミッションクリティカルな用途にPostgreSQLを適用する
Slony-I
pgpool