[pgpool-general-jp: 568] Re: pgpool-II の複数台構成

Jun Kuriyama kuriyama+ml @ s2factory.co.jp
2009年 6月 7日 (日) 23:31:11 JST


 貴重な情報ありがとうございます。

At Mon, 25 May 2009 09:22:27 +0900 (JST),
ishii @ sraoss.co.jp wrote:
> はい、合っています。なので、このセットアップをする際には、それぞれの
> pgpool-IIで、バックエンドの障害状態について、意見が異なることが起きな
> いようにしてください。
> 
> 具体的には、pgpool-IIがいるホスト->スイッチの間でどれか一つだけ障害を
> 起さないように、ボンディングなどを使ってネットワーク接続を冗長化してく
> ださい。スイッチ->PostgreSQLの間はたとえ障害を起しても、すべての
> pgpool-IIが同じように障害だと認知するので、問題ないと思います。

 ここは、自分の経験の範囲だと、ネットワークの問題で縮退することはまだ
なくて、どっちかというとアプリケーション側の使い方だったり、人為的な
pcp コマンドの操作ミスが原因のことが多いので、まずは監視を重視して、意
見が異なる状態に気がつくこと、かな。

 それができたとして、その場合に片方を切り離す、として、多数決で敗者を
決めるには pgpool-II が 3 台以上欲しいことになっちゃうのかな。

 あーでも pcp_recovery_node が頭痛い。pcp_recovery 指令を出すのは単一
の pgpool-II へ、であるべきですよね。その際に、リカバリーが終わったら
別の pgpool-II は pcp_detach, pcp_atatch して強制的に状態を戻す、とす
ればいいのか。
 タイミングと整合性の確保が難しそう。コマンド一発でできるように
wrapper script 書くのだろうなあ。

> > # うちはいつも FreeBSD なので、やるとしたら CARP(VRRP) と relayd (L3
> > # load balancer) の組み合わせ、かなあ。
> 
> その組合わせは興味があるので、是非レポートを。

 というわけで、pgpool-II の Active/Active は面倒そうなので(おい)、
Active/Standby でやってみます。個人的には pgpool-II 層を負荷分散しなけ
ればならないほどの状況にはなっていないので、そこは必要になってからで。

 単一障害点が残っていますが、まあコストパフォーマンスは悪くない形にで
きそうです。pgpool-II 使う時点でハードウェアは 2 台あるでしょうから、
初期設定が増えるのと、何か起こった時に問題追及が複雑になりかねないとこ
ろがデメリット。

 下記にメモを置いておきます。基本的には自分の要件を満たすことが主なの
で、誰にでもお勧めできる構成というわけではありませんが、コメントなどあ
りましたらぜひどうぞ。


■ FreeBSD + carp(4) + relayd(8) で pgpool-II を冗長化する
http://www.s2factory.co.jp/tech/pgpool-II-carp-relayd/


 まだ手元の実験環境でやっただけで、データセンターに持って行って本番環
境になるのは来月あたり。
 運用しているとまたいろいろと気がつく点が出てくるでしょう。


-- 
Jun Kuriyama <kuriyama @ s2factory.co.jp> // S2 Factory, Inc.


pgpool-general-jp メーリングリストの案内