硬盘检测工具Smartmontools安装、部署、使用
在服務器管理的實際環境中,硬盤是最容易出現問題及發生故障的硬件,而且硬盤中存儲著大量重要的數據,萬一出現故障所造成的損失也是無法估計的,輕則需要化費大量的時間與精力去做數據恢復,重則硬盤報廢,里面重要的數據也無法100%挽回,所以對硬盤健康狀監控十分必要。
一:什么是Smartmontools?
Smartmontools是一種硬盤檢測工具,通過控制和管理硬盤的SMART(Self Monitoring Analysis and Reporting Technology,自動檢測分析及報告技術)技術來實現的,SMART技術可以對硬盤的磁頭單元、盤片電機驅動系統、硬盤內部電路以及盤片表面介質材料等進行監測,當SMART監測并分析出硬盤可能出現問題時會及時向用戶報警以避免計算機數據受損失。
SMART技術必須在主板支持的前提下才能發生作用,而且 SMART技術也不能保證能預報所有可能發生的硬盤故障。SMART(SFF-8035i) 是硬盤生產商們建立的一個工業標準,這個標準就是在硬盤上保存一個跟執行情況,可靠程度,讀找錯誤率等屬性的表格。所有屬性都有一個1byte(大小范圍1-253)的標準化值,還包含另一個1byte的關鍵階段值,如果屬性表格內某個數據接近小于或達到關鍵階段值,表明硬盤工作不正常了。
二:安裝部署
2.1:下載最新源碼包安裝
下載
wget http://down1.chinaunix.net/distfiles/smartmontools-6.0.tar.gz
解壓
tar -xvf smartmontools-6.0.tar.gz
編譯
cd smartmontools-6.0
./configure
安裝
make && make install
2.2:使用yum安裝部署
yum install smartmontools -y
三:
smartd是smartmontools軟件包中的一個實用程序,可以單獨運行,也可以注冊為系統服務,
Windows上的注冊命令為:>smartd install注冊后,打開services.msc,可看到一個名叫“SmartD Service”服務,并設置為“自動”啟動。
在linux 系統平臺上可通過向/etc/init.d添加smartd腳本,其實在安裝smartmontools軟件包的時候通常會安裝到這個位置,只需要在對應的啟動級別下做一個軟鏈接就可以了。
smartd的配置文件為smartd.conf(Windows和非Windows平臺都叫這個名字,Windows平臺與smartd.exe在同 一個目錄下,非Windows平臺位于/etc目錄下),在這個配置文件中已經內置許多種監視方法和參數說明,值得一體的是-m參數,可以利用它將監視報 告以郵件的形式發送給指定的E-mail地址,這樣設備管理員就可以坐在電腦前就可以掌控所有硬盤設備的健康狀況了,利用smartd進行自動監控。
3.1:啟動監控進程
cp -rp /usr/local/etc/rc.d/init.d/smartd /etc/init.d/
[root@cn-ptmind smartmontools-6.0]# /etc/init.d/smartd start
正在啟動 smartd:[確定]
3.2:注冊服務、添加開機啟動
chkconfig --add smartd
chkconfig smartd on
四:使用方法簡介
1、smartctl -a檢查該設備是否已經打開SMART技術。
2、smartctl -s on如果沒有打開SMART技術,使用該命令打開SMART技術。
3、smartctl -t short后臺檢測硬盤,消耗時間短;
smartctl -t long后臺檢測硬盤,消耗時間長;
smartctl -C -t short前臺檢測硬盤,消耗時間短;
smartctl -C -t long前臺檢測硬盤,消耗時間長。其實就是利用硬盤SMART的自檢程序。
4、smartctl -X中斷后臺檢測硬盤。
5、smartctl -l selftest顯示硬盤檢測日志。
6、smartctl -l error顯示硬盤錯誤匯總。
五:檢測方法案例介紹;
5.1:檢查硬盤是否支持SMART
1993年以后出廠的硬盤基本上都支持SMART技術,使用如下命令可以來查看
[root@cn-ptmind smartmontools-6.0]# smartctl -i /dev/sda
sda ? sda1 ?sda2 ?sda3 ?sda4 ?sda5 ?
[root@cn-ptmind smartmontools-6.0]# smartctl -i /dev/sda5
smartctl 6.0 2012-10-10 r3643 [x86_64-linux-2.6.32-220.el6.x86_64] (local build)
Copyright (C) 2002-12, Bruce Allen, Christian Franke, www.smartmontools.org
=== START OF INFORMATION SECTION ===
Model Family: ? ? Western Digital RE4 Serial ATA
Device Model: ? ? WDC WD5003ABYX-01WERA1
Serial Number: ? ?WD-WMAYP2734314
LU WWN Device Id: 5 0014ee 0030d7592
Firmware Version: 01.01S02
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 (minor revision not indicated)
SATA Version is: ?SATA 3.0, 3.0 Gb/s (current: 3.0 Gb/s)
Local Time is: ? ?Wed Aug 14 18:14:23 2013 CST
SMART support is: Available - device has SMART capability.
SMART support is: Enabled
從返回的信息中,可以看到硬盤的生產廠家,型號,序列號,容量,是否支持SMART,目前SMART開啟沒有。
如果運行這個命令返回了類似“Device does not support SMART”的信息就說明目標硬盤不支持SMART,不能使用這套軟件包進行測試和監控。
在上面的信息可以看到,該硬盤是支持SMART技術,且當前是開啟的。如果SMART support is: Disabled表示SMART未啟用,執行如下命令,啟動SMART
smartctl --smart=on --offlineauto=on --saveauto=on /dev/sda5 或者 smartctl -s on -d ata /dev/sda5
這里的參數-s就是用來開關SMART特性的,如果加上參數值on就表示開啟,如果參數值是off就表示關閉。
5.2:檢查硬盤健康狀態
[root@cn-ptmind smartmontools-6.0]# smartctl -H /dev/sda5
smartctl 6.0 2012-10-10 r3643 [x86_64-linux-2.6.32-220.el6.x86_64] (local build)
Copyright (C) 2002-12, Bruce Allen, Christian Franke, www.smartmontools.org
=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED
請注意result后邊的結果:PASSED,這表示硬盤健康狀態良好,如果這里顯示Failure,那么最好立刻給服務器更換硬盤。
SMART只能報告磁盤已經不再健康,但是報警后還能繼續運行多久是不確定的,通常,SMART報警參數是有預留的,磁盤報警后,不會當場壞掉,一般能堅持一段時間,有的硬盤SMART報警后還繼續跑了好幾年,有的硬盤SMART報錯后幾天就壞了,千萬不要存在僥幸心理。
執行如下命令可以看到詳細的參數:
# smartctl -A /dev/hdb
-a 顯示設備所有的SMART信息。
-l error 列出硬盤錯誤日志。如果顯示沒有錯誤最好,如果顯示了大量的錯誤信息,那就該著手準備替換硬盤了。
-l selftest 列出自行測試結果
[root@cn-ptmind smartmontools-6.0]# smartctl -A /dev/sda5
smartctl 6.0 2012-10-10 r3643 [x86_64-linux-2.6.32-220.el6.x86_64] (local build)
Copyright (C) 2002-12, Bruce Allen, Christian Franke, www.smartmontools.org
=== START OF READ SMART DATA SECTION ===
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 ? 142 ? 141 ? 021 ? ?Pre-fail ?Always ? ? ? - ? ? ? 3900
?4 Start_Stop_Count ? ? ? ?0x0032 ? 100 ? 100 ? 000 ? ?Old_age ? Always ? ? ? - ? ? ? 77
?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 ? 086 ? 086 ? 000 ? ?Old_age ? Always ? ? ? - ? ? ? 10783
10 Spin_Retry_Count ? ? ? ?0x0032 ? 100 ? 253 ? 000 ? ?Old_age ? Always ? ? ? - ? ? ? 0
11 Calibration_Retry_Count 0x0032 ? 100 ? 253 ? 000 ? ?Old_age ? Always ? ? ? - ? ? ? 0
12 Power_Cycle_Count ? ? ? 0x0032 ? 100 ? 100 ? 000 ? ?Old_age ? Always ? ? ? - ? ? ? 75
192 Power-Off_Retract_Count 0x0032 ? 200 ? 200 ? 000 ? ?Old_age ? Always ? ? ? - ? ? ? 70
193 Load_Cycle_Count ? ? ? ?0x0032 ? 200 ? 200 ? 000 ? ?Old_age ? Always ? ? ? - ? ? ? 6
194 Temperature_Celsius ? ? 0x0022 ? 109 ? 107 ? 000 ? ?Old_age ? Always ? ? ? - ? ? ? 34
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
FLAG是標記,標準數值(VALUE)應當小于或等於關鍵值(THRESH)。WHEN_FAILED 代表錯誤信息,上面顯示的WHEN_FAILED縱行是空行,說明硬盤沒有故障。如果WHEN_FAILED顯示數字,表明硬盤磁道可能有比較大的壞道。
5.3:對硬盤進行檢測 手工對硬盤進行測試的方法有以下四種:
smartctl -t short ? ? 后臺檢測硬盤,消耗時間短
smartctl -t long ? ? ? 后臺檢測硬盤,消耗時間長
smartctl -C -t short ?前臺檢測硬盤,消耗時間短
smartctl -C -t long ? 前臺檢測硬盤,消耗時間長
例如,在后臺對硬盤進行詳細的檢查,命令如下:
smartctl -t long /dev/hdb
同時可以使用 smartctl -X 終止檢查。終止硬盤檢查命令的使用方法是:
smartctl -X /dev/hdb
查看硬盤錯誤日志:
#smartctl -l error /dev/hdb
以下是希捷的機械盤
/opt/smartmontools-6.0/sbin/smartctl --info --device=megaraid,1 /dev/sda
健康查詢 :
DELL SAS 機械盤 :
/opt/smartmontools-6.0/sbin/smartctl -H -d megaraid,1 /dev/sda
smartctl 6.0 2012-10-10 r3643 [x86_64-linux-2.6.18-274.el5] (local build)
Copyright (C) 2002-12, Bruce Allen, Christian Franke, www.smartmontools.org
SMART Health Status: OK
DELL SATA SSD硬盤 :
/opt/smartmontools-6.0/sbin/smartctl -H -d sat+megaraid,2 /dev/sdb
smartctl 6.0 2012-10-10 r3643 [x86_64-linux-2.6.18-274.el5] (local build)
Copyright (C) 2002-12, Bruce Allen, Christian Franke, www.smartmontools.org
轉載于:https://blog.51cto.com/michaelkang/1274807
總結
以上是生活随笔為你收集整理的硬盘检测工具Smartmontools安装、部署、使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 语音信号预处理1——chirp信号的生成
- 下一篇: WordPress后台添加侧边栏菜单