HPE 3PAR 控制器故障处理:隔离、离线与更换 - 夜莺博客

HPE 3PAR 控制器故障处理:隔离、离线与更换

双控制器是存储阵列高可用的基石,但当其中一个控制器故障时,处理不当可能让整个阵列停机。本文整理了 3PAR(HPE StoreServ)控制器故障的标准处理流程:先确认故障,再用 setnode offline 将故障节点隔离,确保系统在单控制器模式下稳定运行,最后正确更换控制器恢复冗余——每一步都有对应的 CLI 命令和注意事项。

第一步:确认控制器故障

先检查故障控制器的状态指示灯(如黄灯亮起),再用管理界面或 CLI 命令确认故障控制器的节点 ID 和系统 ID:

cli% showsys -d

showsys -d 输出中包含两个节点的详细状态(Node ID、状态、系统 ID),对比正常节点即可确认故障节点。

第二步:禁用故障控制器

通过串口或管理 IP 登录正常节点的 CLI,将故障节点设置为离线:

cli% setnode offline 1

(假设故障控制器节点 ID 为 1,以实际为准。)执行后系统自动切换到单控制器模式运行。也可以通过 SSMC/IMC 管理界面,在“系统状态 → 节点管理”页面将故障控制器状态设为“离线”或“禁用”。

第三步:确认系统稳定运行

禁用后再次执行 showsys -d 检查系统状态,确认正常控制器在线、系统运行稳定,再继续后续操作。期间关注主机侧 I/O 是否正常、是否需要降级性能评估。

第四步:更换故障控制器

  1. 拔下故障控制器,将原系统盘安装到新控制器上(系统盘跟随控制器走)。
  2. 插入新控制器,确保节点 ID 与系统 ID 与原配置一致,必要时用 prom edit / prom hp edit 修改 PROM 参数。
  3. 启动新控制器,等待系统自动同步并加入集群,恢复双控制器冗余。

故障的典型现象与日志确认

控制器故障往往不是一瞬间的黑屏,而是从一组可观测的异常开始:故障控制器的健康指示灯变黄或熄灭,管理界面里该节点状态显示为 degraded 或 failed,主机侧出现路径丢失或 I/O 超时。在动手处理之前,先用 CLI 收集证据,避免把一次可恢复的瞬时告警误判为硬件损坏。登录正常控制器的 CLI,依次查看节点、事件日志与笼子状态:

cli% shownode
cli% showeventlog -onode 1 -d 3
cli% showcage -d
cli% checkhealth

其中 showeventlog 的 -onode 参数可以把日志限定到具体节点,-d 表示显示详细描述。重点看是否有 node failed、battery、cache 或 PCIe 相关的报错;如果只是单条 cache 断电告警且节点仍能响应,先不要急着离线,先确认告警是否持续。

单控制器模式下的风险与性能影响

把一个控制器离线后,系统进入单控制器运行,冗余度降为 1:此时剩余控制器一旦再出问题,整个阵列就会停机。除了可用性,性能也会变化——全部卷的读写都要经过同一个控制器与其缓存,写缓存镜像消失,部分阵列会主动降低写入策略,主机侧可能观察到写延迟上升。因此在单控制器窗口期内要遵循三条原则:尽量暂停非必要的批量任务与备份、密切监控正常控制器的负载与温度、并且尽快完成更换,不要把这个状态当成常态长期运行。

更换前的准备清单

  1. 确认备件型号与固件版本与现网控制器兼容,避免新控制器因固件差异无法加入集群。
  2. 备份当前配置与阵列关键信息(showsys -d、shownode、showversion 的输出保存或截屏)。
  3. 记录原控制器的节点 ID、系统 ID 与 PROM 参数;更换后必须与原配置一致。
  4. 确保机箱供电稳定,最好接入 UPS;更换过程一旦断电,后果远比一次计划维护严重。
  5. 通知业务方窗口期,确认主机侧已完成多路径配置,单控制器模式下 I/O 不会因路径切换而中断。

