昔pgpoolとheartbeatを組み合わせて2ノード冗長化+負荷分散を実装するというpgpool-HAというプロジェクトをやっていたことがある。まあ、今やっていないかというと単に必要がないのでいじっていない。まだ日本にいた頃に細かい変更を施して、その後は最新版でも動くようになっている。まあpgpool-II対応は最善ではないので細かい修正は可能ではあるが、追従する必然は無いのでとりあえず放置状態である。
で、たまに見ると質問とか出ているので、昔やった何とかで一応答えるのだが、今日は
http://pgfoundry.org/pipermail/pgpool-general/2008-December/001374.html
に、pgpool-IIをフロントエンドにウォームスタンバイ型の冗長化構成にする、というOCFなスクリプトが出ていたので反応してみた。
個人的にはリカバリにpgpoolをわざわざ使わず、Heartbeat付属のpgsql用のOCFを改造して、warmstandby対応にするほうが楽なのかな、と言う気がしてきたので、考えていた。しかし、
- start時にはstandbyからの回復コマンド実行
- stop時にはスタンバイで起動開始
- recovery時は起動し直す
- status、monitor時の挙動は全面変更。なにしろ常にPostgreSQLが動いているから。
- ん?stop状態なのに起動していない場合はどうするんだ?
- そもそもスタンバイ状態とでも言うべき状態はheartbeatでサポートしていたっけ?
- いつベースバックアップをどうやって取るの?
とまあいろいろ問題も思いついてきたのでやめた。warm-standbyは取り扱いが結構難しいなぁ。
コメント
コメント一覧 (2)
ご質問の件ですが、私は現在のバージョン1.2に関わっておりませんので、高塚氏にコンタクトを取るか、pgpool-general-jaメーリングリストで同様の質問をされたほうがよろしいかと思います。/var/log/messagesなどにheartbeatのログが出ていたりしますので、そちらかpgpoolのログファイルに起動されなかった理由がかかれているかと思いますが。