知识库技术方案双管理节点数据库重新同步及 zsha2 HA 套件升级

双管理节点数据库重新同步及 zsha2 HA 套件升级

技术方案ZCF · Cloud适用版本4.8.x文章 IDKB-100547更新于2026-08-17

适用场景

  • 产品:ZStack Cloud(ZCF)。
  • 版本:4.8.x
  • 组件:zsha2(多节点 HA 套件)及管理节点的 MariaDB 数据库。
  • 触发条件:两台管理节点上的 MariaDB 出现数据不同步,需将 zsha2 HA 套件恢复到一致状态后再升级。

问题现象

本文针对两台管理节点间 MariaDB 数据库出现数据不同步时的修复流程,以及将 zsha2 多节点 HA 套件升级恢复至一致状态的解决方案步骤。

判断方法

  1. 分别在两台管理节点上执行 zsha2 statuszsha2 db-status 以及 ceph -s 命令进行比对。
  2. 在两台节点上分别查看 zsha2 db-status,确认备节点已不再持续同步数据库

解决方案

1. 执行前准备

  • 在执行恢复操作前,先在云平台UI上禁用全局高可用 (全局 HA)。
图 1. 禁用全局高可用

禁用全局高可用

*图 1:在 ZStack Cloud 控制台中禁用全局高可用(红框标出)

  • 使用 zstack-ctl dump_mysql 在两台管理节点上分别备份 MariaDB(主节点和备节点)。*
  • 确认已有新版本 HA 套件压缩包,并已校验 md5。

2. 数据库同步与 HA 升级步骤

  1. 查看 HA 服务状态、数据库状态、存储状态:
   zsha2 status
   zsha2 db-status
   ceph -s
  1. 在两台管理节点上分别备份数据库:
   zstack-ctl dump_mysql --file-name zstack-db-backup-master     (主节点)
   zstack-ctl dump_mysql --file-name zstack-db-backup-slave      (备节点)
  1. 在两台管理节点上停止 zsha2 服务:
   zsha2 stop-node
  1. 在当前持有 VIP 的节点上执行数据库同步:
   zsha2 db-sync -p '<zstack-db-password>'
  1. 检查数据库状态,确认备节点数据库已恢复正常,否则请停止操作:
   zsha2 db-status
  1. 切换 VIP 到另一台节点:
   zsha2 demote
  1. 在原备节点(此时已升为源端)上再次执行数据库同步:
   zsha2 db-sync -p '<zstack-db-password>'
  1. 再次检查数据库同步状态:
   zsha2 db-status
  1. 重启两台节点上的 zsha2:
   zsha2 start-node
  1. 验证 HA 服务、数据库同步和 Ceph 状态,如果状态都健康并在 UI 重新启用全局 HA:
    zsha2 db-status
    zsha2 status
    ceph -s
  1. 升级前再次执行数据库备份:
    zstack-ctl dump_mysql --file-name zstack-db-backup-master-preupgrade    (主节点)
    zstack-ctl dump_mysql --file-name zstack-db-backup-slave-preupgrade     (备节点)
  1. 查看当前 HA 套件版本,并在 VIP 节点上解压新压缩包:
    zsha2 version
    tar -zxvf Multinode-HA-Suite-zsha2_<version>.tar.gz
  1. 赋权:
    chmod +X zsha2 zstack-hamon
  1. 执行 HA 升级:
    ./zsha2 upgrade-ha -gencfg=true
  1. 验证升级后的版本:
    zsha2 version

验证方法

  • 执行 zsha2 status 显示 HA 状态健康,其中一台节点标记为 VIP=yes,另一台为 standby。
  • 执行 zsha2 db-status 显示备节点同步正常。
  • 执行 ceph -s 确认返回 HEALTH_OK。
  • 执行重新启用全局 HA 后,云主机负载和平台数据持续可访问。
图 2. 全局高可用及管理节点恢复正常

全局高可用及管理节点恢复正常

图 2:重新启用全局高可用并确认管理节点状态正常(红框标出)

  • 执行 zsha2 version 反映新 HA 套件版本。

原因说明

两台管理节点的MariaDB数据库已发生数据偏离,导致 HA 状态异常,必须通过底层手动同步恢复一致后再升级 HA 套件本身。

风险与回滚

  • 风险:手工数据库同步和 HA 升级会触及管理面;一旦失败,可能导致两台管理节点都无法管理平台。
  • 回滚:使用操作前的 zstack-ctl dump_mysql 备份以及已准备的原始版本 ISO 进行回退。

注意事项

本流程需在双管理节点 HA 部署环境上执行。操作期间管理平面会短暂不可用,云平台将触发故障转移。请在客户批准的维护窗口内执行,并在宣布成功前确认故障转移与服务恢复干净无误。