文档目录

适用场景

  • 产品:HCI
  • 组件:旗舰版
  • 涉及对象:双管理节点、qemu、libvirt、管理节点高可用
  • 当前版本:2.2.20-c76 (Cloud-4.4.52)
  • 目标版本: 2.4.26-c76 (Cloud-4.8.36)
  • 触发条件: 平台版本较旧,需要完成云平台与虚拟化组件升级,并保留失败后的回退路径。

问题现象

  • 当前 HCI 旗舰版版本较老,平台存在版本老旧问题。
  • 需要将平台升级到 2.4.26,同时升级 qemu 与 libvirt。
  • 升级失败时,需要可以回退到原平台版本。

判断方法

  1. 确认当前环境属于本文适用范围,并记录当前版本、目标版本、系统架构、操作系统、部署形态和存储类型等关键信息。
  2. 使用升级前自检包检查环境健康情况。
  3. 检查云主机实例状态、资源状态和高可用状态正常。
  4. 升级完成后检查灰度升级开关、物理资源、VPC 连接、业务状态和云主机状态。

原因说明

本次变更的直接原因是平台老旧。为提升平台版本并同步升级相关虚拟化组件,需要执行 HCI 旗舰版 平台升级、qemu/libvirt 升级,并准备双管理解耦与数据库恢复回退方案。

解决方案

1. 执行前准备

  • 风险等级:中风险
  • 变更过程中应尽量避免影响现有云主机业务。
  • 升级前需先完成环境自检,并在两个管理节点分别备份数据库。

2. 升级前环境检查

  1. 下载并解压自检包。
   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 日志。
  1. 检查云平台高可用状态。
   zsha2 status
  • 预期结果:高可用状态正常。

3. 云平台升级步骤

  1. 在管理节点界面先关闭云主机全局高可用,并在两个管理节点分别备份数据库。
   zstack-ctl dump_mysql --file-name backup-master
   zstack-ctl dump_mysql --file-name backup-slave
  • 预期结果:数据库备份完成,高可用关闭成功。
  1. 准备升级脚本和升级 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 密码并选择相关配置。
  • 预期结果:平台升级流程执行完成。
  1. 升级 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

异常处理建议

如升级过程中出现异常,应立即停止后续操作,并按回退方案进行恢复;必要时按双管理解耦、数据库恢复和高可用重建方案回退。

HCI 旗舰版版本升级(2.2.20 至 2.4.26) | 技术方案 · KB | ZStack 资源中心