EN
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助
鲲鹏小智

输入文件格式

smartctl指令工具将会采集出硬盘当前的SMART信息,将收集到的数据按表1 SMART信息说明整理成CSV数据文件。

经过对业界常用SMART数据的选择,提取以下这些SMART信息作为随机森林模型训练和预测的输入数据。

表1 SMART信息说明

SMART ID

CSV文件列名

英文名

说明

1

ssdSmart.smart_1(_raw)_value

Raw Read Error Rate

在固态硬盘中,此项的数据值包含了可校正的错误与不可校正的RAISE错误。

5

ssdSmart.smart_5(_raw)_value

Reallocated Sector Ct

重映射扇区计数。固态硬盘在制造时也保留了一定的空间,当某个存储单元出现问题后即把损坏的部分隔离,用好的部分来顶替。这一替换方法和机械硬盘的扇区重映射是一个道理,只不过机械硬盘正常时极少有重映射操作,而对于固态硬盘是经常性的。 在固态硬盘中这一项的数据会随着使用而不断增长,只要增长的速度保持稳定就可以。通常情况下,数据值=100-(100×被替换块/必需块总数),因此也可以估算出硬盘的剩余寿命。

9

ssdSmart.smart_9(_raw)_value

Power On Hours

硬盘自出厂以来加电启动的统计时间,单位为小时(或根据制造商设定为分钟或秒),一般用户以该值判定硬盘是否被使用过。

12

ssdSmart.smart_12(_raw)_value

Power Cycle Count

通电周期计数的数据值表示了硬盘通电/断电的次数,即电源开关次数的累计,新硬盘通常只有几次。

170

ssdSmart.smart_170(_raw)_value

Grown Failing Block Count

读写失败的块增长的总数。

171

ssdSmart.smart_171(_raw)_value

Program_Fail Block Count

Flash编程失败块的数量。

172

ssdSmart.smart_172(_raw)_value

Erase Fail Block Count

擦写失败块的数量。

173

ssdSmart.smart_173(_raw)_value

Wear Leveling Count

所有好块的平均擦写次数。

174

ssdSmart.smart_174(_raw)_value

Unexpected Power Loss Count

硬盘自启用后发生意外断电事件的次数。

175

ssdSmart.smart_175(_raw)_value

Program Fail Count Chip

编程错误块计数。

177

ssdSmart.smart_177(_raw)_value

Wear Range Delta

磨损最重的块与磨损最轻的块的磨损百分比之差。

180

ssdSmart.smart_180(_raw)_value

Unused Reserved Block Count Total

固态硬盘会保留一些容量来准备替换损坏的存储单元,所以可用的预留空间数非常重要。这个参数的当前值表示的是尚未使用的预留的存储单元数量。

181

ssdSmart.smart_181(_raw)_value

Program Fail Count

用4个字节显示已编程失败的次数。

182

ssdSmart.smart_182(_raw)_value

Erase Fail Count

用4个字节显示硬盘自启用后块擦写失败的次数。

183

ssdSmart.smart_183(_raw)_value

SATA Downshift Error Count

这一项表示了SATA接口速率错误下降的次数。通常硬盘与主板之间的兼容问题会导致SATA传输级别降级运行。

184

ssdSmart.smart_184(_raw)_value

Init Bad Block Count

硬盘出厂时已有的坏块数量。

187

ssdSmart.smart_187(_raw)_value

Reported Uncorrectable Errors

报告给操作系统的无法通过硬件ECC校正的错误。如果数据值不为零,就应该备份硬盘上的数据了。 报告给操作系统的在所有存取命令中出现的无法校正的RAISE(URAISE)错误。

188

ssdSmart.smart_188(_raw)_value

Command Timeout

由于硬盘超时导致操作终止的次数。通常数据值应为0,如果远大于零,最有可能出现的是电源供电问题或者数据线氧化致使接触不良,也可能是硬盘出现严重问题。

190

ssdSmart.smart_190(_raw)_value

Airflow Temperature

这一项表示的是硬盘内部盘片表面的气流温度。

192

ssdSmart.smart_192(_raw)_value

Power-Off Retract Count

对于固态硬盘来说,这一项的数据量仍然代表了不安全关机,即发生意外断电的次数。

194

ssdSmart.smart_194(_raw)_value

Temperature

温度的数据值直接表示了硬盘内部的当前温度。

195

ssdSmart.smart_195(_raw)_value

On the fly ECC Uncorrectable Error Count

这一参数记录了无法校正(UECC)的错误数量。

196

ssdSmart.smart_196(_raw)_value

ReallocationEvents Count

重映射事件计数。这个参数的数据值记录了将重映射扇区的数据转移到备用扇区的尝试次数,是重映射操作的累计值,成功的转移和不成功的转移都会被计数。

197

ssdSmart.smart_197(_raw)_value

Current Pending Sector Count

这个参数的数据表示了“不稳定的”扇区数,即等待被映射的扇区(也称“被挂起的扇区”)数量。

198

ssdSmart.smart_198(_raw)_value

Offline Uncorrectable Sector Count

这个参数的数据累计了读写扇区时发生的无法校正的错误总数。数据值上升表明盘片表面介质或机械子系统出现问题,有些扇区肯定已经不能读取,如果有文件正在使用这些扇区,操作系统会返回读盘错误的信息。下一次写操作时会对该扇区执行重映射。

