1、什麼是S.M.A.R.T. SMART是一種磁盤自我分析檢測技術,早在90年代末就基本得到了普及,每一塊硬碟(包括IDE、SCSI)在運作的時候,都會将自身的若幹參數記錄下來。這些參數包括型号、容量、溫度、密度、扇區、尋道時間、傳輸、誤碼率等。硬碟運作了幾千小時後,很多内在的實體參數都會發生變化,某一參數超過報警門檻值,則說明硬碟接近損壞,此時硬碟依然在工作,如果使用者不理睬這個報警繼續使用,那麼硬碟将變得非常不可靠,随時可能故障 2、啟用SMART SMART是和主機闆BIOS上相應功能配合的 要使用SMART,必須先進入到主機闆BIOS設定裡邊啟動相關設定 一般從Pentium2級别起的主機闆,都支援SMART BIOS啟動以後,就是作業系統級别的事情了 很遺憾,Windows沒有内置SMART相關工具(需要安裝第三方工具軟體) 好在Linux上很早就有了SMART支援了 如果把Linux裝在VMware等虛拟機上,在系統啟動時候可以看到有個服務啟動報錯:smartd 這個伺服器就是smart的daemon程序(因為vmware虛拟機的硬碟不支援SMART,是以報錯) 首先通過dmesg工具,确認一下硬碟的裝置符号 例如一個IDE硬碟連接配接到Primary IDE 總線上的Slave位置,硬碟裝置符号是/dev/hdb hdb中的h代表IDE,如果顯示為sdb,則代表SATA和SCSI 最後一個字幕b代表Primary總線,第二塊硬碟即Slave位置 确認硬碟是否打開了SMART支援 smartctl -i /dev/hdb 例如看到如下傳回結果 [[email protected]-46 ~]# smartctl -i /dev/hdb smartctl version 5.33 [i386-redhat-linux-gnu] Copyright (C) 2002-4 Bruce Allen Home page is http://smartmontools.sourceforge.net/ === START OF INFORMATION SECTION === Device Model: ST380011A Serial Number: 3JVAPRGH Firmware Version: 3.04 User Capacity: 80,026,361,856 bytes Device is: In smartctl database [for details use: -P show] ATA Version is: 6 ATA Standard is: ATA/ATAPI-6 T13 1410D revision 2 Local Time is: Tue Apr 3 15:39:52 2007 CST SMART support is: Available - device has SMART capability. SMART support is: Disabled SMART Disabled. Use option -s with argument 'on' to enable it. [[email protected]-46 ~]# 我們可以看到SMART support is: Disabled表示SMART未啟用 執行如下指令,啟動SMART: smartctl --smart=on --offlineauto=on --saveauto=on /dev/hdb 例如看到如下傳回結果 [[email protected]-46 ~]# smartctl --smart=on --offlineauto=on --saveauto=on /dev/hdb smartctl version 5.33 [i386-redhat-linux-gnu] Copyright (C) 2002-4 Bruce Allen Home page is http://smartmontools.sourceforge.net/ === START OF ENABLE/DISABLE COMMANDS SECTION === SMART Enabled. SMART Attribute Autosave Enabled. SMART Automatic Offline Testing Enabled every four hours. [[email protected]-46 ~]# 現在硬碟的SMART功能已經被打開 執行如下指令檢視硬碟的健康狀況: smartctl -H /dev/hda 例如可以看到如下結果: [[email protected]-46 ~]# smartctl -H /dev/hdb smartctl version 5.33 [i386-redhat-linux-gnu] Copyright (C) 2002-4 Bruce Allen Home page is http://smartmontools.sourceforge.net/ === START OF READ SMART DATA SECTION === SMART overall-health self-assessment test result: PASSED [[email protected]-46 ~]# 請注意result後邊的結果:PASSED,這表示硬碟健康狀态良好 如果這裡顯示Failure,那麼最好立刻給伺服器更換硬碟 SMART隻能報告磁盤已經不再健康,但是報警後還能繼續運作多久是不确定的 通常,SMART報警參數是有預留的,磁盤報警後,不會當場壞掉,一般能堅持一段時間 有的硬碟SMART報警後還繼續跑了好幾年,有的硬碟SMART報錯後幾天就壞了 但是一旦出現報警,僥幸心裡是萬萬不能的…… 執行如下指令可以看到詳細的參數: smartctl -A /dev/hdb 例如可以看到如下結果: [[email protected]-46 ~]# smartctl -A /dev/hdb smartctl version 5.33 [i386-redhat-linux-gnu] Copyright (C) 2002-4 Bruce Allen Home page is http://smartmontools.sourceforge.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 053 051 006 Pre-fail Always - 11338710 3 Spin_Up_Time 0x0003 098 097 000 Pre-fail Always - 0 4 Start_Stop_Count 0x0032 100 100 020 Old_age Always - 17 5 Reallocated_Sector_Ct 0x0033 100 100 036 Pre-fail Always - 0 7 Seek_Error_Rate 0x000f 087 060 030 Pre-fail Always - 610059516 9 Power_On_Hours 0x0032 087 087 000 Old_age Always - 11974 10 Spin_Retry_Count 0x0013 100 100 097 Pre-fail Always - 0 12 Power_Cycle_Count 0x0032 100 100 020 Old_age Always - 110 194 Temperature_Celsius 0x0022 045 052 000 Old_age Always - 45 195 Hardware_ECC_Recovered 0x001a 053 051 000 Old_age Always - 11338710 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 200 Multi_Zone_Error_Rate 0x0000 100 253 000 Old_age Offline - 0 202 TA_Increase_Count 0x0032 100 253 000 Old_age Always - 0 [[email protected]-46 ~]# 上邊列出的參數表中可供進行技術分析和參考,使用下邊的指令可以輸出完整結果: smartctl -a /dev/hdb 定期登入到伺服器上運作smartctl是比較麻煩的,linux提供了系統程序smartd 編輯配置檔案: vi /etc/smartd.conf 這個配置檔案中大部分可能是注釋掉的說明,隻需要和目前硬碟相關的一行寫入正确即可: /dev/hdb -H -m [email protected] 上邊的配置表示smartd以靜默狀态工作,當SMART中報告PASSED的時候不理睬 一旦出現Failure,立刻用郵件通知使用者指定的郵箱 修改配置後重新開機服務: /etc/init.d/smartd 即可完成對SMART的全部配置。 |
功能:可以檢視生産廠商、型号、序列号、容量、是否支援SMART、開啟否
首頁:http://smartmontools.sourceforge.NET/
Centos安裝:
yum -y install smartmontools
smartctl
-i 指定裝置
-d 指定裝置類型,例如:ata, scsi, marvell, sat, 3ware,N
-a 或A 顯示所有資訊
-l 指定日志的類型,例如:TYPE: error, selftest, selective, directory,background, scttemp[sts,hist]
-H 檢視硬碟健康狀态
-t short 背景檢測硬碟,消耗時間短
-t long 背景檢測硬碟,消耗時間長
-C -t short 前台檢測硬碟,消耗時間短
-C -t long 前台檢測硬碟,消耗時間長
-X 中斷背景檢測硬碟
-l selftest 顯示硬碟檢測日志
HP硬碟:
smartctl -s on -d cciss,0 /dev/cciss/c0d0 開啟SMART
smartctl -a -d cciss,0 -i /dev/cciss/c0d0 顯示所有SMART資訊
smartctl -l error -d cciss,0 -i /dev/cciss/c0d0 檢視磁盤錯誤日志
+++++++++++++++++++++++smarted服務+++++++++++++++++
簡單說下smartctl:smartd由kernel-utils包預設安裝。用指令 rpm -ql kernel-utils 可以列出kernel-utils包中的檔案
它是一個守護程序(一個幫助程式),它能監視擁有自我監視,分析和彙報技術(Self-Monitoring, Analysis, and Reporting Technology - SMART)的硬碟。
主配置檔案:/etc/smartd.conf
添加一行/dev/cciss/c0d0 -H -m [email protected]
上邊的配置表示smartd以靜默狀态工作,當SMART中報告PASSED的時候不理睬一旦出現Failure,立刻用郵件通知使用者指定的郵箱