适用场景
- 产品:HCI
- 组件:旗舰版
- 涉及对象:双管理节点、qemu、libvirt、管理节点高可用
- 当前版本:
2.4.17-c76 (Cloud-4.8.15) - 目标版本:
2.4.26-c76 (Cloud-4.8.36) - 触发条件: 平台版本较旧,需要完成云平台与虚拟化组件升级,并保留失败后的回退路径。
问题现象
- 当前 HCI 旗舰版版本为
2.4.17,平台版本较旧。 - 需要升级到
2.4.26,并同步升级 qemu / libvirt 组件。 - 升级失败时,需要支持回退到原版本。
判断方法
- 确认当前环境属于本文适用范围,并记录当前版本、目标版本、系统架构、操作系统、部署形态和存储类型等关键信息。
- 使用升级前自检包检查环境健康情况。
- 检查云主机实例状态、资源状态和高可用状态正常。
- 升级完成后检查灰度升级开关、物理资源、VPC 连接、业务状态和云主机状态。
原因说明
该场景的处理目标是完成平台版本升级。为提升平台版本并同步升级虚拟化组件,需要执行 HCI 旗舰版 平台升级、qemu / libvirt 升级,并准备双管理解耦与数据库恢复回退方案。
解决方案
1. 执行前准备
- 风险等级:中风险
- 变更过程中应尽量避免影响现有云主机业务。
- 升级前需先完成环境自检,并在两个管理节点分别备份数据库。
2. 升级前环境检查
- 下载并解压自检包。
tar xzf zstack-upgrade-check-*.tar.gz
cd zstack-upgrade-check-*
bash upgrade_precheck.sh -k zstack2026 [目标版本]
- 例如:
bash upgrade_precheck.sh -k zstack2026 5.4.7 - 预期结果:获得风险提醒和注意事项,并生成 precheck 日志。
- 检查云平台高可用状态。
zsha2 status
- 预期结果:高可用状态正常。
3. 云平台升级步骤
- 在管理节点界面先关闭云主机全局高可用,并在两个管理节点分别备份数据库。
zstack-ctl dump_mysql --file-name backup-master
zstack-ctl dump_mysql --file-name backup-slave
- 预期结果:数据库备份完成,高可用关闭成功。
- 准备升级脚本和升级 ISO,并在管理节点解压升级脚本。
mkdir -p /root/upgrade && tar -xzvf /root/cloud-upgrade-scripts_v0.4.tar.gz -C /root/upgrade
cp Cube-x86_64-DVD-2.4.26-260206-c76-Enterprise.iso upgrade/cloud-upgrade-scripts/
bash upgrade/cloud-upgrade-scripts/cloud-upgrade.sh Cube-x86_64-DVD-2.4.26-260206-c76-Enterprise.iso
- 按提示选择执行内容、输入 admin 密码并选择相关配置。
- 预期结果:平台升级流程执行完成。
- 升级 qemu 与 libvirt。
- 按处理要求参考上一步批量升级平台所有集群内 qemu 和 libvirt 组件。
- 注意:升级前需关闭灰度升级。
- 若环境为定制版本 / 特殊版本且不能升级 qemu,则不能使用该脚本升级。
- qemu 升级结束后,需要重启或迁移云主机使新版本生效。
4. 升级后环境检查
- 检查灰度升级开关。
- 检查物理资源连接情况。
- 检查 VPC 连接情况。
- 检查业务运行情况。
- 检查云主机状态正常后,开启高可用。
验证方法
- 检查升级后平台版本已变更到
2.4.26。 - 检查 qemu / libvirt 版本已更新。
- 检查物理资源、VPC、云主机状态与业务运行情况正常。
- 检查云主机迁移或重启后新 qemu 版本已生效。
风险与回滚
- 风险:平台在线升级期间管理面不可访问。
- 风险:qemu / libvirt 升级可能带来兼容性问题。
- 风险:升级后可能需要迁移或重启云主机才能生效。
- 风险等级:中。
- 回滚:已提供完整双管理回退链路,包括:
- 查询 VIP 与时钟源:
zsha2 status
zstack-ctl show_configuration | grep chrony.serverIp
- 解耦双管理:
zsha2 stop-node
systemctl disable keepalived
systemctl disable zstack-ha
mysql -uroot -pzstack.mysql.password zstack
stop slave;
reset slave all;
show slave status;
zstack-ctl config_ui --db-url jdbc:mysql://single_mn_ip:3306
zstack-ctl configure DB.url=jdbc:mysql://single_mn_ip:3306
zstack-ctl config_ui --webhook-host 127.0.0.1
- 删除并重装平台:
zstack-ctl stop
cp /usr/local/zstack/dnsmasq /root/dnsmasq.bak
rm -rf /usr/local/zstack
bash /root/zstack-upgrade-bk -r -f ZStack_Cube-x86_64-DVD-2.2.30-c76.iso
bash ZStack-Cube-installer-2.2.30.bin -D
- 恢复数据库并启动平台:
zstack-ctl stop
zstack-ctl restore_mysql -f /var/lib/zstack/mysql-backup/backup.gz --mysql-root-password zstack.mysql.password
zstack-ctl start
- 重装双管理高可用:
./zsha2 install-ha -nic br_bond0 -slave root:password@<slave_ip> -gateway <gateway> -vip <vip> -db-root-pw zstack.mysql.password -time-server <time_server> -force
异常处理建议
如升级过程中出现异常,应立即停止后续操作,并按回退方案进行恢复;必要时按双管理解耦、数据库恢复和高可用重建方案回退。