更换控制器的详细步骤

  1. 将故障控制器彻底断电并拔出,操作时注意静电防护。
  2. 把原控制器的系统盘(或内置存储模块)取下并安装到新控制器上——系统盘跟随控制器迁移,阵列信息与序列号保留在其中。
  3. 把新控制器插入原槽位,确认节点 ID 与系统 ID 与原配置一致;不一致时用 prom edit(部分平台为 prom hp edit)修正 PROM 参数。
  4. 上电启动,观察新控制器的启动日志,等待其被系统识别并加入集群。
  5. 用 setnode online 1 将节点重新上线,触发缓存镜像重建与数据同步。

更换后的验证与冗余恢复

节点上线后不要立刻认为万事大吉,缓存镜像重建需要时间,期间系统仍处于弱冗余状态。用下面的命令确认节点状态、缓存镜像与整体健康:

cli% showversion
cli% shownode
cli% showsys -d
cli% showcachebattery
cli% checkhealth

确认两个节点均为 ok、系统 ID 一致、缓存镜像正常,且没有新的告警。再回到主机侧检查多路径是否恢复了两条路径,确认业务读写正常后,才算完成整个更换流程。

常见错误与排错

  • 系统盘未随控制器迁移:新控制器缺少原来的阵列配置信息,可能无法正确加入或导致配置冲突。
  • 节点 ID 或系统 ID 不一致:系统会拒绝该节点上线,需回到 PROM 参数检查并修正。
  • 固件版本不匹配:新旧控制器固件相差过大时同步会失败,需先升级到兼容版本。
  • 过早恢复业务:缓存镜像尚未重建完成就压满负载,会增加再次故障的风险。
  • 忽略单点故障窗口:在单控制器状态下继续做其他变更,会把一次维护变成一次停机。

预防性维护与定期巡检

控制器故障更多是渐进式的:电池老化、缓存模块告警、风扇积灰、固件缺陷都会提前给出信号。把常规健康检查纳入例行巡检,定期查看 showeventlog,及时更换接近寿命的电池与风扇,并在厂商公告出现相关 Field Notice 时尽快打补丁。这些动作不能阻止硬件老化,但能让你在计划窗口内更换,而不是在业务高峰被迫停机;备件更换的标准流程可参考 3PAR 磁盘更换与 servicemag 工作流 中同类的现场操作规范。

离线前的依赖检查

把控制器离线之前,需要确认的往往不是阵列本身,而是依赖它的上层:主机侧的 multipathd 是否已为每个卷提供两条分别落在两个控制器上的路径,集群或虚拟化心跳是否能在一次 I/O 抖动中存活,以及阵列如果参与 Peer Persistence / Remote Copy,控制器离线后复制链路与站点仲裁会如何变化。这些确认要在计划窗口前完成,而不是在故障现场临时验证。

multipath -ll
cli% showvlun -v
cli% showpath

多路径参数的写法见 Linux multipath.conf 配置,双活场景的站点角色与仲裁见 3PAR Peer Persistence 与 Remote Copy。

常被忽略的两点

  • 回退点要事先约定:如果换上备件后发现问题(备件不兼容、无法识别原系统盘),唯一安全的动作是把原控制器装回并 setnode online 恢复双控,而不是在没有冗余的状态下继续排查。谁决策回退、多久后重试,都应在动手前明确。
  • 单控窗口内不要并行做其他变更:固件升级、SAN 交换机 zone 调整都应放在独立窗口。单控状态下任何额外的变更,都可能把一次可回退的维护变成不可回退的停机。

更换后不要只看节点是否 ok,还要用 statvlun 观察卷级读写延迟并与更换前基线对比,确认后台的缓存镜像重建与卷归属调整已经结束。命令行细节可参考 3PAR CLI 命令速查表 与 3PAR 常用管理命令分类。

注意事项

整个过程中务必保证电源稳定,避免意外断电;更换控制器属高风险操作,不熟悉时建议联系 HPE 技术支持。日常可结合 3PAR 错误码与 checkhealth 排障 定期健康检查,防患于未然;虚拟化环境的 3PAR 问题排查见 VMware 环境 3PAR 存储诊断,初始配置参考 HPE 3PAR 8400 配置流程。

原文链接:https://zhiliao.h3c.com/questions/dispcont/290552