199

ssdSmart.smart_199(_raw)_value

Ultra ATA CRC Error Rate

这个参数的数据值累计了通过接口循环冗余校验(Interface Cyclic Redundancy Check,ICRC)发现的数据线传输错误的次数。

206

ssdSmart.smart_206(_raw)_value

Soft ECC Correction

通过软件ECC纠正错误的计数。

232

ssdSmart.smart_232(_raw)_value

Endurance Remaining

寿命余量是指硬盘已擦写次数与设计最大可擦写次数的百分比。

233

ssdSmart.smart_233(_raw)_value

Available Reserved Space

预留空间剩余量。

241

ssdSmart.smart_241(_raw)_value

Total LBAs Written

LBA写入数的累计。

242

ssdSmart.smart_242(_raw)_value

Total LBAs Read

LBA读取数的累计。

244

ssdSmart.smart_244(_raw)_value

Lifetime Writes from Host

自硬盘启用后主机向硬盘写入的数据总量,以4个字节表示,每写入64GB字节作为一个单位。

245

ssdSmart.smart_245(_raw)_value

Lifetime Reads from Host

自硬盘启用后主机从硬盘读取的数据总量,以4个字节表示,每读取64GB字节作为一个单位。

表2 输入CSV文件格式

disk_sn

timestamp

fault

ssdSmart.smart_1_value

ssdSmart.smart_1_raw_value

ssdSmart.smart_5_value

ssdSmart.smart_5_raw_value

......

ZHZ3TFBD

2021-7-9

0

84

926673

100

0

......

......

......

......

......

......

......

......

......

每一个SMART列都有value和raw_value两个值,例如ssdSmart.smart_1_value和ssdSmart.smart_1_raw_value。

  1. raw_value(原始值):

    制造商定义的原始值,从VALUE派生。

    数据值是硬盘运行时各项参数的实测值,大部分SMART工具以十进制显示数据。 数据值代表的意义随参数而定,大致可以分为三类:

    • 数据值并不直接反映硬盘状态,必须经过硬盘内置的计算公式换算成当前值才能得出结果。
    • 数据值是直接累计的,如Start/Stop Count(启动/停止计数)的数据是50,即表示该硬盘从出厂到现在累计启停了50次。
    • 有些参数的数据是即时数,如Temperature(温度)的数据值是44,表示硬盘的当前温度是44℃。

      因此,有些参数直接查看数据也能大致了解硬盘目前的工作状态。

  2. value (当前值):

    当前值是各SMART ID项在硬盘运行时根据实测原始数据(raw value)通过公式计算的结果。结果范围为1到253之间。253意味着最好的情况,1意味着最坏的情况。计算公式由硬盘厂家自定。

    硬盘出厂时各ID项目都有一个预设的最大正常值,即出厂值,这个预设的依据及计算方法为硬盘厂家保密,不同型号的硬盘都不同,最大正常值通常为100或200或253,新硬盘刚开始使用时显示的当前值可以认为是预设的最大正常值(有些SMART ID项如温度等除外)。随着使用损耗或出现错误,当前值会根据实测数据而不断刷新并逐渐减小。因此,当前值接近临界值(raw_value)就意味着硬盘寿命的减少,发生故障的可能性增大,所以当前值也是判定硬盘健康状态或推测寿命的依据之一。

以采集/dev/sda这块盘的SMART数据为例进行说明。
smartctl -a /dev/sda
图1 采集到的Smart数据(1)
图2 采集到的Smart数据(2)

第一列为硬盘序列号,从图1 采集到的Smart数据(1)中可得。

第二列为当前时间戳。

第三列为是否为故障盘(fault_predict接口不需要该列)。

第四列ssdSmart.smart_1_value对应图2中的框1。

第五列ssdSmart.smart_1_raw_value对应图2中的框2。

第六列ssdSmart.smart_5_value对应图2中的框3。

第七列ssdSmart.smart_5_raw_value对应图2中的框4。

......(以此类推)

采集时,需注意的事项如下。

  • 对于SMART信息,各个厂商的实现并不相同,采集时须注意过滤。

    例如:Seagate Enterprise Capacity 3.5 HDD ST4000NM0035-1V4107 硬盘采集到的SMART信息则是:

    由于算法需要采集SMART 188,而该列的值为"0 0 0",因此要对该列的值进行过滤,保留第一个"0"即可,过滤掉后面两个数字,保证最后输入文件中的类型为数值类型。

  • 由于SMART信息各个厂商的实现并不相同,可能有些厂家的SMART信息会有所缺失。

    例如:某厂商的HUH728080ALE600硬盘采集到的SMART信息则是:

    如果所需的SMART信息值有缺失的话,程序则会报错退出。

    例如:如果输入数据中ssdSmart.smart_1_value列缺失,则会报错。

    KeyError: "['ssdSmart.smart_1_value'] not in index"

    如果想要继续训练,可在数据文件内补充所缺的列并全部补0,补0后可进行正常训练,但信息缺失会影响模型预测的准确率。

搜索结果
找到“0”个结果

当前产品无相关内容

未找到相关内容,请尝试其他搜索词