Linux

快速查明起搏器/corosync 是否有 quorum/is quorate

  • September 29, 2017

在 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$'

謝謝馬特**·克雷茲曼**!

假設您使用的是 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

引用自:https://serverfault.com/questions/875497