Назад | Перейти на главную страницу

Быстро узнать, есть ли кворум / кворум у кардиостимулятора / corosync

В сценарии оболочки мы в настоящее время вызываем /usr/sbin/pcs status cluster а потом grep -qE для '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.