Descobrir rapidamente se o marcapasso / corosync tem quorum / é quorate

2

Em um script de shell, atualmente chamamos /usr/sbin/pcs status cluster e, em seguida, grep -qE para 'Current DC:.*partition with quorum' para descobrir se o cluster está bem.

Eu gostaria de saber se existe uma maneira mais rápida, porque pcs status cluster faz com que ele consulte todos os nós pelo status PCSD, o que leva tempo, cerca de um segundo e meio, e eu quero fazer essa verificação antes de fazer certas operações que devem ser feitas com bastante frequência.

O pcs status nodes both e a contagem do número de nós online seriam igualmente bons para decidir se o cluster está funcionando sem problemas?

Isso leva ~ 2 segundos: pcs status cluster 2>&1 | grep -qE 'Current DC:.*partition with quorum'

Isso leva ~ 0,2 segundos: pcs status nodes both | grep -cE 'Online: [a-z]+ [a-z]+ [a-z]+'

(O cluster tem 5 nós, daí os três nomes de nós na expressão regular).

EDITAR:

Isso leva ~ 0,02 segundos: corosync-quorumtool 2>&1 | grep -q -E '^Quorate:.*Yes$'

Obrigado Matt Kereczman !

    
por MattBianco 26.09.2017 / 08:28

1 resposta

2

Supondo que você esteja usando o Corosync, você pode usar 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

EDIT: Em seguida, basta verificar que Quorate relatórios Yes .

    
por 27.09.2017 / 16:19