구성 세부정보를 추가합니다.

구성 세부정보를 추가합니다.

우리는 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(클래스=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 keepalives_interval=5 keepalives_count=5 "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 마스터 인스턴스가 하나만 실행되어야 하므로 클러스터가 서비스 복구(Postgresql에서 중지/시작)를 수행해야 합니다. 클러스터는 모든 곳에서 Postgresql을 중지한 다음 Postgresql 마스터의 단일 인스턴스를 시작하고 시작할 수 있는 노드(귀하의 경우 원래 마스터 노드)를 선택합니다.

postgresql이 문제를 해결하려면 시작 시 Pacemaker/Corosync를 비활성화하고 활성화했는지 확인하십시오 .

# systemctl disable postgresql-9.6
# systemctl enable pacemaker corosync

관련 정보