(Author:于晓杰 Date:2018-5-18)

一、背景

工作中经常会测试各种磁盘,在测试过程中,发现有些SSD或机械盘的SMART日志里有error信息,经与实际使用部门同事沟通,结合实际情况,总结以下错误信息需要重点关注。尤其是旧盘,出现错误的几率更大,发布报告时应重点说明之。

二、总结

序号

SATA硬盘smart指标

SAS硬盘对应smart指标

描述

权重

1

SAMRT-health

(磁盘健康状况)

SAMRT Health Status

(磁盘健康状况)

PASSED或OK为好,如果Failed一般认为硬盘有问题

重要

2

Reallocated_Sector_ct

(重映射扇区数量)

达到一定数量会认为硬盘有问题

次要

3

Current_Pending_sector

(不稳定扇区数)

Total uncorrected errors

(不能修复的错误总数)

即使数量不多,也认为硬盘有问题

重要

4

SMART Error Log

(SMART错误日志)

Non-medium error count

(非媒介错误计数)

当数量较大时一般认为硬盘有问题

次要

5

SMART self-test log

(SMART自检日志)

SMART self-test log

(SMART自检日志)

以最新自检日志为准,如果有错误一般判断硬盘有问题

重要

6

以上判断硬盘是否有问题的条件都是“或”关系, 即满足一条就认为硬盘有问题。

除了SMART信息,实际使用时还会参考Messages硬盘读写错误。

说明:SAS硬盘与SATA硬盘指标类似,其中

1.Total uncorrected errors:判断条件与SATA盘的Current_Pending_Sector类似。

2.Non-medium error count(非媒介错误计数)计数:字面意思此错误好像与硬盘介质无关,但实际使用时有过案例,故障机器该计数器累加到千万级别,硬盘性能非常差。所以线上对Non-medium error count计数器到100万以上,且有性能问题的硬盘做报警会做进一步处理。由于硬盘接口也是链路的一部分,不能完全将硬盘排除掉,所以此Non-medium error count指标也应算作判断磁盘健康状况的指标之一。

三、截图说明

SATA 硬盘smart信息截图:

SAS 硬盘smart信息截图:

四、参考资料及链接

来源:

https://www.crifan.com/hdtune_detect_out_05_reallocated_sector_count_c4_reallocated_event_count/

摘取部分内容如下:

硬盘SMART参数(05,C5)与(C7)解惑

(05)(Reallocated Sectors Count)

是非常重要的一项,称为重新映射扇区计数,它直接表示硬盘是否已经出现了不良扇区。

以前的硬盘只要某磁道出现一个坏扇区,该磁道就算“坏磁道(Bad Track)”,修复时就整个磁道所有扇区一起“跳过(skipped)”。所以,坏磁道和坏扇区没有区别开,一起称为“坏道”。而现在的硬盘每个磁道划为数百上千个扇区,不能因为有一个坏扇区就丢掉整个磁道。再说硬盘在制造完成后本身就已有相当多的不良扇区(可能有成百上千之多),所以为了提高成品率,硬盘的设计容量是大于标称容量的,多余的那部分(用户不可见的)容量就是用来弥补“制造时已出现的”以及“以后使用时新增的”不良扇区的。这也是现代硬盘的一个自修复功能,只要这个功能在起作用,你就不会发现硬盘出现坏道,所以说“坏道”也是一个应该淘汰的老词了。

这一自修复功能的原理是:当硬盘的某扇区持续出现读/写/校验错误时,硬盘固件程序会将这个不良扇区的地址重定向到预先保留的某个备用扇区,这就称为重新映射扇区。此后这个不良扇区不会再被使用,这等于将这个不良扇区屏蔽了,所以这样的硬盘容量不会减少,在Windows常规检测中也不会发现坏扇区,只有从SMART参数中才能发现已经有不良扇区被替换。

完好的硬盘,(05)项的数据肯定为零,当前值远大于临界值。如果数据不为零就表示已经有不良扇区被“重映射”,被重映射的扇区增加,当前值就会下降。如果当前值下降到接近临界值,就说明备用扇区将用尽。

 

(C5)(Current Pending Sector Count)

是当前待映射扇区计数,这一参数的数据表示了“不稳定”的扇区数,即“等待被映射”的扇区数量。因为扇区仅仅读取错误并不会导致立即重映射,只有在写入失败时才会发生重映射。 
所以,如果有扇区在读取时出现错误,(C5)就会有计数,表示有扇区不稳定。如果该扇区随后被读写成功,等待被映射的操作就会取消,(C5)的计数会下降。如果下一次对该扇区的写操作继续发生错误,就会产生重映射,然后(05)计数要增加,(C5)计数随之下降。如果以后长时间并未再对该扇区进行任何读写操作,那么(C5)的计数也会一直维持下去。

因此,当你的硬盘发现(05)参数有了数据量后,并不需要任何操作,只要注意以后的发展。如果(05)的数据量不大,也不再增长,那这块硬盘还可继续使用。若(05)的数据不断上升,说明硬盘已处于不稳定状态,应当立即备份数据,调换硬盘了。因为备用扇区一旦用尽,再有不良扇区就会真的出现坏道导致数据丢失。即使使用专门的工具把坏道隔离出来,也不能保证不再出现新的坏道,而且硬盘容量会明显减少。

由于不同硬盘的备用扇区数量并不相同,所以单看(05)的数据量并不能判断硬盘还可支持多长时间,还要注意(05)的当前值,即使(05)的数据量不大,但当前值下降很快,甚至接近临界值,也应果断调换硬盘。另外,有的硬盘(05)的数据量很大,但不再增长,而且当前值也下降很少,这样的硬盘最好也不要再使用,因为保留的备用扇区都是位于磁盘的尾部,大量使用保留扇区将大大增加磁头的寻道操作,使得读写效率下降,导致系统运行缓慢。

