Galera Cluster
仲裁计算 — 可用节点
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(总数)始终为检测到的节点总数,即使部分节点处于离线状态。
wsrep 段
Galera 段(gmcast.segment)在 Dot3 中显示为子图:
- SEGMENT_OK — 该段中所有节点均为 Synced
- SEGMENT_KO — 该段中没有可用节点
- SEGMENT_PARTIAL — 仅部分节点可用
IST / SST 流
PmaControl 检测节点之间的状态传输:
- IST(增量状态传输) — 通过 gcache 缓存进行增量传输
- SST(状态快照传输) — 完整传输(mariabackup、rsync、mysqldump)
当 SST/IST 正在进行时,Dot3 显示 donor→joiner 提示链接。
garb 仲裁节点
PmaControl 通过 wsrep_incoming_addresses 检测 Galera 仲裁节点(garbd)。仲裁节点在 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