In a shell script, we currently call
/usr/sbin/pcs status cluster and then
grep -qE for
'Current DC:.*partition with quorum' to find out if the cluster is fine.
I would like to know if there is a quicker way, because
pcs status cluster makes it query all nodes for their PCSD status, which takes time, about a second and a half, and I want to do this check before doing certain operations which are to be done quite often.
pcs status nodes both and counting the number of online nodes be equally good for deciding if the cluster is functioning without issues?
This takes ~2 seconds:
pcs status cluster 2>&1 | grep -qE 'Current DC:.*partition with quorum'
This takes ~0.2 seconds:
pcs status nodes both | grep -cE 'Online: [a-z]+ [a-z]+ [a-z]+'
(The cluster has 5 nodes, hence the three node names in the regular expression).
This takes ~0.02 seconds:
corosync-quorumtool 2>&1 | grep -q -E '^Quorate:.*Yes$'
Thank you Matt Kereczman!