文档目录

适用场景

  • 产品:ZCF
  • 组件:ZStack Cloud
  • 版本:4.8.x、5.2.x
  • ZCE 版本: 5.2.x
  • 操作系统:Kylin V10 SP3
  • 内核: 4.19.90-52.15.v2207.ky10.x86_64
  • RAID 卡: 9460-8i (SAS3508)
  • 触发条件:OSD 频繁出现 dummy io 检测超时,被 ZCE 隔离,怀疑与阵列卡驱动稳定性有关。

问题现象

  • OSD 频繁因为 dummy io 检测超时被隔离。
  • 初步判断问题与硬件稳定性有关。
  • 服务器厂商建议先更新阵列卡驱动观察效果。

判断方法

  1. 先检查环境和业务状态是否允许逐节点运维。
  2. 升级前后都检查 megaraid_sas 驱动版本。
  3. 每个节点重启后都等待存储池恢复健康,再继续下一节点。

原因说明

当前问题并非平台软件逻辑直接报错,而是 OSD 频繁出现 dummy io 超时,结合厂商建议,优先怀疑 RAID 卡驱动版本稳定性,因此通过升级 megaraid_sas 驱动进行缓解验证。

解决方案

  1. 执行前准备
  • 风险等级:低风险,但属于底层驱动变更,必须逐节点进行。
  • 先关闭全局高可用。
  • 先热迁移云主机。
  • 先备份数据库和驱动文件。
  • 运维期间禁止数据恢复。
  1. 处理步骤
  2. 关闭全局高可用,并热迁移目标节点上的云主机。
  • 预期结果:目标节点可安全下线维护。
  1. 备份驱动和 initramfs:
   mkdir -p /root/raid_driver_bak/
   cp /lib/modules/4.19.90-52.15.v2207.ky10.x86_64/kernel/drivers/scsi/megaraid/megaraid_sas.ko /root/raid_driver_bak/megaraid_sas.ko.bak
   cp /boot/initramfs-4.19.90-52.15.v2207.ky10.x86_64.img /boot/initramfs-4.19.90-52.15.v2207.ky10.x86_64.img.bak
  • 预期结果:具备驱动快速回退基础。
  1. 升级驱动:
   rpm -Uvh kmod-megaraid_sas-07.726.02.00-1.ky10.x86_64.rpm
  • 预期结果:新驱动安装完成。
  1. 升级后检查版本:
   cat /sys/module/megaraid_sas/version
   modinfo megaraid_sas | grep -E "^version:"
   cat /sys/module/megaraid_sas/version
  • 预期结果:模块版本显示为目标版本。
  1. 在存储侧禁止数据恢复。
  • 预期结果:避免驱动升级重启期间自动恢复放大风险。
  1. 若该节点是管理节点,先切换管理服务:
   zsha2 demote
   zsha2 stop-node
  • 非管理节点不执行该步骤。
  • 预期结果:避免管理服务与节点重启冲突。
  1. 重启物理机:
   sync&&sync&&sync&&reboot
  • 预期结果:新驱动在系统启动后生效。
  1. 节点重启后再次检查驱动版本。
  • 预期结果:确认实际加载的是新版本驱动。
  1. 开启数据恢复,并等待存储池恢复健康。
  • 预期结果:集群重新恢复到稳定状态。
  1. 依次对其他节点重复上述步骤。
  2. 所有节点完成后,开启全局高可用。
  • 预期结果:驱动升级全流程完成。

验证方法

  • 检查各节点 megaraid_sas 驱动版本正确。
  • 检查存储池在每轮操作后都恢复健康。
  • 检查 OSD 不再频繁因 dummy io 超时被隔离。
  • 检查业务与云平台资源状态正常。

风险与回滚

  • 风险:该变更属于底层驱动变更,会影响兼容性和业务连续性。
  • 风险:若多节点同时操作,可能导致存储 ERROR 和业务中断。
  • 风险:重启期间必须禁止数据恢复。
  • 风险等级:低(文档标注),但执行上需按高敏感底层变更对待。
  • 回滚步骤:
  1. 用备份的 .ko 覆盖当前驱动:
     cp /root/raid_driver_bak/megaraid_sas.ko.bak /lib/modules/4.19.90-52.15.v2207.ky10.x86_64/kernel/drivers/scsi/megaraid/megaraid_sas.ko
  1. 重建模块依赖与引导镜像:
     depmod -a
     dracut -f /boot/initramfs-4.19.90-52.15.v2207.ky10.x86_64.img 4.19.90-52.15.v2207.ky10.x86_64
     reboot
  1. 重启后检查:
     cat /sys/module/megaraid_sas/version
     rpm -qa | grep megaraid_sas
更新阵列卡驱动 | 技术方案 · KB | ZStack 资源中心