【VMware Cloud Director】postgreのレプリケーション挙動とフェイルオーバー時の注意点

・環境

3ノード構成であり、プライマリノードは「20-vcd-11」

レプリケーション設定

確認対象ファイル:/var/vmware/vpostgres/current/pgdata/postgresql.conf

セル3台が正常に稼働している時は以下のような設定となっている

wal_level = replica
max_wal_senders = 10
synchronous_commit = on
synchronous_standby_names = 'ANY 1 ("20-vcd-13","20-vcd-12")'

・スタンバイセルのリストア時のレプリケーション設定(synchronous_standby_names )について

①正常時

synchronous_standby_names = 'ANY 1 ("20-vcd-13","20-vcd-12")'

②セル「20-vcd-12」削除時

synchronous_standby_names = 'ANY 1 ("20-vcd-13","20-vcd-12")'

削除したセルの情報が設定から削除されていない

③セル「20-vcd-12」リストア時

synchronous_standby_names = 'ANY 1 ("20-vcd-13","20-vcd-12","20-vcd-12")'

リストアしたセルが2重に登録されてしまう

④数分経過後

synchronous_standby_names = 'ANY 1 ("20-vcd-13","20-vcd-12")'

重複していた登録が削除される

古いセルを削除してから120分経過後に登録が削除される

・2重登録による懸念点

synchronous_standby_names = 'ANY 1 ("20-vcd-13","20-vcd-12","20-vcd-12")'

といった状態のときに、2重登録されている「20-vcd-12」へフェイルオーバーすると、プライマリへ昇格する「20-vcd-12」が削除され以下のようになる

synchronous_standby_names = 'ANY 1 ("20-vcd-13","20-vcd-12")'

スタンバイとしてプライマリとなっているセル「20-vcd-12」も指定されてしまっている構成になり、GUIアクセスが不可になるなどの挙動がみられた