首先简单介绍一下S.M.A.R.T.,全称为“Self-Monitoring Analysis and Reporting Technology”,即“自我监测、分析及报告技术”。是一种自动的硬盘状态检测与预警系统和规范。通过在硬盘硬件内的检测指令对硬盘的硬件如磁头、盘片、马达、电路的运行情况进行监控、记录并与厂商所设定的预设安全值进行比较,若监控情况将或已超出预设安全值的安全范围,就可以通过主机的监控硬件或软件自动向用户作出警告并进行轻微的自动修复,以提前保障硬盘数据的安全。除一些出厂时间极早的硬盘外,现在大部分硬盘均配备该项技术。
对于不同的属性,我们首先关心的是它的类型。包括一般类型“Old_age”和预损坏类型“Pre-fail”,我们也把标有“Pre-fail”类型称为的属性称为关键属性,因为这种属性可以决定一个磁盘是否即将损坏。其次我们要看的VALUE和THRESH的值,通常情况VALUE值是越大越好,如果VALUE值小于THRESH值,那就预示着该磁盘有问题了,如果关键属性的VALUE低于THRESH值,那就说明该磁盘即将损坏。
对于不同厂家的磁盘,关键属性的定义是不同的。如上图火星舱使用的西数硬盘,关键属性是1、3、5,其中:
Raw_Read_Error_Rate 表示存储器从一个硬盘表面读取数据时发生的错误率。原始值由于不同厂商的不同计 算方法而有所不同,其十进制值往往无意义的。一般来说有数值意味着磁头已出现问题了。
Start_Stop_Count 表示一个盘片启动关闭周期的统计值,只有硬盘从完全断电中启动或从睡眠模式恢复,盘片主轴电机被启动时才会记一次数。
Reallocated_Sector_Ct 记录由于损坏而被映射到无损的后备区的扇区计数。当硬盘出现损坏扇区时,可以通过将其物理空间指向到特定的无损区域进行重映射修复,从而出现坏扇区的硬盘仍可使用。但当高过一定数值后,后扇区消耗殆尽而无法再重映射修复时,这些坏扇区就会显现出来且无法自行修复。除外由于要要求磁头读取这些坏扇区时专门再移动到后备区读写数据,对硬盘读写性能也有影响。
因此只要我们监视所有磁盘的这三个属性的当前值是否低于阈值,就可以判断该磁盘是否即将损坏。如果发现有磁盘即将损坏,我们将立刻发送邮件通知管理员并且在火星舱面板点亮对应磁盘的红色预警灯,这样管理员就可以使用火星舱中的磁盘替换功能,从容的用一块未使用盘替换该盘,预防了磁盘损坏可能带来的灾难性后果。
磁盘作为火星舱的主要数据存储介质,它的健康与否关系着整个火星舱的数据安全。为了更好的了解火星舱磁盘状况,我们在火星舱中引入了SMART检测工具smartctl,通过该工具可以一览磁盘的所有健康属性状况。下图是火星舱一块磁盘的SMART属性检测结果。
ARRIBUTE_NAME为属性名称,VALUE为当前值,WORST为历史最差值,THRESH为阈值,TYPE为属性类型,RAW_VALUE为原始值。
对于不同的属性,我们首先关心的是它的类型。包括一般类型“Old_age”和预损坏类型“Pre-fail”,我们也把标有“Pre-fail”类型称为的属性称为关键属性,因为这种属性可以决定一个磁盘是否即将损坏。其次我们要看的VALUE和THRESH的值,通常情况VALUE值是越大越好,如果VALUE值小于THRESH值,那就预示着该磁盘有问题了,如果关键属性的VALUE低于THRESH值,那就说明该磁盘即将损坏。
对于不同厂家的磁盘,关键属性的定义是不同的。如上图火星舱使用的西数硬盘,关键属性是1、3、5,其中:
Raw_Read_Error_Rate 表示存储器从一个硬盘表面读取数据时发生的错误率。原始值由于不同厂商的不同计 算方法而有所不同,其十进制值往往无意义的。一般来说有数值意味着磁头已出现问题了。
Start_Stop_Count 表示一个盘片启动关闭周期的统计值,只有硬盘从完全断电中启动或从睡眠模式恢复,盘片主轴电机被启动时才会记一次数。
Reallocated_Sector_Ct 记录由于损坏而被映射到无损的后备区的扇区计数。当硬盘出现损坏扇区时,可以通过将其物理空间指向到特定的无损区域进行重映射修复,从而出现坏扇区的硬盘仍可使用。但当高过一定数值后,后扇区消耗殆尽而无法再重映射修复时,这些坏扇区就会显现出来且无法自行修复。除外由于要要求磁头读取这些坏扇区时专门再移动到后备区读写数据,对硬盘读写性能也有影响。
因此只要我们监视所有磁盘的这三个属性的当前值是否低于阈值,就可以判断该磁盘是否即将损坏。如果发现有磁盘即将损坏,我们将立刻发送邮件通知管理员并且在火星舱面板点亮对应磁盘的红色预警灯,这样管理员就可以使用火星舱中的磁盘替换功能,从容的用一块未使用盘替换该盘,预防了磁盘损坏可能带来的灾难性后果。