シェルスクリプトでは、現在/usr/sbin/pcs status cluster
を呼び出してからgrep -qE
を呼び出して'Current DC:.*partition with quorum'
を呼び出し、クラスターに問題がないかどうかを確認しています。
pcs status cluster
はすべてのノードにPCSDステータスを照会するため、より迅速な方法があるかどうかを知りたいのですが、これには約1秒半かかります。特定の操作を実行する前にこのチェックを実行したいと思います。これはかなり頻繁に行われることになっています。
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つのノードがあるため、正規表現では3つのノード名が使用されます)。
編集:
これには約0.02秒かかります:corosync-quorumtool 2>&1 | grep -q -E '^Quorate:.*Yes$'
ありがとうMatt Kereczman!
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
を報告することを確認してください。