知识介绍
SMART属于一种磁盘自我分析检测技术,在90年代末的时候基本已获普及,每一块硬盘,其中涵盖IDE、SCSI,在运行之际,都会对自身的若干参数予以记录,这些参数有型号、容量、温度、密度、扇区、寻道时间、传输还有误码率等,硬盘运行几千小时之后,诸多内在的物理参数会产生变化,若某一参数超出报警阈值,那就表明硬盘快要损坏了,此时硬盘仍在工作,要是用户对这个报警不闻不问继续使用,那么硬盘会变得极为不可靠,随时有可能出现故障 。
启用SMART,SMART是与主板BIOS上相应功能相配合的,要运用SMART,就得先进入主板BIOS设置里面启动相关设置,一般从Pentium2级别起的主板,都对SMART予以支持,BIOS启动之后,便是操作系统级别的事宜了,很可惜,Windows没有内置SMART相关工具(需安装第三方工具软件),好在Linux上很早就有了SMART支持,要是把Linux安装在VMware等虚拟机上,在系统启动时能看到有个服务启动报错:smartd,这个服务器就是smart的daemon进程(由于vmware虚拟机的硬盘不支持SMART,所以报错)。
查找其中包含“error”的内容,在“/var/log/”目录下,针对“messages”开头所有文件进行操作 。
常用命令
1、smartctl -a这件事,是用来显示硬盘SMART的全部信息的。通过它来检查该设备是不是已经打开SMART技术。
2、使用 smartctl -H,这是用于查看硬盘健康状况的操作。通常情况下,通过此操作是看不出来什么问题的,所以它没啥用处。
3、通过smartctl -l selftest ,来将硬盘测试信息进行显示 ,。
该命令,即smartctl -l error 显示,有关硬盘的,历史错误信息 。
5、smartctl -A ,此操作能显示因设备SMART而产生的厂商所具有的某些属性以及与之对应的具体数值 。
6、针对硬盘展开检测,会有手工对硬盘尝试测试的办法存在,具体有以下四种:其一,运用smartctl -t short,于后台进行硬盘检测,该方式所消耗的时间较为短暂;其二,采用smartctl -t long,于后台开展硬盘检测,此方式所消耗的时间比较漫长;其三,借助smartctl -C -t short,在前台实施硬盘检测,这种情况下所消耗的时间相对较短;其四,通过smartctl -C -t long,于前台进行硬盘检测,这般所消耗的时间相对较长。
实际上呢,是借助硬盘SMART的自我检查程序,在这个时候呀,能够运用smartctl -X停止后台的测试,。
7、smartctl -i 这一操作,用于呈现设备的身份信息,以此来核查硬盘是否开启了SMART支持。当瞅见显示有:SMART support is: Enabled表示硬盘对SMART予以支持。要是显示为Disabled,那就运用:smartctl –smart=on –offlineauto=on –saveauto=on 来启用SMART。
8、要是SMART技术没被打开,那就运用带有 -s on参数的smartctl命令去开启SMART技术。
处理过程
最初借助smartctl -H /dev/sda去查验磁盘健康状况,接着运用smartctl -a /dev/sda来查看磁盘详尽情形,随后针对磁盘开展短期测试smartctl -t short /dev/sda,而后查看磁盘测试果效smartctl -l selftest /dev/sda,这样基本磁盘健康状态便能被定位出来,最终检查磁盘错误日志smartctl -l error /dev/sdb。
查看测试结果
# smartctl -a /dev/sda
smartctl 5.42 2011-10-20 r3458 [x86_64-linux-2.6.32-358.el6.x86_64] (local build)
Copyright (C) 2002-11 by Bruce Allen, http://smartmontools.sourceforge.net
=== START OF INFORMATION SECTION ===
Device Model: KINGSTON SV300S37A60G
Serial Number: 50026B724A01E182
LU WWN Device Id: 5 0026b7 24a01e182
Firmware Version: 580ABBF0
User Capacity: 60,022,480,896 bytes [60.0 GB]
Sector Size: 512 bytes logical/physical
Device is: Not in smartctl database [for details use: -P showall]
ATA Version is: 8
ATA Standard is: ACS-2 revision 3
Local Time is: Wed Oct 11 15:41:49 2017 CST
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: (0x02) Offline data collection activity
was completed without error.
Auto Offline Data Collection: Disabled.
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: ( 0) seconds.
Offline data collection
capabilities: (0x7d) SMART execute Offline immediate.
No Auto Offline data collection support.
Abort 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: ( 48) minutes.
Conveyance self-test routine
recommended polling time: ( 2) minutes.
SCT capabilities: (0x0025) SCT Status 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 0x0032 095 095 050 Old_age Always - 8601004262
5 Reallocated_Sector_Ct 0x0033 099 099 003 Pre-fail Always - 0
9 Power_On_Hours 0x0032 085 085 000 Old_age Always - 145066815403100
12 Power_Cycle_Count 0x0032 100 100 000 Old_age Always - 120
171 Unknown_Attribute 0x000a 100 100 000 Old_age Always - 0
172 Unknown_Attribute 0x0032 100 100 000 Old_age Always - 0
174 Unknown_Attribute 0x0030 000 000 000 Old_age Offline - 97
177 Wear_Leveling_Count 0x0000 000 000 000 Old_age Offline - 96
181 Program_Fail_Cnt_Total 0x000a 100 100 000 Old_age Always - 0
182 Erase_Fail_Count_Total 0x0032 100 100 000 Old_age Always - 0
187 Reported_Uncorrect 0x0012 100 100 000 Old_age Always - 0
189 High_Fly_Writes 0x0000 029 041 000 Old_age Offline - 77312098333
194 Temperature_Celsius 0x0022 029 041 000 Old_age Always - 29 (Min/Max 18/41)
195 Hardware_ECC_Recovered 0x001c 102 102 000 Old_age Offline - 8601004262
196 Reallocated_Event_Count 0x0033 099 099 003 Pre-fail Always - 0
201 Soft_Read_Error_Rate 0x001c 102 102 000 Old_age Offline - 8601004262
204 Soft_ECC_Correction 0x001c 102 102 000 Old_age Offline - 8601004262
230 Head_Amplitude 0x0013 100 100 000 Pre-fail Always - 100
231 Temperature_Celsius 0x0013 091 091 010 Pre-fail Always - 0
233 Media_Wearout_Indicator 0x0032 000 000 000 Old_age Always - 9261
234 Unknown_Attribute 0x0032 000 000 000 Old_age Always - 14820
241 Total_LBAs_Written 0x0032 000 000 000 Old_age Always - 14820
242 Total_LBAs_Read 0x0032 000 000 000 Old_age Always - 6033
SMART Error Log not supported
SMART Self-test log structure revision number 1
Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error
# 1 Short offline Completed without error 00% 13404 -
# 2 Selective offline Completed without error 00% 13404 -
# 3 Selective offline Completed without error 00% 13404 -
# 4 Selective offline Completed without error 00% 13404 -
# 5 Short offline Completed without error 00% 13403 -
SMART Selective self-test log data structure revision number 1
SPAN MIN_LBA MAX_LBA CURRENT_TEST_STATUS
1 0 10 Not_testing
2 10 20 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.
FLAG是做标记的,WHEN_FAILED是用来代表错误信息的,上面所显示的WHEN_FAILED那一纵行呈现为空行,这意味着硬盘不存在故障。若WHEN_FAILED显示为数字,那就表明硬盘磁道有可能存在比较大的坏道。1、read error rate也就是错误读取率,它是用于记录读取数据错误次数(累计的),非0值代表硬盘已经或者有可能即将发生坏道;。
2、Reallocated_Sector_Ct,这是出厂之后才会产生的坏块个数,其初始的值是100,只要存在坏块,就从1开始进行增加,每4个坏块增加1 。
2、重分配扇区计数即 reallocated sectors count:在硬盘生产全程里,存有一部分扇区是被保留的。一旦某些普通扇区出现读或者写以及验证错误时,便会重新映射至保留扇区,将该异常扇区挂起,同时增加计数。伴随计数不断增加,io性能会急剧下降。要是数值并非为0,那就得密切留意硬盘健康状况;要是持续攀升,那么硬盘已然损坏;要是重分配扇区数超出保留扇区数,那就不可修复了;。
3、累计通电时间即 power-on time,它所指的是硬盘通电时间的累计数值,其单位包含天、时、分、秒,其中休眠以及挂起状态的时间并不计入,对于新购入的硬盘而言,该数值应当小于 100 小时。
4,电源开关计数,指的是 power cycle count ,每一次加电的时候,这个计数就会增加算作一次,对于新的硬盘而言,这个计数应该是小于 10 次的,要求是会这样规定的 。
5、temperature温度:没啥可说的,仅仅是硬盘温度罢了,从理论来讲,比起工作环境高不了多少度,通过(sudo hddtemp /dev/sda)来获取 。
6、重映射扇区的内存重新分配事件计数这里所说的重映射扇区前面提到过还记得吧,这个计数是针对重映射扇区操作次数而言的,操作次数中包含成功的和失败的情况都要计数,成功的情况还好说,有可能硬盘还有挽救的余地,要是失败了,那么有可能硬盘就会报废了 。
7、磁盘吞吐量之吞吐性能可作平均考量,此性能值通常于人工开展Offline S.M.A.R.T.测试之后方才出现。

