Galera Cluster
Расчёт кворума — Nodes available
PmaControl рассчитывает реально доступные узлы в кворуме Galera:
Nodes available (X) =
mysql_available = 1
AND wsrep_cluster_status = Primary
AND (
wsrep_local_state_comment = Synced
OR (Donor/Desync/Unsync AND wsrep_desync = OFF)
)
Это правило исключает узлы:
- Non-Primary — Узел вне кворума
- Disconnected — Узел отключён от кластера
- Inconsistent — Несогласованные данные
- Donor с wsrep_desync=ON — Намеренно десинхронизирован
Знаменатель Y (итого) — это всегда общее количество обнаруженных узлов, даже если часть из них offline.
Сегменты wsrep
Сегменты Galera (gmcast.segment) отображаются как подграфы в Dot3:
- SEGMENT_OK — Все узлы сегмента в состоянии Synced
- SEGMENT_KO — Ни один узел сегмента недоступен
- SEGMENT_PARTIAL — Лишь часть узлов доступна
Потоки IST / SST
PmaControl обнаруживает передачу состояния между узлами:
- IST (Incremental State Transfer) — Инкрементальная передача через кэш gcache
- SST (State Snapshot Transfer) — Полная передача (mariabackup, rsync, mysqldump)
Dot3 отображает связь-подсказку donor→joiner, когда SST/IST в процессе.
Арбитр garb
PmaControl обнаруживает арбитр Galera (garbd) через wsrep_incoming_addresses. Арбитр отображается в Dot3 как виртуальный узел — он участвует в голосовании за кворум, не храня данные.
wsrep-notify
Скрипт wsrep-notify.sh (в documentation/wsrep-notify/) можно настроить на каждом узле Galera для записи изменений состояния в /var/log/galera.log.
# Dans my.cnf
[mysqld]
wsrep_notify_cmd = /usr/local/bin/wsrep-notify.sh