为什么不同的厂家有不同的SMART值?

Jam*_*s T 24 hard-drive smart statistics

首先,我想每个人都知道硬盘驱动器出现故障的次数比制造商愿意承认的要多得多。谷歌做了一项研究,表明硬盘驱动器的 SMART 状态报告的某些原始数据属性可能与驱动器未来的故障有很强的相关性。

例如,我们发现,在第一次扫描错误后,驱动器在 60 天内发生故障的可能性是没有此类错误的驱动器的 39 倍。重新分配、离线重新分配和试用计数中的第一个错误也与更高的故障概率密切相关。尽管存在这些强相关性,我们发现仅基于 SMART 参数的故障预测模型的预测准确性可能会受到严重限制,因为我们的大部分故障驱动器都没有显示出任何 SMART 错误信号。

希捷似乎试图掩盖有关其驱动器的这些信息,声称只有他们的软件才能准确确定其驱动器的准确状态,而且他们的软件不会告诉您 SMART 属性的原始数据值。据我所知,Western Digital 没有做出这样的声明,但他们的状态报告工具似乎也没有报告原始数据值。

我一直在使用 smartmontools 的 HDtune 和 smartctl 来收集每个属性的原始数据值。我发现确实如此......当涉及到某些属性时,我将苹果与橙子进行了比较。例如,我发现大多数希捷硬盘会报告它们有数百万个读取错误,而西部数据 99% 的时间显示读取错误为 0。我还发现希捷会报告数百万个搜索错误,而西部数据似乎总是报告 0。

:如何标准化这些数据?希捷是否会产生数百万个错误,而西部数据则没有产生任何错误?维基百科关于SMART状态的文章说制造商有不同的报告这些数据的方式。

这是我的假设:

我想我找到了一种方法来规范化(这是正确的术语吗?)数据。

希捷硬盘有一个西部数据硬盘没有的附加属性(硬件 ECC 恢复)。当您从 ECC 恢复计数中减去读取错误计数时,您可能会得到 0。这似乎相当于 Western Digital 报告的“读取错误”计数。这意味着 Western Digital 只报告它无法纠正的读取错误,而 Seagate 会计算所有读取错误并告诉您它能够修复的错误数量。

我有一个 Seagate 驱动器,其中读取错误计数小于 ECC 恢复计数,我注意到我的许多文件都已损坏。这就是我提出我的假设的方式。希捷产生的数以百万计的搜索错误对我来说仍然是个谜。

如果您有其他信息,请确认或更正我的假设。

这是我的西部数字驱动器的智能状态,以便您了解我在说什么:

james@ubuntu:~$ sudo smartctl -a /dev/sda
smartctl version 5.38 [x86_64-unknown-linux-gnu] Copyright (C) 2002-8 Bruce Allen
Home page is http://smartmontools.sourceforge.net/

=== START OF INFORMATION SECTION ===
Device Model:     WDC WD1001FALS-00E3A0
Serial Number:    WD-WCATR0258512
Firmware Version: 05.01D05
User Capacity:    1,000,204,886,016 bytes
Device is:        Not in smartctl database [for details use: -P showall]
ATA Version is:   8
ATA Standard is:  Exact ATA specification draft version not indicated
Local Time is:    Thu Jun 10 19:52:28 2010 PDT
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  1 Raw_Read_Error_Rate     0x002f   200   200   051    Pre-fail  Always       -       0
  3 Spin_Up_Time            0x0027   179   175   021    Pre-fail  Always       -       4033
  4 Start_Stop_Count        0x0032   100   100   000    Old_age   Always       -       270
  5 Reallocated_Sector_Ct   0x0033   200   200   140    Pre-fail  Always       -       0
  7 Seek_Error_Rate         0x002e   200   200   000    Old_age   Always       -       0
  9 Power_On_Hours          0x0032   098   098   000    Old_age   Always       -       1468
 10 Spin_Retry_Count        0x0032   100   100   000    Old_age   Always       -       0
 11 Calibration_Retry_Count 0x0032   100   100   000    Old_age   Always       -       0
 12 Power_Cycle_Count       0x0032   100   100   000    Old_age   Always       -       262
192 Power-Off_Retract_Count 0x0032   200   200   000    Old_age   Always       -       46
193 Load_Cycle_Count        0x0032   200   200   000    Old_age   Always       -       223
194 Temperature_Celsius     0x0022   105   102   000    Old_age   Always       -       42
196 Reallocated_Event_Count 0x0032   200   200   000    Old_age   Always       -       0
197 Current_Pending_Sector  0x0032   200   200   000    Old_age   Always       -       0
198 Offline_Uncorrectable   0x0030   200   200   000    Old_age   Offline      -       0
199 UDMA_CRC_Error_Count    0x0032   200   200   000    Old_age   Always       -       0
200 Multi_Zone_Error_Rate   0x0008   200   200   000    Old_age   Offline      -       0
Run Code Online (Sandbox Code Playgroud)

编辑:这是我所说的导致数据损坏的希捷驱动器。此数据来自 HDTune。

HD Tune: ST3250623A Health

