我在硬盘的 SMART 统计数据中看到 Hardware_ECC_Recovered 的计数器在增加和减少,我很困惑。
我希望每次 ECC 检测到(并纠正)错误时它都会增加,但到底为什么它会减少呢?
/var/log/messages-20191208.gz:Dec 4 20:40:58 MushaV3 smartd[4411]: Device: /dev/sdb [SAT], SMART Usage Attribute: 195 Hardware_ECC_Recovered changed from 23 to 24
/var/log/messages-20191208.gz:Dec 7 16:40:58 MushaV3 smartd[4411]: Device: /dev/sdb [SAT], SMART Usage Attribute: 195 Hardware_ECC_Recovered changed from 24 to 23
/var/log/messages-20191215.gz:Dec 10 03:40:58 MushaV3 smartd[4411]: Device: /dev/sdb [SAT], SMART Usage Attribute: 195 Hardware_ECC_Recovered changed from 23 to 24
/var/log/messages-20191215.gz:Dec 11 13:40:59 MushaV3 smartd[4411]: Device: /dev/sdb [SAT], SMART Usage Attribute: 195 Hardware_ECC_Recovered changed from 24 to 25
/var/log/messages-20191215.gz:Dec 11 20:40:58 MushaV3 smartd[4411]: Device: /dev/sdb [SAT], SMART Usage Attribute: 195 Hardware_ECC_Recovered changed from 25 to 24
/var/log/messages-20191222.gz:Dec 16 04:10:58 MushaV3 smartd[4411]: Device: /dev/sdb [SAT], SMART Usage Attribute: 195 Hardware_ECC_Recovered changed from 24 to 23
/var/log/messages-20191222.gz:Dec 16 04:40:58 MushaV3 smartd[4411]: Device: /dev/sdb [SAT], SMART Usage Attribute: 195 Hardware_ECC_Recovered changed from 23 to 24
/var/log/messages-20191222.gz:Dec 21 21:40:58 MushaV3 smartd[4411]: Device: /dev/sdb [SAT], SMART Usage Attribute: 195 Hardware_ECC_Recovered changed from 24 to 25
此驱动器的完整智能输出:(无论如何我都打算更换)。
MushaV3 /home/tim/server/media/music # smartctl -a /dev/sdb
smartctl 7.0 2018-12-30 r4883 [x86_64-linux-4.19.57-gentoo] (local build)
Copyright (C) 2002-18, Bruce Allen, Christian Franke, www.smartmontools.org
=== START OF INFORMATION SECTION ===
Model Family: Seagate Barracuda 7200.12
Device Model: ST3500413AS
Serial Number: Z2A8WLS9
LU WWN Device Id: 5 000c50 035a9b8b6
Firmware Version: JC4B
User Capacity: 500,107,862,016 bytes [500 GB]
Sector Size: 512 bytes logical/physical
Rotation Rate: 7200 rpm
Device is: In smartctl database [for details use: -P show]
ATA Version is: ATA8-ACS T13/1699-D revision 4
SATA Version is: SATA 3.0, 6.0 Gb/s (current: 6.0 Gb/s)
Local Time is: Sun Dec 22 15:15:54 2019 GMT
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
General SMART Values:
Offline data collection status: (0x82) Offline data collection activity
was completed without error.
Auto Offline Data Collection: Enabled.
Self-test execution status: ( 0) The previous self-test routine completed
without error or no self-test has ever
been run.
Total time to complete Offline
data collection: ( 600) seconds.
Offline data collection
capabilities: (0x7b) SMART execute Offline immediate.
Auto Offline data collection on/off support.
Suspend Offline collection upon new
command.
Offline surface scan supported.
Self-test supported.
Conveyance Self-test supported.
Selective Self-test supported.
SMART capabilities: (0x0003) Saves SMART data before entering
power-saving mode.
Supports SMART auto save timer.
Error logging capability: (0x01) Error logging supported.
General Purpose Logging supported.
Short self-test routine
recommended polling time: ( 1) minutes.
Extended self-test routine
recommended polling time: ( 83) minutes.
Conveyance self-test routine
recommended polling time: ( 2) minutes.
SCT capabilities: (0x103f) SCT Status supported.
SCT Error Recovery Control supported.
SCT Feature Control supported.
SCT Data Table supported.
SMART Attributes Data Structure revision number: 10
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE
1 Raw_Read_Error_Rate 0x000f 115 099 006 Pre-fail Always - 90061503
3 Spin_Up_Time 0x0003 100 100 000 Pre-fail Always - 0
4 Start_Stop_Count 0x0032 100 100 020 Old_age Always - 850
5 Reallocated_Sector_Ct 0x0033 100 100 036 Pre-fail Always - 0
7 Seek_Error_Rate 0x000f 075 060 030 Pre-fail Always - 38654999
9 Power_On_Hours 0x0032 028 028 000 Old_age Always - 63471
10 Spin_Retry_Count 0x0013 100 100 097 Pre-fail Always - 0
12 Power_Cycle_Count 0x0032 100 100 020 Old_age Always - 849
183 Runtime_Bad_Block 0x0032 094 094 000 Old_age Always - 6
184 End-to-End_Error 0x0032 100 100 099 Old_age Always - 0
187 Reported_Uncorrect 0x0032 100 100 000 Old_age Always - 0
188 Command_Timeout 0x0032 100 098 000 Old_age Always - 3
189 High_Fly_Writes 0x003a 099 099 000 Old_age Always - 1
190 Airflow_Temperature_Cel 0x0022 076 053 045 Old_age Always - 24 (Min/Max 16/24)
194 Temperature_Celsius 0x0022 024 047 000 Old_age Always - 24 (0 12 0 0 0)
195 Hardware_ECC_Recovered 0x001a 025 015 000 Old_age Always - 90061503
197 Current_Pending_Sector 0x0012 100 100 000 Old_age Always - 0
198 Offline_Uncorrectable 0x0010 100 100 000 Old_age Offline - 0
199 UDMA_CRC_Error_Count 0x003e 200 200 000 Old_age Always - 0
240 Head_Flying_Hours 0x0000 100 253 000 Old_age Offline - 65743 (213 204 0)
241 Total_LBAs_Written 0x0000 100 253 000 Old_age Offline - 1432413407
242 Total_LBAs_Read 0x0000 100 253 000 Old_age Offline - 1198286283
SMART Error Log Version: 1
No Errors Logged
SMART Self-test log structure revision number 1
Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error
# 1 Extended offline Completed without error 00% 51176 -
# 2 Extended offline Completed without error 00% 1753 -
# 3 Extended offline Completed without error 00% 111 -
SMART Selective self-test log data structure revision number 1
SPAN MIN_LBA MAX_LBA CURRENT_TEST_STATUS
1 0 0 Not_testing
2 0 0 Not_testing
3 0 0 Not_testing
4 0 0 Not_testing
5 0 0 Not_testing
Selective self-test flags (0x0):
After scanning selected spans, do NOT read-scan remainder of disk.
If Selective self-test is pending on power-up, resume after 0 minute delay.
根据Acronis和smartmontools等一般来源,此属性的标准化值基于 ECC 错误的频率,而不仅仅是总数。因此,它会随着时间的推移而上升和下降,并且基于 SMART 约定,越高越好。
实际上,解码原始数据并不容易,因为格式因制造商而异,而且它们并不总是披露细节。但是,我发现这篇文章根据已知情况推测了希捷的实现
Hardware_ECC_recovered 值上下波动是完全正常的。这是几个“速率”参数之一,用于表征最近发生某些(可能令人担忧的)事件的频率. 在这种情况下,驱动器会测量读取后需要应用 ECC 校正的扇区比例。因为驱动器故意忘记历史记录(为您提供有关“现在”读取性能的值),所以该值上下移动是正常的。该参数在许多驱动器中波动的技术背景是硬盘驱动器在确定磁头与磁道完全对齐之前尝试读取扇区。如果它无论如何都可以读取扇区,则用户可以获得更好的性能。如果未能获得有效数据,则在下一轮重试。如果磁头位于“几乎正确”的位置,则 ECC 很可能能够纠正未正确读取的位。在我的经验中,ECC 恢复率在随机访问(如索引所有文件)时变得更糟,并在顺序读取大文件时提高(如复制 DVD 图像或看电影)。最后,我要指出的是,硬盘制造商也告诉你不要担心:担心的门槛是0,你的价值在25左右,15是有史以来最差的。较低的值更糟,因此您仍处于“绿色”范围内。即使该值降至零,它也表明驱动器会随着时间的推移而退化(“老化”)(因此在方便时更换驱动器可能是明智之举),而不是警告该驱动器即将完全故障(“预(可预测的)失败”)。我要指出的是,硬盘制造商也告诉你不要担心:担心的门槛是0,你的价值在25左右,15是有史以来最差的。较低的值更糟,因此您仍处于“绿色”范围内。即使该值降至零,它也表明驱动器会随着时间的推移而退化(“老化”)(因此在方便时更换驱动器可能是明智之举),而不是警告该驱动器即将完全故障(“预(可预测的)失败”)。我要指出的是,硬盘制造商也告诉你不要担心:担心的门槛是0,你的价值在25左右,15是有史以来最差的。较低的值更糟,因此您仍处于“绿色”范围内。即使该值降至零,它也表明驱动器会随着时间的推移而退化(“老化”)(因此在方便时更换驱动器可能是明智之举),而不是警告该驱动器即将完全故障(“预(可预测的)失败”)。