Linux系統(tǒng)如何檢測硬盤健康狀態(tài)
定期檢查硬盤的健康狀態(tài)是每個(gè)系統(tǒng)管理員必須要做的事情。說到硬盤的健康狀態(tài),這里就得先說一下S.M.A.R.T.了。
SMART是一種磁盤自我分析檢測技術(shù),早在90年代末就基本得到了普及
每一塊硬盤(包括IDE、SCSI)在運(yùn)行的時(shí)候,都會將自身的若干參數(shù)記錄下來
這些參數(shù)包括型號、容量、溫度、密度、扇區(qū)、尋道時(shí)間、傳輸、誤碼率等
硬盤運(yùn)行了幾千小時(shí)后,很多內(nèi)在的物理參數(shù)都會發(fā)生變化
某一參數(shù)超過報(bào)警閾值,則說明硬盤接近損壞
此時(shí)硬盤依然在工作,如果用戶不理睬這個(gè)報(bào)警繼續(xù)使用
那么硬盤將變得非常不可靠,隨時(shí)可能故障
SMART是和主板BIOS上相應(yīng)功能配合的
要使用SMART,必須先進(jìn)入到主板BIOS設(shè)置里邊啟動相關(guān)設(shè)置
一般從Pentium2級別起的主板,都支持SMART
BIOS啟動以后,就是操作系統(tǒng)級別的事情了
很遺憾,Windows沒有內(nèi)置SMART相關(guān)工具(需要安裝第三方工具軟件)
好在Linux上很早就有了SMART支持了
如果把Linux裝在VMware等虛擬機(jī)上,在系統(tǒng)啟動時(shí)候可以看到有個(gè)服務(wù)啟動報(bào)錯(cuò):smartd
這個(gè)服務(wù)器就是smart的daemon進(jìn)程(因?yàn)関mware虛擬機(jī)的硬盤不支持SMART,所以報(bào)錯(cuò))
可以使用下面的命令來確認(rèn)硬盤是否打開了SMART支持
命令代碼如下:
smartctl -i /dev/sda
正常情況下應(yīng)該會得到下面這樣的信息
命令代碼如下:
[root@localhost ~]# smartctl -i /dev/sda
smartctl version 5.38 [i686-redhat-linux-gnu] Copyright (C) 2002-8 Bruce Allen
Home page is http://smartmontools.sourceforge.net/
命令代碼如下:
=== START OF INFORMATION SECTION ===
Model Family: Seagate Barracuda 7200.10 family
Device Model: ST3160815AS
Serial Number: 5RA6A1K9
Firmware Version: 4.AAB
User Capacity: 160,041,885,696 bytes
Device is: In smartctl database [for details use: -P show]
ATA Version is: 7
ATA Standard is: Exact ATA specification draft version not indicated
Local Time is: Sat Jul 7 17:18:02 2012 CST
SMART support is: Available – device has SMART capability.
在這里,如果看到SMART support is: Disabled,則表示SMART未啟用
如果我們需要執(zhí)行如下命令,啟動SMART:
命令代碼如下:
smartctl –smart=on –offlineauto=on –saveauto=on /dev/sda
查看硬盤當(dāng)前的健康狀態(tài)使用如下命令
命令代碼如下:
[root@localhost ~]# smartctl -H /dev/sda
smartctl version 5.38 [i686-redhat-linux-gnu] Copyright (C) 2002-8 Bruce Allen
Home page is http://smartmontools.sourceforge.net/
命令代碼如下:
=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED
請注意result后邊的結(jié)果:PASSED,這表示硬盤健康狀態(tài)良好
如果這里顯示Failure,那么最好立刻給服務(wù)器更換硬盤。
執(zhí)行如下命令可以看到詳細(xì)的參數(shù):
命令代碼如下:
[root@localhost ~]# smartctl -A /dev/sda
smartctl version 5.38 [i686-redhat-linux-gnu] Copyright (C) 2002-8 Bruce Allen
Home page is http://www.jb51.net/
命令代碼如下:
=== START OF READ SMART DATA SECTION ===
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 100 253 006 Pre-fail Always – 0
3 Spin_Up_Time 0×0003 097 097 000 Pre-fail Always – 0
4 Start_Stop_Count 0×0032 100 100 020 Old_age Always – 818
5 Reallocated_Sector_Ct 0×0033 100 100 036 Pre-fail Always – 0
7 Seek_Error_Rate 0x000f 085 060 030 Pre-fail Always – 369003829
9 Power_On_Hours 0×0032 084 084 000 Old_age Always – 14527
10 Spin_Retry_Count 0×0013 100 100 097 Pre-fail Always – 0
12 Power_Cycle_Count 0×0032 100 100 020 Old_age Always – 817
187 Reported_Uncorrect 0×0032 100 100 000 Old_age Always – 0
189 High_Fly_Writes 0x003a 100 100 000 Old_age Always – 0
190 Airflow_Temperature_Cel 0×0022 052 046 045 Old_age Always – 48 (Lifetime Min/Max 47/52)
194 Temperature_Celsius 0×0022 048 054 000 Old_age Always – 48 (0 11 0 0)
195 Hardware_ECC_Recovered 0x001a 074 062 000 Old_age Always – 188295533
197 Current_Pending_Sector 0×0012 100 100 000 Old_age Always – 0
198 Offline_Uncorrectable 0×0010 100 100 000 Old_age Offline – 0
199 UDMA_CRC_Error_Count 0x003e 200 200 000 Old_age Always – 0
200 Multi_Zone_Error_Rate 0×0000 100 253 000 Old_age Offline – 0
202 TA_Increase_Count 0×0032 100 253 000 Old_age Always – 0
上邊列出的參數(shù)表中可供進(jìn)行技術(shù)分析和參考,使用下邊的命令可以輸出完整結(jié)果:
命令代碼如下:
smartctl -a /dev/sda