旋转启动时间,是指称主轴的电机,抵达所要求的转速之时的时间,其单位为毫秒每秒 。
启动/停止计数,电机启动或停止的次数能当作开机或者关机的次数考量,又或者是休眠后恢复的情况,每有此变动均增加一次计数,全新的硬盘此计数应该是小于10的;。
重分配扇区计数,在硬盘生产进程里,存在一部分扇区是被保留的,假如一些普通扇区出现读、写或者验证方面的错误,那么就会重新映射到保留扇区,让该异常扇区进入挂起状态,并且使计数得以增加,随着计数不断增多,io性能就会急剧下降,要是数值并非为0,那就需要对硬盘健康状况予以密切关注,要是持续攀升,那硬盘已然损坏,要是重分配扇区数超过了保留扇区数,那就将无法修复。
查找错误率,当每出现一次磁头定位有误,技术次数便增加一回。要是持续呈现上升态势,那么或许意味着机械部件快要出现或发生故障;。
查找定时器性能,寻道时间,是寻道时所需耗费的时间,时间越短读取数据就越快,然而要是时间有所增加,那么有可能机械部分快要出现故障了;。
累计通电时间,也就是 power-on time,其指的是硬盘通电时间的累计数值,单位有天、时、分、秒,休眠以及挂起状态的时间不计入,新购置的硬盘该数值应小于 100 小时,这是其对应的规定要求 !
电机实现启动后重试时机计数,对于电机启动到指定转速这件事构成了失败的累计数值,此数值被称为电机启动失败计数。若该电机启动到指定转速的行为出现失败情况,这就很大程度上暗示动力系统可能衍生出故障;。
供能循环计数,每一回通电便递增一回计数,全新的硬盘该数值应当少于十次 ,电源开关记数,每次进行加电操作就会使计数增添一次 ,新硬盘的此计数理应小于十次;。
重力传感器错误率,坠落计数:针对异常加速度(像是坠落,抛掷这样的情况)的计数——磁头会马上回到着陆区,并且会增加一次计数;。
断电后缩回计数,异常断电的次数是这样界定的:磁头在断电之前,没有能够完整归还到沉降区的次数,每一次出现异常断电,就会计数增加一次。
load/unload cycle count磁头归位次数具体说来指的是,工作之时,磁身为每次回归landing zone的次数 ,其中,流言声称有某个不具体点明是哪个品牌名称的linux系统,于使用电池之际,会持续不断地强制磁头归位,并且那个磁头脑归位次数的最大值大概是600k次,所以便有人认为linux会致使硬盘损坏,然而实际上情况并非为这个样子的 。
重装分配事件计数之重映射扇区操作次数:上边提及的重映射扇区还记得不?这个便是操作次数,成功的操作次数,失败的操作次数均会计数。成功的情况还好说,也许硬盘尚有挽救的可能,若失败了,也许硬盘就濒临报废了;。
当前待处理扇区计数,即待映射扇区数,是指出现异常的扇区个数,也就是待被映射的扇区数量。要是该异常扇区随后成功被读写,此时计数就会减小,并且扇区也不会再次进行映射。读错误的情况不会引发重新映射,唯有写错误才会导致重新映射;。
所有读错误计数,所有写错误计数,不可修复扇区数,非零则表明存在坏道,进而导致硬盘报废 。
SSD固态硬盘多出的Attributes 信息解释:
其中我们比较关注的有以下四点:
1、Media_Wearout_Indicator:指的是使用之时面临的耗费相关情况,规定当中100这一数值所代表的含义是不存在任何耗费的状况;它是用于表示SSD之上NAND的擦写次数所呈现出的程度,其初始设定的值是100,当随着擦写次数不断增加的时候,它便开始呈现出线性递减的态势,递减的速度是依照擦写次数从0涨至最大次数的相应比例来确定的。一旦这个数值降低到1的时候,它就不会再继续降低了,与此同时也就表明SSD上面已经有NAND的擦写次数达到了最大的次数。在这个时候就建议要进行备份数据的操作,以及对SSD进行更换。
上面的机器为099,按照100滴血算,目前只耗了1滴血
2、Reallocated_Sector_Ct:这是指出厂之后所产生的坏块的个数,其初始设定的值是100,要是出现了坏块,便从1开始进行增加,每有4个坏块就会增加1 。
这里offer的机器还没有任何坏块
3、Host_Writes_32MiB:已经写入了32MiB,每一次写入65536个扇区的时候,raw value就会增加1,在这里这个扇区属于一个数量单位,其大小为512字节 。
换个举例情形来讲,存在着某一块这般的盘,其大小的计算方式为,1284966乘以65536,而后所得之结果再去乘512,最终所获之数值是40155.1875。
在意察明每一台机器均存在一块磁盘书写频率相对较少的情况,而此块磁盘即为hotspare盘 。
每一台机器,当中有7块ssd盘归我们所有,其中6块盘面被用于构建raid 5,而第7块盘所起的作用为hotspare,。
4、Available_Reservd_Space:其指代的是在SSD之上的剩下的留下用来保留的空间,它的初始数值是100,这100所代表的意义是100%,而其阀值是10,当它递减到10的时候就表明保留空间已然不能够再次减少了, ———————————– smartctl输出详解,链接为https://blog.51cto.com/wenqiang/1434581 。