ID                               Current  Worst    ThresholdData       Status   
(01) Raw Read Error Rate         45       38       6        77882492   Ok       
(03) Spin Up Time                99       98       0        0          Ok       
(04) Start/Stop Count            100      100      20       640        Ok       
(05) Reallocated Sector Count    100      100      36       0          Ok       
(07) Seek Error Rate             85       60       30       359872048  Ok       
(09) Power On Hours Count        94       94       0        6028       Ok       
(0A) Spin Retry Count            100      100      97       0          Ok       
(0C) Power Cycle Count           100      100      20       689        Ok       
(C2) Temperature                 25       55       0        25         Ok       
(C3) Hardware ECC Recovered      50       47       0        201555081  Ok       
(C5) Current Pending Sector      100      100      0        0          Ok       
(C6) Offline Uncorrectable       100      100      0        0          Ok       
(C7) Ultra DMA CRC Error Count   200      199      0        1          Ok       
(C8) Write Error Rate            100      253      0        0          Ok       
(CA) TA Counter Increased        100      253      0        0          Ok       

Power On Time         : 6028
Health Status         : Ok
Run Code Online (Sandbox Code Playgroud)

在我看来,恢复的硬件 ECC 大于原始读取错误率的事实是违反直觉的。

这是我发现的“正常”希捷驱动器,其中恢复的 ECC 与原始读取错误率匹配:

HD Tune: ST380011A Health

ID                               Current  Worst    ThresholdData       Status   
(01) Raw Read Error Rate         62       46       6        79986164   Ok       
(03) Spin Up Time                98       98       0        0          Ok       
(04) Start/Stop Count            100      100      20       6          Ok       
(05) Reallocated Sector Count    100      100      36       0          Ok       
(07) Seek Error Rate             83       60       30       210309663  Ok       
(09) Power On Hours Count        93       93       0        6516       Ok       
(0A) Spin Retry Count            100      100      97       0          Ok       
(0C) Power Cycle Count           99       99       20       1325       Ok       
(C2) Temperature                 25       52       0        25         Ok       
(C3) Hardware ECC Recovered      62       46       0        79986164   Ok       
(C5) Current Pending Sector      100      100      0        0          Ok       
(C6) Offline Uncorrectable       100      100      0        0          Ok       
(C7) Ultra DMA CRC Error Count   200      188      0        18         Ok       
(C8) Write Error Rate            100      253      0        0          Ok       
(CA) TA Counter Increased        100      253      0        0          Ok       

Power On Time         : 6516
Health Status         : Ok
Run Code Online (Sandbox Code Playgroud)

编辑:

我想澄清一下,我知道 Google 通常认为 SMART 没有用。我知道每个人都应该备份他们的数据。然而,我从事修理其他人的电脑的业务。大多数人没有备份或 RAID。公司对硬盘进行故障排除并不划算,所以他们只是在 RAID 上运行它们直到它们死亡。我发现在我的工作中检查硬盘驱动器的 SMART 状态很有用。大约需要 30 秒。如果我足够幸运,一个坏驱动器显示出故障的迹象,例如扫描错误或重新分配扇区,我知道要让驱动器离开那里。如果没有这样的提示存在,我可能会花很多时间来解决速度缓慢和数据损坏的问题,直到我最终发现硬盘坏了。

我只是想微调这个过程。

sml*_*sml 15

好吧,首先我不同意你的前提。

谷歌做了一项研究,表明硬盘驱动器的 SMART 状态报告的某些原始数据属性可能与驱动器未来的故障有很强的相关性。

事实上,他们发现了相反的情况:

...我们发现仅基于 SMART 参数的故障预测模型的预测准确性可能会受到严重限制,因为我们的大部分故障驱动器都没有显示任何 SMART 错误信号。

其次,SMART 阈值没有标准化。驱动器本身的固件会将一个属性标记为“故障前”,但原始值对用户来说毫无意义。例如,希捷说

正在根据某些阈值限制监视和测量各种属性。如果任何一个属性超过阈值,则一般 SMART 状态测试将从通过变为失败。

第三方 SMART 软件可能读取的 SMART 值并不基于这些值在 Seagate 硬盘驱动器中的使用方式。Seagate 不为声称读取单个 SMART 属性和阈值的软件程序提供支持。旧驱动器上可能有一些历史正确性,但新驱动器无疑将包含更新的解决方案、属性和阈值。

tl;博士总结:

原始 SMART 值几乎没有意义,因为不同的制造商以不同的方式使用它们并且具有不同的阈值等。驱动器固件本身会告诉您何时处于“故障前”......或者可能没有,SMART 真的不是非常可靠。

定期备份!


Jef*_*ood 14

似乎不同的制造商有时将 SMART 值用于完全不同的事物,正如您在此处看到的:

我的 ReadyNAS 硬盘报告 SMART Raw Read Error Rate、Seek Error Rate 和 Hardware ECC Recovered 很高。我该怎么办?

Seagate 使用这些 SMART 字段进行内部计数,因此这是 Seagate 磁盘的已知问题。在其他字段中查找异常计数,尤其是重新分配的扇区 Ct 和 ATA 错误计数。

所以当谈到你的实际问题时......

如果我足够幸运,一个坏驱动器显示出故障的迹象,例如扫描错误或重新分配扇区,我知道要让驱动器离开那里。如果没有这样的提示存在,我可能会花很多时间来解决速度缓慢和数据损坏的问题,直到我最终发现硬盘坏了。

我想说一个很好的经验法则是,您只能期望 SMART 设置在同一驱动器制造商内具有可比性,甚至可能是同一驱动器型号!

因此,当您在考虑诊断那些 SMART 计数时,请记住这一点……一个制造商的“读取错误重试计数”可能与其他制造商的含义完全不同。悲伤但真实。:(