适用场景
- 产品:
ZCF - 组件:
ZStack Cloud - Cloud 版本:
5.4.x - 操作系统:
H84r - 涉及存储:
ZCE-X - 部署形态:双管理节点
- 触发条件:需要把双管理平台灰度升级到新的 LTS 补丁版本。
问题现象
- 当前平台版本为
5.4.x。 - 目标是升级到
5.4.x。 - 本次只升级云平台,不升级
qemu/libvirt/kernel。 - 升级采用灰度方式推进,需要先校验单台物理机重连后的 agent 和业务状态。
判断方法
- 升级前必须先运行自检脚本并查看
check.log。 - 升级后先重连一台非核心业务物理机做灰度验证。
- 验证无异常后,再批量推进其他物理机升级。
原因说明
本次升级虽然不涉及核心虚拟化组件版本变更,但依然属于双管理灰度升级,风险集中在 agent 升级、管理节点切换、数据库超时和环境兼容性检查,因此必须把“自检 + 环境预处理 + 灰度验证”三件事做完整。
解决方案
- 升级前准备
- 风险等级:高
- 仅适用于
x86 + H84r环境。 - 先关闭全局高可用。
- 先申请 1 台非核心业务物理机作为灰度重连验证对象。
- 提前停止所有备份任务。
- 自检与环境预处理
- 运行升级自检包:
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
- 预期结果:完成兼容性与阻断项检查。
- 上传 ISO、升级脚本、HA 包和 bin 文件,并核对
md5/commit。
- 预期结果:升级材料版本正确。
- 调整数据库超时:
wait_timeout=28800
interactive_timeout=28800
然后执行:
systemctl restart mariadb.service
- 预期结果:避免升级期间数据库超时。
- 按实际环境调整全局配置:
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
- 预期结果:为灰度升级和物理机重连预热环境参数。
- 两个管理节点分别备份数据库。
- 预期结果:具备平台回退基础。
- 灰度升级执行
- 两个管理节点更新升级源:
bash zstack-upgrade -r ZStack_Alibaba_Cloud-x86_64-DVD-5.4.6-h84r.iso
- 预期结果:升级源切换完成。
- 查询 VIP 所在节点:
zsha2 status
- 预期结果:明确后续
upgrade-ha执行节点。
- 解压 HA 包并赋予执行权限:
tar zxvf ZStack-Multinode-HA-Suite.tar.gz
chmod +x zsha2 zstack-hamon
- 预期结果:HA 升级工具可执行。
- 两个管理节点停止 MN 服务:
zsha2 stop-node
- 预期结果:管理节点进入可升级状态。
- 在 VIP 节点升级高可用套件:
./zsha2 upgrade-ha -gencfg=true
- 预期结果:HA 套件升级完成。
- 执行灰度升级:
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,并进入灰度模式。
- 升级后灰度验证
- 检查状态:
zstack-ctl status
zsha2 status
- 预期结果:管理节点和 HA 状态正常。
- 登录 UI 检查物理机、主存储、镜像服务器等资源连接状态。
- 预期结果:平台资源均为“已连接”。
- 先手动重连一台非核心业务物理机。
- 预期结果:该主机 agent 完成升级,且业务不受影响。
- 检查 agent 版本记录:
zstack-cli QueryAgentVersion
- 预期结果:版本记录正确。
- 按存储类型进一步核查:
- SharedBlock:
vgs、多路径、SAN 链路、/var/log/messages - Ceph:
ceph -s - 本地存储:
xfs、盘符和挂载路径相关日志 - 预期结果:主机侧存储与业务状态正常。
- 若灰度验证无异常,则依次重连其他物理机。
- 全局升级完成后关闭灰度开关:
QueryGlobalConfig category=upgradeControl name=grayscaleUpgrade
UpdateGlobalConfig name=grayscaleUpgrade category=upgradeControl value=false
- 预期结果:退出灰度模式。
- 开启全局高可用。
- 预期结果:升级流程收口完成。
验证方法
- 检查
zstack-ctl status、zsha2 status正常。 - 检查首台灰度重连物理机和其云主机业务正常。
- 检查
QueryAgentVersion记录正确。 - 检查平台资源连接状态全部正常。
风险与回滚
- 风险:升级期间管理节点不可访问,API 和新资源申请不可用。
- 风险:若环境自检未做好,灰度阶段可能出现主机或主存储连接异常。
- 风险:浏览器缓存可能导致升级后界面打不开,需要手动清理缓存。
- 风险等级:高。
- 回滚步骤包括:
- 双管理解耦为单管理
- 停止
zsha2/keepalived/zstack-ha stop slave/reset slave all- 重写
DB.url - 删除
/usr/local/zstack - 恢复旧 repo / 旧 installer /
restore_mysql
