在机械硬盘技术极为成熟的当下,硬盘损坏对普通消费者来讲彷佛愈来愈遥远,我本身用的一台 X200 笔记本从 2009 年买来用到如今,那块日立硬盘一点问题都没出过,好像都没有理由换笔记本了嘤嘤嘤……安全
不过残酷的现实是,对于商业应用来讲,消费级硬盘的可靠性仍然是一个须要关注的问题,特别是如BlackBlaze 那样使用消费级硬盘来搭建存储系统的系统。服务器
对 UPYUN 来讲,虽然咱们核心系统并未使用消费级存储设备,但外围系统快速增加,数量庞大的硬盘开始对运维部门精简的人员数量形成了巨大的压力,由于普通的“损坏-更换”的方式形成的事务堆积和时间碎片化使得人员精力分散,不堪重负。运维
因而本文的主题诞生了,在一系列调查和统计数据的支撑下,固然还要感谢万能的 Google ,咱们最终有效的解决了这方面问题。性能
S.M.A.R.T. 信息是 UPYUN 监控硬盘的极为重要的指标,咱们能经过它对硬盘底层的健康情况进行诊断甚至预测,从而在硬盘故障前就将其从业务系统中摘除,避免影响线上服务。测试
同时也能经过它对存储装置的异常缘由进行诊断,可判断因素包括温度、震动、机件故障、瞬间冲击等,是运维工做中不可替代的存储系统底层检测方式。spa
我提取了部分线上机器共 3047 块硬盘的 S.M.A.R.T. 的数据用于研究分析,并以这些原始数据为基础总结了一些能有效断定硬盘健康程度的项目。设计
根据过滤无效数据后的 61511 条数据,咱们将一些项目做为了系统剔除硬盘的异常判断依据,以及预测硬盘是否须要更换的依据。code
咱们根据关键的硬盘监控数据将硬盘的健康情况分为下面几级。orm
该级别的硬盘很是健康,无任何风险存在,一般为全新上线的硬盘,对于标记为 Good 的硬盘,不会有任何问题存在,也无需留意和监控。blog
特征界定:全部风险判断项均为 0 或关键原始数据增加状况低于「报告」标准。
健康情况为 Caution 「报告」的硬盘,在监控指标上存在必定程度的劣化,可是尚在硬盘主控的安全范围,主控芯片可有效的处理异常并在性能上没有任何明显衰退迹象,它还能承担很长时间的正常服务,可是有必要考虑它的健康情况随时可能提高到警惕级别。
特征界定:任一风险项知足「报告」标准。
健康情况为 Threatening 「警惕」的硬盘,已经存在必定的性能衰退风险,由于已经开始有一些主控芯片没法控制的状况发生,它的性能可能也已经有些微降低,它的健康情况正在逐步脱离主控系统的控制,应当发出告警通知到运维人员并考虑尽快从业务系统中摘除该硬盘进行替换,避免它进入衰退级别时还在进行线上服务。
特征界定:任一风险项知足「警惕」标准
处理动做:人力容许的状况下安排更换硬盘,从警惕告警发出到进入衰退期一般有足够的时间进行硬盘替换。若是意外进入衰退期,系统也会自动将其从业务系统中隔离。
健康情况为 Decline 「衰退」的硬盘,不该该在线上服役,原则上处于警惕级别的硬盘就应该被更换,由于「衰退」的硬盘用于线上服务时已经有很大的可能对业务系统的总体运行形成威胁,一般表现为业务系统性能降低,数据读写出错和超时等,但刚刚进入「衰退」级别的硬盘一般不会产生系统级别的错误,只能从性能降低角度判断它存在性能衰退的状况。
特征界定:任一风险项知足「衰退」标准
处理动做:系统会自动将其从业务系统中剔除,但如因各类缘由暂时没法更换,则应尽快在物理上将其断开和设备的链接,避免硬盘状态接近「灾难」级而致使系统出现异常(例如进程卡死)。
健康情况为 Disaster 「灾难」的硬盘一般不会在任何线上系统中出现。在硬盘分级机制启用后,理论上会出现「灾难」级硬盘的状况只有剧烈冲击或忽然掉电或电流冲击致使的硬盘瞬间损坏以及 S.M.A.R.T. 芯片故障致使的没法读取。该级别的硬盘彻底没法工做。
特征界定:
处理动做:更换它!
Raw_Read_Error_Rate
原始读取错误率ID:1,告警项:
「报告」:巡检 / Patrol.
因为各厂商对该值定义不一样,该值增长状况和硬盘工做情况也不存在强关联性,因此不做为警惕和衰退等级界定要素。
Seek_Error_Rate
寻道错误率ID:7,告警项:
「报告」:巡检 / Patrol.
因为各厂商对该值定义不一样,该值增长状况和硬盘工做情况也不存在强关联性,因此不做为警惕和衰退等级界定要素。
Reallocated_Sector_Ct
重分配扇区计数ID:5,告警项:
「警惕」:性能衰退 / Performance decline. 「衰退」:数据风险 / High Data Risk.
Unexpect_Power_Loss_Ct / Power-off Retract Count / Emergency Retract Cycle Count
异常断电计数ID:174 / 192,告警项:
「报告」:侦测到核心供电异常 / Core Power Interruption Detected.
Wear_Leveling_Count
颗粒平均擦写次数ID:177,告警项:
「警惕」:寿命将尽 / Disk Is Dying. 「衰退」:回天乏术 / Disk Is Dead.
阈值:
警惕级 WORST 数据(非 RAW )低于15;
衰退级 WORST 数据(非 RAW )为 小于等于 1 .
说明:SSD 特有项,用于评估 SSD 寿命,因厂商评估标准不一样,故不以 RAW VALUE 为标准。
影响:硬盘进入警惕级时应考虑更换它,由于该项降为 0 和硬盘工做状况不存在强关联性,但即使各项指标均无异常,也不推荐在线上使用时超期服役。
通常认为该值为零时,已达到硬盘设计使用寿命。
Runtime_Bad_Block
运行时坏块计数ID:183,告警项:
「报告」:安定度降低 / Stability declining.
根据统计数据来看,线上全部 SSD 该值增加的数量很是少。具体对可靠性和性能的影响还需后续观察,因此先置为报告级监控项。
End-to-End_Error
端到端校验错误ID:184,告警项:
「报告」:传输介质异常 / Transmission Medium Fucked Up.
因没有发现案例,因此该项目前是置为报告级的。
Reported_Uncorrect
没法恢复的错误ID:187,告警等级:
衰退:侦测到数据风险 / High Data Risk.
COMMAND_TIMEOUT
指令超时ID:188,告警等级:
「警惕」:性能衰退 / Performance decline. 「衰退」:严重性能衰退风险 / High Performance Risk. 「灾难」:别闹 / Performance is gone.
阈值:
警惕级:非 0
衰退级:高于 10
灾难级:高于 1000000
说明:该项值非零并持续增加代表硬盘响应能力降低,性能受严重影响。
影响:须要即刻更换,但因该值刚开始上升时不会发生严重错误,从而可能难以触发告警,它的独立上涨将致使硬盘性能受到难以感知的影响,可是会逐步劣化成严重的性能降低风险。
根据经验,通常认为该值和 SMART187 以及 SMART183 存在关联性,上述两者的出现有必定可能(看读写频率)致使该值持续升高。
High_Fly_Writes
磁头在异常高度工做ID:189,告警等级:
「报告」:磁头异常 / Disk Fly High.
G-sense Error Rate
加速度传感器告警ID:191,告警等级:
「报告」:碰撞警报 / Physical Impact Warning.
Temperature_Celsius
或 Airflow_Temperature_Celsiu
温度 / 气流温度ID:194 或 190,告警等级:
「报告」:烧烤硬盘 / BBQ. 「警惕」:率先踏入地狱 / Drop feet first in the hell.
阈值:
报告级:52
警惕级:62
说明:硬盘工做温度状况。
Current_Pending_Sector
当前待映射扇区计数ID:197,告警等级:
「报告」:安定度降低 / Stability declining. 「警惕」:性能衰退 / Performance decline. 「衰退」:数据风险 / High Data Risk.
阈值:
报告级:非 0
警惕级:3
衰退级:10
说明:这一参数的数据表示了“不稳定”的扇区数,即“等待被映射”的扇区数量。
所以,该项少许错误不会有严重后果,但该项值快速或大量发生变化,则应考虑是否硬盘发生了稳定性方面的问题。
Offline Uncorrectable / Uncorrectable Sector Count
屏蔽扇区计数ID:198,告警等级:
「报告」:安定度降低 / Stability declining.
阈值:
报告级:3
说明:这一项数据表明磁盘主控确认失效已经屏蔽的扇区计数。
影响:理论上该值过大会致使数据风险。统计显示绝大多数磁盘该数据为零。但该值非零并不和磁盘性能降低或故障存在强关联,问题磁盘的这个值通常都比较高,因此将其置为报告级别待后续研究。
S.M.A.R.T. 数据在正常状况下都是能快速响应并准确的。
在 UPYUN 的实际线上环境,遇到过部分硬盘存在 S.M.A.R.T. 信息没法读取的状况。我对发生这些状况的硬盘作了一下简单的调查后,发现发生此类状况的硬盘通常伴随着性能的严重降低,一般原始读取错误增加率约为十几秒百万,或某个单项监控增加率异常高,基本上摘除之后 S.M.A.R.T. 响应速度都能必定程度上恢复。
我认为这多是因为硬盘主控芯片已无力处理海量的数据纠正要求,从而没有空闲的资源响应系统对 S.M.A.R.T. 的请求致使的,而事实上这些硬盘已经存在很是严重的问题了。只要咱们针对其硬盘工做状态做出合理的健康判断并在它表现出明显故障以前摘除,那么就基本上不会发生 S.M.A.R.T. 监控失效状况了。
注: 文章为 UPYUN 攻城狮 WooDragon 原创内容,转载需通过做者受权,同时保留署名和原文连接。