[pgpool-general-jp: 1133] Re: pgpool-II フェイルオーバ後の lifecheck のステータス異常について

Yugo Nagata nagata @ sraoss.co.jp
2012年 12月 12日 (水) 20:04:18 JST


斉藤さん

長田です。

返信が遅くなり申し訳ありません。

On Mon, 05 Nov 2012 09:50:57 +0900
Hidenori Saitoh <saitoh_hidenori_b1 @ lab.ntt.co.jp> wrote:

> 齋藤です。お世話になっております。
> 
> pgpool-II 3.2.0 の watchdog 機能を利用して死活監視を行っております。
> マシン構成は次の4台です。
>   (1) pgpool-IIサーバ1(Active)
>   (2) pgpool-IIサーバ2(Standby)
>   (3) PostgreSQLサーバ1(マスタ)
>   (4) PostgreSQLサーバ2(スレーブ)
> PostgreSQL はストリーミングレプリケーション機能を利用して、pgpool-II では
> マスタスレーブモードを利用しています。
> 
> この状態で、pgpool-IIサーバ1(Active) と PostgreSQLサーバ1(マスタ) の間の
> ネットワークが切断されると、pgpool-II のフェイルオーバが発生して、
> pgpool-IIサーバ2 が Standby から Active に昇格します。

ここでは、マシン(1)と(3)の間のネットワークが切断されたとありますが、
実際には (1) と両バックエンド(3)(4) との間が切断されたということで
よいでしょうか。(以下は、その前提で話を進めます。)

その場合、pgpool-IIサーバ1 はDBにアクセスでいなくなるので、
Down (ステータス 4)という状態になります。

> 
> その後、lifecheck の結果を見ると、pgpool-IIサーバ1側とpgpool-IIサーバ2側で
> pgpool-IIサーバ2 のステータスの値が異なった状態になってしまいます。
>   ・pgpool-IIサーバ1側のpgpool-IIサーバ2のステータス → wd_lifecheck: OK, status: 2
>   ・pgpool-IIサーバ2側のpgpool-IIサーバ2のステータス → wd_lifecheck: OK, status: 3
> 
> 本来であれば、pgpool-IIサーバ1側のpgpool-IIサーバ2のステータスは、status: 3 に
> なるべきではないでしょうか?

確かにそうなるのが望ましいのですが、現状 Down 状態の pgpool-II は、
他の pgopol-II のステータスを得ることができません。
(watchdog は Down 状態の pgpool にはパケットを送らないため。)

また、このとき pgopol-IIサーバ1 は異常状態(Down)であるので、手動で再起動
されるまでそのステータス情報も信用すべきものではないと考えます。

> 
> よろしくお願い致します。
> _______________________________________________
> pgpool-general-jp mailing list
> pgpool-general-jp @ sraoss.jp
> http://www.sraoss.jp/mailman/listinfo/pgpool-general-jp


-- 
Yugo Nagata <nagata @ sraoss.co.jp>


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