文档目录

适用场景

  • 产品:ZCF
  • 组件:ZStack Cloud
  • 版本:5.3.x、5.5.x
  • 操作系统软件源类型: h84r / ky10sp3
  • 部署形态:双管理节点
  • 触发条件:需要将平台升级到 5.5.x,以支持产品化 sriov 等功能,并同步把 qemu/libvirt 收口到新 LTS 版本。

问题现象

  • 当前平台版本为 5.3.x。
  • 目标是升级到 5.5.x。
  • 测试区和生产区当前 qemu/libvirt 版本不同,需统一升级到目标版本。
  • 说明升级同时涉及 h84r 和 ky10sp3 两套源。

判断方法

  1. 升级前先完成升级自检并检查 check.log。
  2. 平台升级后先重连一台非核心业务主机进行灰度验收。
  3. 组件升级后检查 qemu/libvirt/glib2 版本以及 VM 实际 QEMU 版本。

原因说明

本次升级不仅是主控版本提升,还要补齐 qemu/libvirt 版本差异,以满足新功能支持与版本收敛要求。由于环境存在双管理和双源场景,必须先完成平台灰度升级与主机重连验收,再推进组件升级。

解决方案

  1. 升级前准备
  • 风险等级:高
  • 先运行升级自检脚本并检查 zsha2 status。
  • 先关闭全局高可用。
  • 提前申请 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. 调整数据库超时并重启 mariadb:
   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. 备份双管理数据库:
   zstack-ctl dump_mysql --file-name 4.x-mn1
   zstack-ctl dump_mysql --file-name 4.x-mn2
  • 预期结果:具备平台回退基础。
  1. 平台灰度升级到 5.5.x
  2. 双管理节点分别更新两套源:
   bash zstack-upgrade -r ZStack-x86_64-DVD-5.5.1-260112-h84r-Enterprise.iso
   bash zstack-upgrade -r ZStack-x86_64-DVD-5.5.1-260112-ky10sp3-Enterprise.iso
  • 预期结果:管理节点具备目标版本源。
  1. 查询 VIP 所在节点:
   zsha2 status
  • 预期结果:明确 HA 升级执行节点。
  1. 解压 HA 包并赋权:
   tar zxvf ZStack-Multinode-HA-Suite.tar.gz
   chmod +x zsha2 zstack-hamon
  • 预期结果:HA 升级工具准备完成。
  1. 停止 MN 服务并升级 HA 套件:
   zsha2 stop-node
   ./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
  • 预期结果:平台升级到 5.5.x。
  1. 升级完成后检查:
   zstack-ctl status
   zsha2 status
  • 预期结果:管理节点和 HA 状态正常。
  1. 灰度验收
  2. 登录 UI 检查物理机、主存储、镜像服务器等资源状态。
  • 预期结果:资源状态均为“已连接”。
  1. 优先手动重连一台非核心业务主机。
  • 预期结果:该主机升级状态变为“已升级”。
  1. 检查:
   zstack-cli QueryAgentVersion
  • 预期结果:agent 版本记录正确。
  1. 根据存储类型检查:
  • SharedBlock:vgs、lsblk、multipath -ll、I/O 错误日志
  • Ceph:ceph -s
  • 管理节点日志:management-server.log
  • 云主机:控制台 ping 连通性
  • 预期结果:主机、存储与业务都正常。
  1. 无异常后依次重连其他物理机。
  2. 关闭灰度变量开关并开启全局高可用:
   QueryGlobalConfig category=upgradeControl name=grayscaleUpgrade
   UpdateGlobalConfig name=grayscaleUpgrade category=upgradeControl value=false
  • 预期结果:平台升级流程收口完成。
  1. 升级 qemu / libvirt / glib2
  2. 双管理节点继续使用 5.5.x 两套源。
  3. 先单台升级:
  • qemu-storage-daemon
  • qemu-kvm
  • libvirt
  • glib2
  • 预期结果:在单主机先完成验证。
  1. 单台验证通过后,再对整个集群执行同类升级。
  2. 使用:
   QueryLongJob uuid=xxx

跟踪升级进度。

  1. 用批量 ssh + rpm -q qemu-kvm libvirt glib2 检查全主机版本一致性。
  • 预期结果:测试区和生产区都收口到目标版本。
  1. qemu 升级完成后,需要通过热迁移或重启让云主机生效新版本,并用:
   virsh qemu-monitor-command $VMuuid --hmp info version

检查实际 QEMU 版本。

  • 预期结果:VM 运行在新 QEMU 版本上。

验证方法

  • 检查平台版本已升级到 5.5.x。
  • 检查灰度重连主机和后续批量重连主机状态正常。
  • 检查 QueryAgentVersion 正确。
  • 检查 qemu/libvirt/glib2 版本达到目标版本。
  • 检查 VM 实际 QEMU 版本已更新。

风险与回滚

  • 风险:升级期间管理节点不可访问,不能申请新的云主机或云盘。
  • 风险:qemu/libvirt 升级会全面影响虚拟化兼容性,需要充分验证。
  • 风险:qemu 升级后需热迁移或重启才能让 VM 生效新版本。
  • 风险等级:高。
  • 回滚:双管理解耦为单管理、恢复旧 repo / installer / 数据库的完整回退路径。
云平台升级至5.5.x版本 | 技术方案 · KB | ZStack 资源中心