适用场景
- 产品:
ZCF - 组件:
ZStack Cloud - 版本:
4.4.x - 部署形态:双管理复用超融合节点
- 触发条件:异常断电或供电故障导致双管理数据库不同步。
问题现象
- 双管理数据库出现不同步。
- 管理服务需要短时间停止。
- 说明:数据库同步期间用户无法通过
UI管理云平台,但不会影响现有物理机和云主机在线业务。
判断方法
- 先备份数据库并关闭高可用。
- 用
zsha2 db-status判断哪个节点数据库状态正常。 - 把
VIP切换到数据库正确的节点后再执行同步。 - 同步完成后再次检查数据库状态与资源连接情况。
原因说明
直接原因是异常断电或供电故障导致双管理数据库不同步。此类问题的处理关键不是简单重启服务,而是先明确“哪个节点数据库是正确的”,再把 VIP 切到正确节点上执行 zsha2 db-sync,否则可能把异常状态进一步扩散。
解决方案
- 执行前准备
- 风险等级:低
- 先备份数据库。
- 先把数据库备份复制到异地。
- 先关闭云平台全局高可用。
- 备份数据库并关闭高可用
- 在双管理节点备份数据库:
zstack-ctl dump_mysql --file-name beforSyncDB
- 预期结果:生成同步前数据库备份。
- 将备份复制到异地:
scp /var/lib/zstack/mysql-backup/beforSyncDB.gz x.x.x.x:/opt
- 预期结果:异地保留回退副本。
- 通过
UI关闭全局高可用。
- 预期结果:避免数据库同步期间触发额外平台动作。
- 停止双管理并切换 VIP
- 停止双管理节点的管理服务:
zsha2 stop-node
- 预期结果:进入数据库同步窗口。
- 把
VIP切换到数据库正确的管理节点:
zsha2 demote
- 预期结果:后续同步在正确节点上执行。
- 执行数据库同步
- 查看数据库同步状态:
zsha2 db-status
- 预期结果:识别哪个节点数据库正常。
- 执行数据库同步:
zsha2 db-sync -p <数据库密码>
- 使用实际数据库密码替换
<数据库密码>。 - 预期结果:双管理数据库重新同步完成。
- 再次检查同步状态:
zsha2 db-status
- 预期结果:数据库状态恢复一致。
- 恢复双管理服务与高可用
- 启动双管理服务:
zsha2 start-node
- 预期结果:管理服务恢复可用。
- 通过
UI开启全局高可用。
- 预期结果:平台恢复正常保护策略。
验证方法
- 检查
zsha2 db-status显示同步正常。 - 检查双管理服务恢复正常。
- 检查通过
VIP:5000登录后平台资源连接正常。 - 检查在线业务无异常。
风险与注意事项
- 风险:数据库同步期间管理服务停止,用户无法通过
UI管理平台。 - 风险:如果未先判断数据库正确节点就直接同步,可能扩大异常。
- 风险等级:低。
回退方法
若数据库同步失败,或同步后出现资源不可连接 / 资源缺失等故障:
- 停止双管理节点管理服务:
zstack-ctl stop
- 在 2 个管理节点分别恢复先前备份的数据库:
zstack-ctl restore_mysql -f /root/beforSyncDB --mysql-root-password <数据库_root_密码>
- 启动管理节点:
zstack-ctl start
- 通过
VIP:5000登录平台检查资源连接情况和业务运行状态。
- 预期结果:回退到同步前数据库状态。
