快速查明 pacemaker/corosync 是否具有法定人数/是否达到法定人数

快速查明 pacemaker/corosync 是否具有法定人数/是否达到法定人数

在 shell 脚本中,我们当前调用/usr/sbin/pcs status cluster然后grep -qEfor 来'Current DC:.*partition with quorum'查明集群是否正常。

我想知道是否有更快捷的方法,因为pcs status cluster 它会查询所有节点的 PCSD 状态,这需要大约一秒半的时间,并且我想在执行某些经常执行的操作之前进行此检查。

pcs status nodes both计算在线节点的数量是否同样可以判断集群是否正常运行?

这需要大约 2 秒: pcs status cluster 2>&1 | grep -qE 'Current DC:.*partition with quorum'

这需要约 0.2 秒: pcs status nodes both | grep -cE 'Online: [a-z]+ [a-z]+ [a-z]+'

(该集群有 5 个节点,因此正则表达式中有三个节点名称)。

编辑:

这需要~0.02秒: corosync-quorumtool 2>&1 | grep -q -E '^Quorate:.*Yes$'

谢谢马特·凯雷兹曼

答案1

假设您正在使用 Corosync,则可以使用corosync-quorumtool

# corosync-quorumtool -s
  Quorum information
  ------------------
  Date:             Wed Sep 27 07:16:18 2017
  Quorum provider:  corosync_votequorum
  Nodes:            2
  Node ID:          1
  Ring ID:          76
  Quorate:          Yes

  Votequorum information
  ----------------------
  Expected votes:   2
  Highest expected: 2
  Total votes:      2
  Quorum:           1  
  Flags:            2Node Quorate WaitForAll 

  Membership information
  ----------------------
      Nodeid      Votes Name
           1          1 172.16.7.100 (local)
           2          1 172.16.7.101

编辑:然后只需检查Quorate报告Yes

相关内容