構成の詳細を追加します。

構成の詳細を追加します。

PacemakerとCorosyncを使用してフェイルオーバーを自動化します。マスタノードが再起動したときにスタンバイノードがマスタノードとして機能する動作を発見しました。これは良い現象です。ノードがオンラインに戻り、サービスが開始されるとマスターロールが再インポートされます。理想的にはスタンバイモードで起動する必要があります。不足している設定がありますか?

PCリソースの基本O / p:リソース固定性:INFINITY移行しきい値:0

粘着性は無限に設定されています。提案してください。

構成の詳細を追加します。

[root@Node1 ハートビート]# pcs config show –l
クラスタ名:Cluster1
Corosync ノード:
 ノード 1 ノード 2
ペースメーカーノード:
 ノード 1 ノード 2

リソース:
 マスター: msPostgresql
  メタ属性: master-node-max=1clone-max=2notify=truemaster-max=1clone-node-max=1
  リソース: pgsql (class=ocf プロバイダ=heartbeattype=pgsql)
   属性: master_ip=10.70.10.1 node_list="Node1 Node2" pgctl=/usr/pgsql-9.6/bin/pg_ctl pgdata=/var/lib/pgsql/9.6/data/ Primary_conninfo_opt="keepalives_idle=60 "psql=/usr/pgsql-9.6/bin/psql rep_mode=asynchronous restart_on_promote=true Restore_command="cp /var/lib/pgsql/9.6/data/archivedir/%f %p"
   メタ属性:failuretimeout=60
   処置: ダウングレード間隔=0s on-fail=stopタイムアウト=60s(pgsql-demote-interval-0s)
               メソッド間隔=0秒タイムアウト=5秒(pgsql-methods-interval-0s)
               監視間隔=4秒 on-fail=再起動タイムアウト=60秒(pgsql-monitor-interval-4s)
               監視間隔=3秒 on-fail=再起動ロール=マスタータイムアウト=60秒(pgsql-monitor-interval-3s)
               通知間隔=0秒タイムアウト=60秒(pgsql-notify-interval-0s)
               アップグレード間隔=0秒失敗時=再起動タイムアウト=60秒(pgsql-promote-interval-0s)
               起動間隔=0秒 on-fail=再起動タイムアウト=60秒(pgsql-start-interval-0s)
               stop-interval=0s on-fail=block timeout=60s (pgsql-stop-interval-0s)
 カテゴリー:マスターカテゴリー
  リソース: vip-master (クラス=ocfプロバイダ=ハートビートタイプ=IPaddr2)
   属性: cidr_netmask=24 ip=10.70.10.2
   アクション: 監視間隔=10秒 on-fail=再起動タイムアウト=60秒(vip-master-monitor-interval-10s)
               開始間隔=0秒 on-fail=再起動タイムアウト=60秒(vip-master-start-interval-0s)
               停止間隔=0秒 - 失敗時=ブロックタイムアウト=60秒(vip-master-stop-interval-0s)
  リソース:vip-rep(クラス= ocfプロバイダ=ハートビートタイプ= IPaddr2)
   属性: cidr_netmask=24 ip=10.70.10.1
   メタ属性:移行しきい値= 0
   アクション: 監視間隔=10秒 on-fail=再起動タイムアウト=60秒(vip-rep-monitor-interval-10s)
               開始間隔=0秒 on-fail=停止タイムアウト=60秒(vip-rep-start-interval-0s)
               stop-interval=0s on-fail=タイムアウト無視=60s(vip-rep-stop-interval-0s)

ストーニス機器:
フェンシングレベル:

位置制限:
注文制限:
  msPostgresqlをブーストした後、マスターグループを起動します(スコア:INFINITY)(非対称)
  msPostgresqlをダウングレードした後、マスターグループを停止します(スコア:0)(非対称)
ホスティング制限:
  msPostgresqlを含むマスターグループ(スコア:INFINITY)(rsc-role:開始)(with-rsc-role:Master)
チケット制限:

アラーム:
 未定義の警告

リソースのデフォルト:
 資源の固着性: INFINITY
 移行しきい値:0
動作デフォルト:
 デフォルト値が設定されていません。

クラスター属性:
 クラスタインフラストラクチャ:corosync
 クラスタ名:Cluster1
 クラスタ再確認間隔:60
 DCバージョン:1.1.19-8.el7-c3c624ea3d
 ウォッチドッグあり: false
 仲裁方針なし:無視
 起動失敗は致命的です:false
 stonithを有効にする:false
ノード属性:
 ノード 1: pgsql-data-status=STREAMING|ASYNC
 ノード2:pgsql-data-status =最新

定足数:
  オプション:

ありがとうございます!

ベストアンサー1

起動時に起動するようにPostgresqlを設定しました。つまり、マスターノードが再起動すると、すでにPostgresqlを実行していたクラスタに再参加し、クラスタにはPostgresqlマスターインスタンスを1つだけ実行する必要があるため、クラスタはサービスの回復(Postgresqlで停止/開始)を実行する必要があります。クラスタはすべての場所でPostgresqlを停止し、Postgresqlマスターの単一インスタンスを起動および起動できるノード(あなたの元のマスターノード)を選択します。

postgresqlこの問題を解決するには、起動時にPacemaker / Corosyncを無効にして有効になっていることを確認してください。

# systemctl disable postgresql-9.6
# systemctl enable pacemaker corosync

おすすめ記事