web-dev-qa-db-ja.com

ペースメーカー/コロシンクにクォーラムがあるかどうか/クォーレートかどうかをすばやく確認する

シェルスクリプトでは、現在/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

2
MattBianco

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

編集:そして、QuorateYesを報告することを確認してください。

2
Matt Kereczman