文档目录

适用场景

  • 产品: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 节点执行内核升级。
  • 升级过程中不影响其他云主机业务系统正常运行。
  • 由于升级后必须重启,因此需要先把目标节点上的云主机热迁移走。

判断方法

  1. 升级前确认目标节点无正在运行的云主机。
  2. 升级后检查 uname -r 是否切换到目标内核。
  3. 升级后检查云主机状态与资源连接状态是否正常。

原因说明

本次变更不是平台版本升级,而是宿主机内核升级。由于新内核必须通过重启生效,因此核心控制点在于:先完成热迁移清空节点,再安装内核、调整 grubby 默认启动项、逐台重启并验证。

解决方案

  1. 执行前准备
  • 风险等级:高
  • 先登录云平台关闭全局高可用。
  • 先将待升级节点上的云主机全部热迁移到其他节点。
  • 建议在业务低峰期执行。
  1. 上传并校验内核包
  2. 将内核升级包上传到待升级节点:
   4.19.90-25.54.tar.gz
  1. 校验 md5:
   4e16d393945e9f479c9b05062a4eb2a9
  • 预期结果:确认升级包完整无损。
  1. 安装新内核
  2. 解压升级包:
   tar -zxvf 4.19.90-25.54.tar.gz
   cd 4.19.90-25.54/
  • 预期结果:进入内核包目录。
  1. 安装内核:
   yum install --disablerepo=* ./kernel-*
  • 预期结果:新内核安装完成。
  1. 调整默认启动项并重启
  2. 查看所有启动项:
   grubby --info=ALL | grep -E '^title|^index'
  • 预期结果:找到 Kylin Linux Advanced Server (4.19.90-25.54.v2101.ky10.x86_64) V10 (ZStack) 对应的 index。
  1. 如新内核不是默认启动项,则设置:
   grubby --set-default-index=<index>
  • 预期结果:下次重启默认进入新内核。
  1. 重启前检查节点上无运行中的云主机:
   virsh list
  • 预期结果:确认目标节点已迁空。
  1. 若是管理节点,先停止管理服务;然后执行:
   sync;sync;reboot
  • 预期结果:主机重启进入新内核。
  1. 重启后验证:
   uname -r
  • 预期结果:显示目标内核版本。
  1. 升级后收口
  2. 检查云主机状态。
  3. 检查各项资源连接状态。
  4. 开启全局高可用。
  • 预期结果:平台恢复正常运行策略。

验证方法

  • 检查 virsh list 在重启前为空。
  • 检查 uname -r 在重启后为目标内核。
  • 检查云主机状态和平台资源连接状态正常。
  • 检查高可用已恢复开启。

风险与回滚

  • 风险:内核升级必须重启,若未提前迁空节点会直接影响业务。
  • 风险:热迁移建议在业务低峰期执行。
  • 风险等级:高。

回退方法

  1. 查看旧内核对应启动项:
   grubby --info=ALL | grep -E '^title|^index'
  1. 将默认启动项切回旧内核 4.19.90-25.21.v2101.ky10.x86_64:
   grubby --set-default-index=<旧内核index>
  1. 重启并验证:
   sync;sync;reboot
   uname -r
  • 预期结果:节点回到旧内核版本。
升级内核 | 技术方案 · KB | ZStack 资源中心