文档目录

适用场景

  • 产品:ZCF
  • 组件:ZStack Cloud
  • Cloud 版本:5.4.x
  • 操作系统:H84r
  • 涉及存储:ZCE-X
  • 部署形态:双管理节点
  • 触发条件:需要把双管理平台灰度升级到新的 LTS 补丁版本。

问题现象

  • 当前平台版本为 5.4.x。
  • 目标是升级到 5.4.x。
  • 本次只升级云平台,不升级 qemu/libvirt/kernel。
  • 升级采用灰度方式推进,需要先校验单台物理机重连后的 agent 和业务状态。

判断方法

  1. 升级前必须先运行自检脚本并查看 check.log。
  2. 升级后先重连一台非核心业务物理机做灰度验证。
  3. 验证无异常后,再批量推进其他物理机升级。

原因说明

本次升级虽然不涉及核心虚拟化组件版本变更,但依然属于双管理灰度升级,风险集中在 agent 升级、管理节点切换、数据库超时和环境兼容性检查,因此必须把“自检 + 环境预处理 + 灰度验证”三件事做完整。

解决方案

  1. 升级前准备
  • 风险等级:高
  • 仅适用于 x86 + H84r 环境。
  • 先关闭全局高可用。
  • 先申请 1 台非核心业务物理机作为灰度重连验证对象。
  • 提前停止所有备份任务。
  1. 自检与环境预处理
  2. 运行升级自检包:
   tar zxvf zstack-upgrade-check-master.tar.gz
   cd zstack-upgrade-check-master && bash exec_tool.sh -p [MN_admin_password]
   cat ./log/check.log
  • 预期结果:完成兼容性与阻断项检查。
  1. 上传 ISO、升级脚本、HA 包和 bin 文件,并核对 md5/commit。
  • 预期结果:升级材料版本正确。
  1. 调整数据库超时:
   wait_timeout=28800
   interactive_timeout=28800

然后执行:

   systemctl restart mariadb.service
  • 预期结果:避免升级期间数据库超时。
  1. 按实际环境调整全局配置:
   UpdateGlobalConfig category=storageDevice name=enable.multipath value=ignore
   UpdateGlobalConfig category=applianceVm name=connect.timeout value=1200
   UpdateGlobalConfig name=update.os.parallelismDegree category=cluster value=5 或 10
   UpdateGlobalConfig name=update.os.parallelismDegree category=host value=10
  • 预期结果:为灰度升级和物理机重连预热环境参数。
  1. 两个管理节点分别备份数据库。
  • 预期结果:具备平台回退基础。
  1. 灰度升级执行
  2. 两个管理节点更新升级源:
   bash zstack-upgrade -r ZStack_Alibaba_Cloud-x86_64-DVD-5.4.6-h84r.iso
  • 预期结果:升级源切换完成。
  1. 查询 VIP 所在节点:
   zsha2 status
  • 预期结果:明确后续 upgrade-ha 执行节点。
  1. 解压 HA 包并赋予执行权限:
   tar zxvf ZStack-Multinode-HA-Suite.tar.gz
   chmod +x zsha2 zstack-hamon
  • 预期结果:HA 升级工具可执行。
  1. 两个管理节点停止 MN 服务:
   zsha2 stop-node
  • 预期结果:管理节点进入可升级状态。
  1. 在 VIP 节点升级高可用套件:
   ./zsha2 upgrade-ha -gencfg=true
  • 预期结果:HA 套件升级完成。
  1. 执行灰度升级:
   zsha2 upgrade-mn -grayscale -yes -db-root-pw $mysql_root_password -peerpass $peer_mysql_root_password $zstack_bin
  • 单管理场景 bash zstack-installer.bin -u --grayscale true 作为参考。
  • 预期结果:云平台升级到 5.4.x,并进入灰度模式。
  1. 升级后灰度验证
  2. 检查状态:
   zstack-ctl status
   zsha2 status
  • 预期结果:管理节点和 HA 状态正常。
  1. 登录 UI 检查物理机、主存储、镜像服务器等资源连接状态。
  • 预期结果:平台资源均为“已连接”。
  1. 先手动重连一台非核心业务物理机。
  • 预期结果:该主机 agent 完成升级,且业务不受影响。
  1. 检查 agent 版本记录:
   zstack-cli QueryAgentVersion
  • 预期结果:版本记录正确。
  1. 按存储类型进一步核查:
  • SharedBlock:vgs、多路径、SAN 链路、/var/log/messages
  • Ceph:ceph -s
  • 本地存储:xfs、盘符和挂载路径相关日志
  • 预期结果:主机侧存储与业务状态正常。
  1. 若灰度验证无异常,则依次重连其他物理机。
  2. 全局升级完成后关闭灰度开关:
   QueryGlobalConfig category=upgradeControl name=grayscaleUpgrade
   UpdateGlobalConfig name=grayscaleUpgrade category=upgradeControl value=false
  • 预期结果:退出灰度模式。
  1. 开启全局高可用。
  • 预期结果:升级流程收口完成。

验证方法

  • 检查 zstack-ctl status、zsha2 status 正常。
  • 检查首台灰度重连物理机和其云主机业务正常。
  • 检查 QueryAgentVersion 记录正确。
  • 检查平台资源连接状态全部正常。

风险与回滚

  • 风险:升级期间管理节点不可访问,API 和新资源申请不可用。
  • 风险:若环境自检未做好,灰度阶段可能出现主机或主存储连接异常。
  • 风险:浏览器缓存可能导致升级后界面打不开,需要手动清理缓存。
  • 风险等级:高。
  • 回滚步骤包括:
  1. 双管理解耦为单管理
  2. 停止 zsha2 / keepalived / zstack-ha
  3. stop slave / reset slave all
  4. 重写 DB.url
  5. 删除 /usr/local/zstack
  6. 恢复旧 repo / 旧 installer / restore_mysql
ZStack Cloud 双管理节点 5.4.x 升级方案 | 技术方案 · KB | ZStack 资源中心