[pgpool-general-jp: 1701] Re: watchdogの自動仮想IP切替がうまく動作しない

Bo Peng pengbo @ sraoss.co.jp
2022年 5月 12日 (木) 13:20:47 JST


彭です。

> 彭さん、フォローありがとうございます。
> 
> >Pgpool 複数台構成の場合、クライアントが VIP 経由で Pgpool-II(リーダー)に接続します。
> >そのため、VIP は PostgreSQL ではなく、Pgpool-IIのリーダーノードに紐づくものとなります。
> >Pgpool-II リーダーノードが切り替わる際に、VIP の切り替えが自動的に行われます。
> 
> こちらで発生している状況は以下となります。この動きは正しいのでしょうか。
> ただしこの状況では自動フェイルオーバー後は VIP(192.168.0.100)ではDBに接続できず
> zabbxiのWebでは Error connection to database となります。
> 
> 
> [root @ pg-b ~]# psql -h 192.168.0.100 -p 9999 -U pgpool postgres -c "show pool_nodes"
> 
>  node_id |   hostname   | port | status | pg_status | lb_weight |  role   | pg_role | select_cnt | load_balance_node | replication_delay | replication_state | replication_sync_state | last_status_change
> ---------+--------------+------+--------+-----------+-----------+---------+---------+------------+-------------------+-------------------+-------------------+------------------------+---------------------
>  0       | 192.168.0.92 | 5432 | up     | up        | 0.333333  | standby | standby | 0          | false             | 0                 | streaming         | async                  | 2022-05-11 22:06:51
>  1       | 192.168.0.93 | 5432 | up     | up        | 0.333333  | primary | primary | 0          | true              | 0                 |                   |                        | 2022-05-11 22:02:44
>  2       | 192.168.0.94 | 5432 | up     | up        | 0.333333  | standby | standby | 0          | false             | 0                 | streaming         | async                  | 2022-05-11 22:02:44
> (3 行)
> 
> [root @ pg-b ~]# pcp_watchdog_info -h 192.168.0.100 -p 9898 -U pgpool
> Password:
> 3 3 YES 192.168.0.93:9999 Linux pg-b 192.168.0.93
> 
> 192.168.0.93:9999 Linux pg-b 192.168.0.93 9999 9000 4 LEADER 0 MEMBER
> 192.168.0.92:9999 Linux pg-a 192.168.0.92 9999 9000 7 STANDBY 0 MEMBER
> 192.168.0.94:9999 Linux pg-c 192.168.0.94 9999 9000 7 STANDBY 0 MEMBER
> 
>  ・上記の状態で VIP から接続OKな状態。pg-bの eth0が 192.168.0.93、eth0:0が 192.168.0.100 です
>  ・primary (192.168.0.93)のPostgreSQLを手動停止
>  ・自動フェイルオーバーになり、以下の状態です。
> 
>  # su - postgres
>   $ /usr/pgsql-14/bin/pg_ctl -D /var/lib/pgsql/14/data -m immediate stop 
>  node_id |   hostname   | port | status | pg_status | lb_weight |  role   | pg_role | select_cnt | load_balance_node | replication_delay | replication_state | replication_sync_state | last_status_change
> ---------+--------------+------+--------+-----------+-----------+---------+---------+------------+-------------------+-------------------+-------------------+------------------------+---------------------
>  0       | 192.168.0.92 | 5432 | up     | up        | 0.333333  | primary | primary | 0          | true              | 0                 |                   |                        | 2022-05-11 22:22:00
>  1       | 192.168.0.93 | 5432 | down   | down      | 0.333333  | standby | unknown | 0          | false             | 0                 |                   |                        | 2022-05-11 22:22:00
>  2       | 192.168.0.94 | 5432 | up     | up        | 0.333333  | standby | standby | 0          | false             | 0                 | streaming         | async                  | 2022-05-11 22:22:56
> (3 行)
> 
> [root @ pg-b ~]# pcp_watchdog_info -h 192.168.0.100 -p 9898 -U pgpool
> Password:
> 3 3 YES 192.168.0.93:9999 Linux pg-b 192.168.0.93
> 
> 192.168.0.93:9999 Linux pg-b 192.168.0.93 9999 9000 4 LEADER 0 MEMBER
> 192.168.0.92:9999 Linux pg-a 192.168.0.92 9999 9000 7 STANDBY 0 MEMBER
> 192.168.0.94:9999 Linux pg-c 192.168.0.94 9999 9000 7 STANDBY 0 MEMBER
> 
>  ・primary は 192.168.0.92 になった
>  ・LEADERは 192.168.0.93のまま。pg-bの eth0が 192.168.0.93、eth0:0が 192.168.0.100のまま
> 
>  ⇒この状態 でzabbxiのWebでは Error connection to database。
> 
> 
> 何が正しい動作なのか理解不足なのですが、上記状態で 192.168.0.100 へのアクセスで
> 192.168.0.92 のDBへ接続する動きになるはずが、こちらの環境ではなってないということになりますか。

以下について確認させていただきます。

- psql で 192.168.0.100 に接続できますが、Zabbix Webインターフェースから接続できないのでしょうか。
- 上記 show pool_nodes の結果は、フェイルオーバー後、192.168.0.100 に対して実行した結果でしょうか。
- Zabbix Web で設定したDBのホストは 192.168.0.100 でしょうか。
  (バージョンによってファイルが異なるかもしれませんが、zabbix.conf.php の $DB['SERVER'] に指定した値)

-- 
Bo Peng <pengbo @ sraoss.co.jp>
SRA OSS, Inc. Japan
http://www.sraoss.co.jp/


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