在 shell 脚本中,我们当前调用/usr/sbin/pcs status cluster
然后grep -qE
for 来'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
。