首先,我想每个人都知道硬盘驱动器的故障要比制造商想要承认的多得多。Google进行了一项研究,该研究表明硬盘驱动器的SMART状态报告的某些原始数据属性可能与驱动器的未来故障密切相关。
例如,我们发现在发生首次扫描错误后,驱动器在60天内发生故障的可能性是没有错误的驱动器的39倍。重新分配,离线重新分配和概率计数中的第一个错误也与更高的故障概率密切相关。尽管存在这些强相关性,但我们发现仅基于SMART参数的故障预测模型的预测准确性可能会受到严重限制,因为我们的故障驱动器中有很大一部分都没有显示SMART错误信号。
希捷(Seagate)似乎在试图掩盖有关其驱动器的信息,声称只有其软件才能准确确定其驱动器的准确状态,并且它们的软件不会告诉您SMART属性的原始数据值。据我所知,Western Digital并未做出任何此类声明,但其状态报告工具似乎也未报告原始数据值。
我一直在使用smartmontools的HDtune和smartctl来收集每个属性的原始数据值。我发现确实如此……当涉及某些属性时,我正在将苹果与橙子进行比较。例如,我发现大多数Seagate硬盘都会报告它们有数百万个读取错误,而西方数字99%的时间显示0表示读取错误。我还发现,希捷将报告数百万个搜索错误,而Western Digital似乎始终报告0。
问:如何标准化这些数据?希捷是否会产生数百万个错误,而西方数字公司却不产生任何错误?Wikipedia关于SMART状态的文章说,制造商有不同的方法来报告此数据。
这是我的假设:
我想我找到了一种规范化数据的方法(对吗?)。
希捷驱动器具有西部数据驱动器没有的其他属性(已恢复硬件ECC)。当您从ECC恢复的计数中减去读取错误计数时,您可能最终会得到0。这似乎等同于Western Digitals报告的“读取错误”计数。这意味着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
编辑:这是我正在谈论的Seagate驱动器,它导致数据损坏。此数据来自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
在我看来,恢复的硬件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
编辑:
我想澄清一下,我知道Google通常认为SMART无用。我知道每个人都应该备份他们的数据。但是,我从事修理其他人的计算机的业务。大多数人没有备份或RAID。公司对硬盘驱动器进行故障排除并不划算,因此他们只是在RAID上运行它们直到死掉。我发现在工作中检查硬盘驱动器的SMART状态很有用。大约需要30秒。如果我很幸运能使坏的驱动器显示出诸如扫描错误或重新分配的扇区之类的故障提示,那么我知道可以使该驱动器脱离困境。如果没有这样的提示,我可能会花很多时间来排查速度慢和数据损坏的问题,直到我最终发现硬盘坏了。
我只是想微调此过程。