磁盘健康检查
概述
检查磁盘健康度主要通过:
SMART检查
磁盘扇区检查
SMART
smartctl
提供了充分的磁盘健康情况信息,smartd
也可以用来监控磁盘自身健康库监控。如果要做性能测试和检查所有的扇区是否存在损坏,则可以选择使用badblocks
工具。
SMART检查是开始检测硬件问题较好的初始检查工具。
要确定磁盘是否支持SMART,可以使用命令
sudo smartctl -i /dev/sda
首先估算一下检查时间(
-c
)
可以看到输出
可以通过以下方法检查
检查过程中随时可以使用命令
smartctl -X
终止检查
完整检查
提示信息
检查完成后查看结果
检查结果主要关注以下部分
SMART输出分析
ID
属性名
原则
描述
01 0x01
Raw_Read_Error_Rate
值越低越好
和厂商有关。当从磁盘表面读取数据时,存储数据和硬件读错误率有关。这个raw
值对于不同厂商具有不同安逸,所以不能理解为十进制数值。
03 0x03
Spin_Up_Time
值越低越好
磁盘轴启动的平均时间(从0转速到全速工作的花费时间,单位是毫秒)
04 0x04
Start_Stop_Count
磁盘轴启动和停止圈数。(没理解,似乎是磁盘轴开始转动以及从上一状态转到休眠状态的转动圈数)
05 0x05
Reallocated_Sector_Ct
值越低越好
重新分配的扇区数量。这里的raw
值表示已经被发现并重新映射的坏扇区数量。也就是,这个值越高,磁盘的越多扇区被重映射。这个值主要用来度量磁盘的预期寿命。当一个磁盘开始出现任何重分配的扇区,则表明这个磁盘将在今后数月内出现故障。
07 0x07
Seek_Error_Rate
和厂商有关。磁头寻道错误率。如果在机械位置系统出现部分故障,则寻道错误将出现。这种错误有可能和多个因素有关,例如伺服故障,或者硬盘热扩散。这个raw
值对于不同厂商的含义不同,所以通常不是一个十进制数值。
08 0x08
Seek Time Performance
值越高越好
磁头的寻道操作平均性能。如果这个参数值降低,则表明机械子系统出现了故障信号。
09 0x09
Power_On_Hours
磁盘加电状态的试驾。这个属性的raw
值是表示磁盘的通电小时数。(默认情况,硬盘的预期寿命是5年,相当于1825天或者43800小时)
10 0x0A
Spin_Retry_Count
值越低越好
转轴启动尝试的重试次数。这个属性存储了磁盘轴启动来达到全速运行的尝试次数(在这种情况下第一次尝试是不成功的)。当这个属性值增加就意味着硬盘机械子系统故障的信号。
11 0x0B
Recalibration Retries 或 Calibration Retry Count
值越低越好
这个属性表示重新校准的重请求次数(这种情况下第一次尝试是失败的)。当这个参数的值增长则表明硬盘的机械子系统出现故障的信号
12 0x0c
Power_Cycle_Count
这个属性是完整磁盘加电和断电循环的次数
13 0x0D
Soft Read Error Rate
值越低越好
操作系统报告的不可纠正读错误
183 0xB7
End-to-End_Error
/ IOEDC
值越低越好
这个属性值是HP的SMART IV技术,作为其他厂商的IO Error Dection and Correction schemas(IO错误检测和修复机制),它包含了校验错误的计数,也就是通过驱动器的缓存RAM发生在到介质的数据路径上的校验错误
187 0xBB
Reported_Uncorrect
值越低越好
这个属性表示不能通过硬件ECC修复的错误数量
188 0xBC
Command_Timeout
值越低越好
这个数值表示HDD超时放弃操作的计数。通常这个数值应该等于 0
196 0xC4
Reallocation Event Count
值越低越好
扇区重映射操作技术。这个参数值的raw值表示尝试从重分配扇区到空闲区域尝试传递数据的次数。成功或失败的尝试都会计算
197 0xC5
Current_Pending_Sector
值越低越好
"不稳定"扇区数量(等待重映射,因为不可修复的读错误)。如果一个不稳定的扇区在后续读取中成功,这个扇区就会重映射并且这个数值就会降低。当扇区读取错误,这个扇区就不会被立即重映射(因为正确值读取不出来,所以这个重映射值是不可知的,但也可能在以后可以读取出数据);相反,驱动器的firmware会记得这个扇区需要重映射,并且会在它下次写的时候重映射。然而,一些驱动器不会在写这种扇区的时候立即重映射;相反,驱动器会首先尝试写入故障的扇区,并且如果写入操作成功就标记这个扇区是好的(这种情况下Reallocation Event Count (0xC4)
将不会降低)。这是一个缺点,此时驱动器会包含由于成功写入但实际上存在隐患的扇区,而扇区后续故障将再也不能重映射。
198 0xC6
(Offline) Uncorrectable Sector Count
值越低越好
当读写一个扇区时候不可纠正错误的次数。这个数值上升表示磁盘表面存在瑕疵以及机械子系统故障
201 0xC9
Soft Read Error Rate
或TA Counter Detected
值越低越好
计数表示不能纠正的软件读错误数量
上述属性表仅摘录了主要表述磁盘故障(
加粗字体
)情况的属性
检查坏块
在完成了SMART检查之后,可以对磁盘进行扇区的详细扫描和检查,采用工具badblocks
来完成。
这里检查磁盘坏块的时候将日志记录输出到另外一块磁盘,例如
/dev/sdc
所挂载的目录
通知操作系统不使用坏块
上述badblocks
工具检查完成后,如果有报告坏的扇区,则可以通过e2fsck
命令通知操作系统不要使用坏块存储数据。
注意,在使用e2fsck
命令之前,需要先卸载掉磁盘(umount)
调整服务器挂载次数的fsck
fsck
tune2fs
命令可以检查和调整磁盘scan的计划安排,例如
可以看到输出
假设想调整成挂载次数50次以后检查,可以使用-c
参数
参考
ATA S.M.A.R.T. attributes - 这是详细的SMART属性解释文档
Last updated