(C7)(Interface Cyclic Redundancy Check,ICRC)

参数也是比较引人注意的,这个参数的数据累计了通过接口循环冗余校验发现的数据线传输错误。如果这个值不为0而且持续增长,表示硬盘控制器→数据线→硬盘接口出现错误,劣质的数据线、接口接触不良都可能导致此现象,并将导致数据传输速度下降,与硬盘本身倒关系不大。

唯一要了解的是,有些新硬盘的这一参数也有一定数据量,这并不表示硬盘有什么质量问题。因为(C7)参数的数据只会增长,不会归零。所以当你更换了数据线、清洁了接口后发现数据不再增长,即表示问题已解决。

磁盘smart错误日志重点关注信息相关推荐

  1. SQL Server的错误日志

    无论是操作系统 (Unix 或者Windows),还是应用程序 (Web 服务,数据库系统等等) ,通常都有自身的日志机制,以便故障时追溯现场及原因.Windows Event Log和 SQL Se ...

  2. sqlsever Java监控_SQL Server数据库状态监控 - 错误日志

    无论是操作系统 (Unix 或者Windows),还是应用程序 (Web 服务,数据库系统等等) ,通常都有自身的日志机制,以便故障时追溯现场及原因.Windows Event Log和 SQL Se ...

  3. 磁盘SMART信息概述

    一.SMART概述 硬盘的故障一般分为两种:可预测的(predictable)和不可预测的(unpredictable).后者偶而会发生,也没有办法去预防它,例如芯片突然失效,机械撞击等.但像电机轴承 ...

  4. 华为服务器提示错误信息,服务器错误日志

    服务器错误日志 内容精选 换一换 为加强对数据的容灾管理,云堡垒机支持手动备份和配置日志远程备份,提高审计数据安全性和系统可扩展性.通过手动导出/下载各功能模块数据文件保存在本地,可手动备份日志请参见 ...

  5. mysql 错误日志 占用硬盘_MySQL慢日志占满磁盘空间导致业务主库宕机解决

    在MySQL的日常维护中,我们总会遇到这样或那样的问题,对于那些经常发生且有处理经验的事故,不论是新手还是老司机都能在故障规定的容错时间内解决.而对于那些不常见.比较棘手的问题,新手上路可能就显得举足 ...

  6. php mysql 500错误日志_服务器出现500错误的时候,让PHP显示错误信息

    用PHP开发程序时,如果服务器出现500的时候,如果无法知道究竟是什么原因,就无法进行调试. 要让PHP显示错误信息,可以从PHP配置文件 (php.ini)或PHP程序文件入手,另外,如果与IIS整 ...

  7. mysql grep 提取错误日志_详解grep获取MySQL错误日志信息的方法

    为方便维护MySQL,写了个脚本用以提供收集错误信息的接口.这些错误信息来自与MySQL错误日志,而 通过grep mysql可以获取error-log的路径. 以下是全部相关代码: #!/usr/b ...

  8. SQL Server自动化运维系列——监控磁盘剩余空间及SQL Server错误日志(Power Shell)...

    原文:SQL Server自动化运维系列--监控磁盘剩余空间及SQL Server错误日志(Power Shell) 需求描述 在我们的生产环境中,大部分情况下需要有自己的运维体制,包括自己健康状态的 ...

  9. grep mysql_详解grep获取MySQL错误日志信息的方法

    为方便维护MySQL,写了个脚本用以提供收集错误信息的接口.这些错误信息来自与MySQL错误日志,而 通过grep mysql可以获取error-log的路径. 以下是全部相关代码: #!/usr/b ...

最新文章

  1. CloudComparer点云处理软件
  2. L1-003. 个位数统计
  3. 江边上洗萝卜——一个个来
  4. Linux系统分区和挂载浅谈
  5. 深入解读EOS源代码之——区块链内核
  6. 渝粤教育 陕西师范大学 《初级微观经济学》作业
  7. mysql binlog purge_正确清理mysql binlog日志方法
  8. 实用的 Python —— 进制(二进制形式中 1 的位数)
  9. php 内网全部ip,如何ping局域网内所有IP
  10. 2021-02-16
  11. SQL Server 2000/2005/2008 系列产品下载地址
  12. 播音主持必练的绕口令
  13. vue移动端音乐app-笔记
  14. 网址在QQ微信被拦截怎么办?怎么样才能让被微信屏蔽的网址正常访问
  15. configure配置脚本的使用
  16. ICMP拒绝服务攻击(原始套接字系列四)
  17. 实践是检验真理的唯一标准 - 脱壳篇02
  18. 【追踪】两列动车在温州追尾事故现场
  19. php用css改变字体,css怎么设置字体立体
  20. 无监督关键短语的生成问题博客07--create_vocabulary.py的分析

热门文章

  1. 3dmax中如何导入照片为背景
  2. 同仁堂-十大王牌、十大名药
  3. Mac电脑Finder侧边栏不显示iCloud云盘怎么办?
  4. lzo的正确c语言代码,LZO 使用跟介绍
  5. ad19原理图标注_AD19如何让原理图的栅格显示更加清晰醒目
  6. 图片文字转换为文本怎么做?图片转文本的简单方法介绍
  7. 《小狗钱钱》--chapter12.13--解决财务危机
  8. JS事件之事件绑定与事件监听
  9. ADUM1201BRZ DGTL ISO 2.5KV GEN PURP 8SOIC
  10. STM32+ESP8266+MQTT连接阿里云服务器(一、烧写MQTT固件)