ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

HP DL380 Gen9 iLO报Degraded与Storage Failed的排查与修复指南

HP DL380 Gen9 iLO报Degraded与Storage Failed的排查与修复指南 半夜被电话叫醒客户说一台HP DL380 Gen9的iLO打开之后显示一片黄顶部状态写着Degraded点进存储页直接就红了Storage Failed。客户一连串问题抛过来是不是硬盘全坏了数据还有救吗是不是要换主板这类问题我处理过不少。先说结论DL380 Gen9的iLO报Degraded和Storage Failed绝大多数时候不是iLO自己的问题也不是主板问题而是服务器某些硬件子系统的健康状态被汇总显示到了iLO页面上。真正要查的是存储控制器、物理磁盘、阵列状态、缓存模块这些底层组件。这篇文章就是把这类问题的排查思路整理一遍从报错含义到实际操作尽量让同行的朋友能少走弯路。1. 先把报错拆开看iLO的Degraded到底说的是哪一路状态1.1 iLO页面上的健康状态不是“iLO坏了”很多第一次遇到这个问题的人看到iLO界面顶部有一个大大的“Degraded”第一反应是“iLO固件出问题了”或者“iLO降级了”。实际上这个Degraded是iLO汇总了服务器所有关键组件的健康状态之后给出的一级告警。它说的是“这台服务器里至少有一个被监控的组件处于不健康状态”而不是iLO本身出了问题。在HP服务器的iLO 4管理界面里系统健康状态通常用颜色和文字来表达绿色是OK黄色是Degraded红色是Failed。Degraded的意思是设备还能跑但已经丧失了部分冗余或性能Failed则代表某个组件已经不能正常工作。这就相当于你家里的一台NAS面板上黄灯亮了不代表NAS主机坏了而是它检测到其中一块硬盘的SMART信息异常。iLO就是这个“面板”真正的问题在背后的某个硬件上。1.2 除了系统健康还有哪几种Degraded值得注意在DL380 Gen9上iLO显示Degraded的来源一般有这几类电源模块异常比如两个电源中有一个离线或者电源处于非冗余状态风扇转速异常某个风扇转速过低或报故障温度传感器告警进风口温度过高或者某个CPU温度越限内存模块状态异常如内存条出现Correctable Error过多或者Rank Spare状态存储控制器状态异常包括控制器本身、FBWC缓存模块、物理磁盘系统事件日志IML中记录了关键事件iLO会自动把健康状态从OK拉到Degraded所以看到Degraded的时候第一件事不是猜测而是去iLO的“Information - Integrated Management Log”里看具体是什么事件触发的。这一步最重要的价值是缩小排查范围避免有人在存储页面看到Failed就急着拔硬盘结果问题根本不在硬盘。1.3 快速定位健康状态变色的入口如果你面前已经有一台报Degraded的DL380 Gen9我建议按这个顺序看打开iLO网页进入Information - Integrated Management LogIML按时间倒序查看最近的告警重点关注Severity为Critical或Warning的条目记下事件里面的组件名称例如“Smart Array P440ar”“Power Supply 2”“Memory Module”等如果IML里能看到明确的存储事件再进入Storage页面或Administration - Storage查看详细状态很多人忽略了一个细节iLO 4的Web界面里Storage页面的信息往往不是实时刷新的。你需要点击页面右上角的刷新按钮或者退出重新登录才能看到最新的存储状态。早期固件版本里这个页面偶尔还会出现状态不更新的情况所以不能只凭第一次打开看到的结果下结论。2. Storage Failed的判别链路控制卡、缓存模块还是磁盘本体2.1 存储失败的三种角色要分清Storage Failed在iLO存储页面里是一个汇总性的描述它背后对应的情况至少有三类逻辑驱动器状态为Failed、物理磁盘状态为Failed、存储控制器自身状态异常。以DL380 Gen9最常见的Smart Array P440ar控制器为例你在iLO或者SSA里会看到这样几层结构控制器 - 物理磁盘Physical Drives- 阵列/逻辑驱动器Logical Drives。这三层里任何一层出问题都可能让iLO在存储页面显示Failed但处理方式完全不同。逻辑驱动器Failed但物理盘都是OK很可能是阵列元数据问题、缓存模块失效导致控制器认为阵列不可用或者逻辑盘被误操作删除物理盘Failed这块盘大概率硬件故障需要确认槽位并更换物理盘Predictive Fail盘还没完全坏但SMART报警了属于“预报故障”控制器状态异常比如FBWC缓存电池/电容失效、控制器固件崩溃、控制器被识别为“Controller Failed”或“Controller Degraded”这里有一个常见的误判用户在iLO里看到Storage Failed以为整台服务器的数据都没了实际上可能只是其中一块硬盘掉线阵列从冗余状态降级。真正可怕的是“Failed”出现在Logical Drive这一层因为那才意味着操作系统看到的数据卷已经不可用。2.2 最容易漏掉的BBWC电容老化问题DL380 Gen9使用的P440ar/P840控制器上面带一个Flash Backed Write CacheFBWC模块。这个模块通常是一块DDR3缓存板加一个超级电容有时是一根带电容的独立小板。它的作用是当服务器突然断电时靠电容储存的余电把缓存中的数据刷入闪存避免写缓存中的内容丢失。FBWC模块的电容是会老化的。Gen9这一代机器如果跑了五六年以上电容很常见地会出现“充电容量不足”的问题。控制器检测到电容无法保证断电保护能力时会主动禁掉写缓存。有些更严重的情况控制器会直接把逻辑驱动器标记为Failed或者在系统事件日志里记录“Cache Module Failure”或“FBWC Retired”之类的事件。这也是我在处理Storage Failed时特别强调要先看IML的原因如果日志里明确记录的是FBWC模块异常你就算把所有硬盘都拔下来测试也没用因为问题在控制器那一层。2.3 物理盘故障与“掉盘”的一线差别另一类高发原因是物理硬盘故障。SAS或SATA硬盘在接近寿命尽头时SMART状态会从OK变成Predictive Fail如果后续写入错误达到阈值就会彻底变成Failed。但在实际运维里还有一种情况叫“掉盘”即物理盘和控制器之间的链路出现了瞬时错误比如背板接触不良、SAS线缆松动、硬盘供电不稳。这种掉盘在IML里表现为某个物理盘的状态被重置、转换或者消失但硬盘本身并没有真正的硬件故障。区分这两者的方法很简单在SSA或iLO中查看那块盘道的SMART状态和错误计数。如果SMART已经报警那就是盘的寿命问题如果SMART正常只是连接状态反复掉线那优先查线和背板甚至可以把盘换一个槽位再测。这里我还遇到过一种比较隐蔽的情况服务器的硬盘托架没有插紧到位或者托架卡扣损坏导致硬盘在工作一阵子后因为震动或温度变化瞬间断开再重新识别。这种问题用诊断工具看盘本身是好的但实机运行时就表现为“Storage Failed”。3. 用命令行在几分钟内拿到关键证据3.1 从iLO日志提取第一手故障Web界面操作虽然直观但效率不高。我处理这类问题时习惯直接用SSH登录iLO或者登录到服务器的操作系统里调工具用命令把日志一次性拉出来看。先看iLO的命令行方式。用SSH登录iLO后可以用show /system1/log1或者查看当前健康状态show /system1这里能看到系统健康状态的具体字段正常情况下Health值为OK如果报Degraded或Failed这条命令会直接体现出来。如果想看更多的错误日志用show /system1/log1/1注意日志索引可以从1开始但实际条目数可能很多我一般配合iLO Web界面的IML来查看时间范围。命令行更适合快速确认健康状态Web界面更适合逐条阅读事件详情。3.2 ssacli逐层检查控制器和阵列要看存储的详细状态最直接的工具是Smart Storage Administrator CLI。系统里如果装了HPE的SSA管理工具直接用ssacli就可以。查看控制器摘要ssacli ctrl all show status这条命令会显示每个控制器的插槽位置、控制器状态、缓存状态、电池/电容状态等关键信息。重点看这几个字段Controller Status是否为OKCache Status是否正常如果显示“Flush”或者“Memory Error”说明缓存模块有问题Battery/Capacitor Status充电状态、剩余寿命、是否Retired接着查看物理磁盘状态ssacli ctrl slot0 pd all show status输出里会列出每个盘位的编号比如1I:1:1、容量、类型、状态。注意区分“OK”“Predictive Fail”“Failed”这三种状态。再看逻辑驱动器状态ssacli ctrl slot0 ld all show status这里的输出明确告诉你逻辑盘是OK、Degraded还是Failed。如果逻辑盘显示Failed你基本可以确定问题出在阵列层或控制器层而不是单纯某块硬盘。还有一个非常实用的命令能一次性把控制器、逻辑盘、物理盘的状态全部打印出来ssacli ctrl slot0 show config输出的信息比上面几条命令合起来都全适合快速做第一轮判断。3.3 看懂关键输出Cache Status与Predictive Fail我见过不少同行在ssacli输出面前一脸懵不知道哪些字段重要。挑两个最关键的说。第一个是Cache Status。正常的P440ar上缓存状态应该是“OK”。如果看到“International Cache Status Failed”或者“Controller Cache Status: Disabled”基本可以认定FBWC电容模块出了问题。第二个是物理盘状态里的Predictive Fail。这个词直译是“预测性故障”意味着硬盘还没坏但控制器已经根据SMART日志判断这块盘可能在不久之后损坏。遇到Predictive Fail正确的做法是准备替换盘但不用像Failed盘那样立刻处理可以安排在维护窗口内更换。我处理过一台机器客户说Storage Failed我登录ssacli一看物理盘1I:1:3状态是Predictive Fail逻辑盘还是OK。客户在iLO里看到的“Failed”其实是控制器把Predictive Fail的盘在存储汇总状态里算作了“降级”造成了误读。这种情况换一块盘阵列自己会重建整个数据不会丢。4. 从修复到重建固件、硬件与阵列的完整操作路径4.1 升级顺序错了会白折腾先iLO后控制器定位到故障之后接下来就是修复。这里必须先强调一个顺序如果你的DL380 Gen9用了很久固件从来没升级过那么在排查存储故障之前先把iLO固件和SSPService Pack for ProLiant里的组件版本更新到合理版本。原因很简单DL380 Gen9的iLO 4早期固件版本里存在一些关于存储状态显示的已知问题。例如某些旧版iLO 4固件在FBWC异常时错误地把逻辑盘状态显示为Failed但实际控制器和阵列依然可用。这种情况下升级固件本身就能消除一部分误报。升级顺序上先升级iLO固件再通过iLO挂载SPP镜像升级控制器固件和硬盘固件。千万不要跳过iLO直接升级控制器因为SPP在升级过程中依赖iLO进行硬件初始化和状态回传iLO太旧可能导致升级过程不稳定。iLO 4固件建议至少升到2.61以上如果条件允许直接升到4.85左右。这里不展开具体版本号因为不同机型Capabilities不同你只需要在HPE官网的Support页面输入机器序列号它给出的推荐固件就是最合适的。4.2 更换故障盘与触发Rebuild的注意事项如果确认是某块物理盘Failed操作路径很清晰找到对应的槽位更换一块容量和转速如果是HDD或协议规格如果是SSD一致的硬盘然后等待阵列自动重建。有几个细节值得特别注意更换前再次确认槽位号。ssacli输出里的“1I:1:1”格式1I代表背板接口中间的1代表端口最后一个1代表盘位。拔错盘会导致正在运行的数据卷直接失效在Gen9机型的24盘位背板上盘位编号通常印刷在硬盘托架前方仔细观察再动手如果机器处于开机状态热插拔直接换盘即可。如果你所在的机房静电环境很干燥先摸摸机柜地排放静电再碰托盘更换后用ssacli查看新盘是否被识别。如果是新盘且状态是OK但逻辑盘还没有开始Rebuild需要手动触发ssacli ctrl slot0 ld 2 modify reenable这里的ld 2是对应逻辑盘的编号以实际为准。多数情况下插上空白盘后控制器会自动把热备状态或降级阵列的备用盘加入重建但如果没自动触发上面的命令可以重新激活。重建过程中性能会有一定下降。特别是RAID 5阵列重建时要读取所有保留盘的数据来计算校验如果你的业务对IO延时敏感尽量避免在业务高峰期换盘。4.3 缓存模块/控制器更换后的阵列重新识别如果问题出在FBWC电容模块或者控制器本身情况会比换盘更复杂一些。以P440ar为例当电容模块老化到一定程度控制器会直接禁用写缓存此时你在ssacli里看到的缓存状态可能是“Flush”或“Failed”。有些固件版本下逻辑盘也会被打上“Failed”标签但这不代表数据已经消失。处理思路是先进入SSA命令行确认当前阵列配置是否还在ssacli ctrl slot0 show config detail看看Logical Drive是否还有配置信息。只要配置还在数据大概率还在。在服务器关机状态下更换FBWC电容模块或缓存模块。注意这块模块的位置在P440ar卡的尾部是一个小板子更换时先断开服务器电源等30秒让电容放电。重新开机进入SSA。此时控制器会重新识别缓存模块部分情况下会提示你“The cache was restored”或者需要按F1确认配置。如果逻辑盘状态恢复到OK问题就解决了。如果控制器本身彻底挂了iLO里Storage页面会显示“No Controller Present”系统开不了机或者识别不到阵列。这种情况下只能更换控制器卡。换卡时注意Gen9的P440ar板载控制器是直接插在主板上一个专用槽位的不是PCIe标准卡。如果你买的是PCIe版本P440ar安装位置和线缆接线方式都不同需要特别注意。还有一个非常重要的事如果只是电容模块老化但控制器缓存里还有未写入的数据千万不要在报Failed的瞬间直接断电关机。正确做法是先让控制器完成缓存刷新。很多人在看到控制器报“Cache Retired”之后强行关机反而把本来能恢复的写缓存数据弄丢了。5. 这次处理完我建议你顺手做的事5.1 保养性配置热备盘、告警通知与日志归档故障处理完之后我一般会劝客户做几件“顺手就能做但价值很大”的事。第一件事是确认阵列里有没有配置热备盘。热备盘的好处很明显一块盘故障后控制器自动用热备盘顶上去开始重建不需要等运维人员到现场更换理论上把阵列处于降级状态的时间从几小时缩短到了几分钟。配置命令ssacli ctrl slot0 array A add spares1I:1:5具体盘位要看你实际有哪些空闲盘。第二件事是设置iLO的SNMP trap或者邮件告警。iLO 4支持在“Administration - Alerts”里配置告警收件人。这样当服务器再次出现存储状态变化时你能立刻收到通知而不是等到业务挂了才发现。第三件事是把IML日志导出一份归档。DL380 Gen9跑久了以后IML里会积累大量历史事件导出日志对后续排障有参考价值。用以下方式可以快速导出curl -u iLO账号:iLO密码 --insecure https://iLO地址/rest/v1/Chassis/1/Logs/IML -o IML日志.xml这个操作不需要登录Web界面适合脚本自动化。5.2 几个我最常见的误操作与教训最后聊几个我在实际处理这类故障时反复看到的误操作都是真实发生过的事提出来给大家提个醒。误操作一看到Logical Drive Failed就直接在SSA里删除逻辑盘再重建。这是绝对不能做的。逻辑盘显示Failed有两种情况一种是元数据损坏到真的无法识别另一种只是控制器状态误报或者缓存异常导致。后者完全可以通过重新启动、更换电容模块来恢复。一旦删除逻辑盘整个阵列的配置都会被清空数据就真的没了。我曾遇到一个案例客户看到iLO显示Storage Failed在电话指导过程中坚持要“赶紧重建一个阵列”结果在SSA里点了删除。等他后来换好电容模块再开机逻辑盘配置已经不存在只能做数据恢复费用和时间都翻了好几倍。遇到这种关键操作宁可多花10分钟确认也不要急着按按钮。误操作二在阵列重建过程中手动重启服务器。重建是一个高IO、长耗时的过程中途重启大概率导致重建失败甚至把原本健康的阵列搞成Failed。如果确实需要重启先确认重建进度比如已经到95%了可以等几分钟如果才到20%我建议延迟重启时间。误操作三升级固件时跳过版本的中间版本。HP的固件通常支持跨版本升级但个别机型存在旧版本直接跳高版本导致iLO远程控制台不可用的情况。稳妥一点固件升级按“当前版本 - 中间大版本 - 最新版本”来操作时间多花一点稳定性高很多。误操作四把Predictive Fail的盘继续当作日常盘使用。这个问题在预算紧张的机房特别常见。Predictive Fail不代表马上坏但代表硬盘已经通知控制器“我撑不久了”。我见过一些机器Predictive Fail的盘扛了大半年也没坏但也有机器隔了一天就Failed的。阵列有热备盘的可以继续跑没有热备盘的我建议一个月内安排更换。误操作五只换盘不查原因。如果一台机器在一个月内连续报两块盘Failed先别急着继续换盘。这种情况要回头检查背板供电、SAS线缆、控制器插槽甚至机箱整体的散热状况。硬盘寿命骤减往往是外部原因造成的比如风扇故障导致硬盘温度过高、背板供电不稳、或者控制器固件有问题导致盘频繁掉线。只做“换盘”这个动作可能很快就会出现第三块、第四块盘报警。我自己在测试环境里处理过一台连续报盘故障的Gen9换完第二块盘之后仍然报警后来检查发现是那块SAS背板上的一个电源MOS管老化导致特定盘位的供电电压偏低。换掉背板之后一切恢复正常。这种问题如果不看整体单靠换盘永远修不完。5.3 这类机器的生命周期判断最后说一点个人看法。DL380 Gen9发布至今已经有十年左右很多在跑的生产机器已经进入了故障高发期。遇到一次Degraded和Storage Failed处理完之后的长期方案更值得思考。如果你的机器还承担着核心生产任务我建议至少做这几件事检查当前的保修或维保状态确认备件供应渠道把固件统一升级到该机型的稳定版本把重要数据做好离线备份因为无论是FBWC还是阵列卡都会面临整体的电子元件老化问题。如果这台机器已经接近生命周期末端我倾向于把它的角色降低——比如从生产环境核心节点退到开发测试环境或者作为冷备机使用。这比在它上面不停修修补补要节省更多时间成本。手里有老机器的同行可能都有同感真正让人头疼的不是某一次故障而是不知道下一次会在什么时候以什么形态出现。所以趁着这次问题已经定位清楚把该做的检查做一遍把该留的日志留好机器还能稳稳再跑一段时间。
返回列表