Linux
快速查明起搏器/corosync 是否有 quorum/is quorate
在 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$'
謝謝馬特**·克雷茲曼**!
假設您使用的是 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
。