适用场景
- 产品:
ZCF - 组件:
ZStack Cloud - 版本:
4.8.x - 存储类型:
sharedblock - 适用范围: 仅
x86节点 - 当前内核:
4.19.90-25.21.v2101.ky10.x86_64 - 目标内核包:
4.19.90-25.54.tar.gz - 触发条件:需要逐台把生产环境 x86 物理机内核升级到更新版本,ARM 节点不在本次变更范围内。
问题现象
- 当前环境需要对
x86节点执行内核升级。 - 升级过程中不影响其他云主机业务系统正常运行。
- 由于升级后必须重启,因此需要先把目标节点上的云主机热迁移走。
判断方法
- 升级前确认目标节点无正在运行的云主机。
- 升级后检查
uname -r是否切换到目标内核。 - 升级后检查云主机状态与资源连接状态是否正常。
原因说明
本次变更不是平台版本升级,而是宿主机内核升级。由于新内核必须通过重启生效,因此核心控制点在于:先完成热迁移清空节点,再安装内核、调整 grubby 默认启动项、逐台重启并验证。
解决方案
- 执行前准备
- 风险等级:高
- 先登录云平台关闭全局高可用。
- 先将待升级节点上的云主机全部热迁移到其他节点。
- 建议在业务低峰期执行。
- 上传并校验内核包
- 将内核升级包上传到待升级节点:
4.19.90-25.54.tar.gz
- 校验
md5:
4e16d393945e9f479c9b05062a4eb2a9
- 预期结果:确认升级包完整无损。
- 安装新内核
- 解压升级包:
tar -zxvf 4.19.90-25.54.tar.gz
cd 4.19.90-25.54/
- 预期结果:进入内核包目录。
- 安装内核:
yum install --disablerepo=* ./kernel-*
- 预期结果:新内核安装完成。
- 调整默认启动项并重启
- 查看所有启动项:
grubby --info=ALL | grep -E '^title|^index'
- 预期结果:找到
Kylin Linux Advanced Server (4.19.90-25.54.v2101.ky10.x86_64) V10 (ZStack)对应的index。
- 如新内核不是默认启动项,则设置:
grubby --set-default-index=<index>
- 预期结果:下次重启默认进入新内核。
- 重启前检查节点上无运行中的云主机:
virsh list
- 预期结果:确认目标节点已迁空。
- 若是管理节点,先停止管理服务;然后执行:
sync;sync;reboot
- 预期结果:主机重启进入新内核。
- 重启后验证:
uname -r
- 预期结果:显示目标内核版本。
- 升级后收口
- 检查云主机状态。
- 检查各项资源连接状态。
- 开启全局高可用。
- 预期结果:平台恢复正常运行策略。
验证方法
- 检查
virsh list在重启前为空。 - 检查
uname -r在重启后为目标内核。 - 检查云主机状态和平台资源连接状态正常。
- 检查高可用已恢复开启。
风险与回滚
- 风险:内核升级必须重启,若未提前迁空节点会直接影响业务。
- 风险:热迁移建议在业务低峰期执行。
- 风险等级:高。
回退方法
- 查看旧内核对应启动项:
grubby --info=ALL | grep -E '^title|^index'
- 将默认启动项切回旧内核
4.19.90-25.21.v2101.ky10.x86_64:
grubby --set-default-index=<旧内核index>
- 重启并验证:
sync;sync;reboot
uname -r
- 预期结果:节点回到旧内核版本。
