S.M.A.R.T.

S.M.A.R.T.

S.M.A.R.T.,全稱為“Self-Monitoring Analysis and Reporting Technology”,即“自我監測、分析及報告技術”,是一種自動的硬碟狀態檢測與預警系統和規範。通過在硬碟硬體內的檢測指令對硬碟的硬體如磁頭、碟片、馬達、電路的運行情況進行監控、記錄並與廠商所設定的預設安全值進行比較,若監控情況將或已超出預設安全值的安全範圍,就可以通過主機的監控硬體或軟體自動向用戶作出警告並進行輕微的自動修復,以提前保障硬碟數據的安全。除一些出廠時間極早的硬碟外,現在大部分硬碟均配備該項技術。

基本介紹

  • 中文名:S.M.A.R.T.
  • 外文名:Self-Monitoring Analysis and Reporting Technology
  • :“自我監測、分析及報告技術
  • 技術:普遍採用的數據安全技術
基本信息,簡介,如何工作,由何組成,健康狀況,綜述,ID檢測代碼,屬性描述,閾值,屬性值,最大出錯值,實際值,屬性狀態,SCSI系統,預測效果,解答,總結,

基本信息

S.M.A.R.T.(自監測、分析、報告技術):這是現在硬碟普遍採用的數據安全技術,在硬碟工作的時候監測系統對電機、電路、磁碟、磁頭的狀態進行分析,當有異常發生的時候就會發出警告,有的還會自動降速並備份數據。
早在上個世紀九十年代,人們就意識到數據的寶貴性勝於硬碟自身價值,渴望有種技術能對硬碟故障進行預測並實現相對安全的數據保護,因此S.M.A.R.T技術應運而生。目前,大多數硬碟的平均無故障時間(MTBF)一般在30000小時以上,有些高端產品可達120萬小時。但是對於不少用戶,特別是商業用戶而言,一次普通的硬碟故障便足以造成災難性後果,所以時至今日,S.M.A.R.T技術仍為我們所用。

簡介

該技術由Compaq公司率先開發,IBM、希捷、富士通、昆騰等硬碟廠商參與修正,並融合了Compaq公司的IntelliSafe診斷技術和IBM的PFA檢測技術特點。
“SMART”技術飛利浦200CW8新品“SMART”技術飛利浦200CW8新品
1995年5月,Compaq公司向Small Form Factor(SFF)委員會提交了IntelliSafe的技術標準報告(SFF-8035i);1996年1月進行1.0版的修正(SFF-8035R2);1996年6月進行了1.3版的修正(SFF-8055),並聯合IBM等公司向SFF正式申請將IntelliSafe技術加入到ATA-3的行業標準中,正式更名為S.M.A.R.T
作為行業標準,S.M.A.R.T規定了硬碟製造廠商應遵循的標準。滿足S.M.A.R.T標準的條件主要包括:在設備製造期間完成S.M.A.R.T需要的各項參數、屬性的設定;在特定系統平台下,能夠正常使用S.M.A.R.T;通過BIOS檢測,能夠識別設備是否支持S.M.A.R.T並可顯示相關信息,而且能辨別有效和失效的S.M.A.R.T信息;允許用戶自由開啟和關閉S.M.A.R.T功能;在用戶使用過程中,能提供S.M.A.R.T的各項有效信息,確定設備的工作狀態,並能發出相應的修正指令或警告。在硬碟以及作業系統都支持S.M.A.R.T.技術並且該技術默認開啟的的情況下,在不良狀態出現時S.M.A.R.T.技術能夠在螢幕上顯示英文警告信息:“WARNING:IMMEDIATLY BACKUP YOUR DATA AND REPLACE YOUR HARD DISK DRIVE,A FAILURE MAY BE IMMINENT.” (警告:立刻備份你的數據同時更換硬碟驅動器,可能有錯誤出現。)

如何工作

S.M.A.R.T信息保留在硬碟的系統保留區(service area)內,這個區域一般位於硬碟0物理面的最前面幾十個物理磁軌,由廠商寫入相關內部管理程式。除了S.M.A.R.T信息表外還包括低級格式化程式、加密解密程式、自監控程式、自動修復程式等。監測軟體通過一個名為“SMART RETURN STATUS”的命令(命令代碼為:B0h)對S.M.A.R.T信息進行讀取,且不允許最終用戶對信息進行修改。

由何組成

S.M.A.R.T標準中採用二進制代碼作為S.M.A.R.T的基本指令,並規定寫入標準的暫存器中,形成特定的S.M.A.R.T信息表,以供正常檢測和運行。S.M.A.R.T指令分主指令(Command)和次指令(Subcommands)。主指令主要提供設備是否支持S.M.A.R.T或忽略某一次指令特徵的信息。而次指令則提供支持S.M.A.R.T設備的檢測信息。這些指令主要由設備廠商寫入,一些專業硬碟維修軟體可以通過這些代碼進行設備的檢測。

健康狀況

綜述

S.M.A.R.T技術的原理是通過偵測硬碟各屬性,如數據吞吐性能、馬達起動時間、尋道錯誤率等屬性值和標準值進行比較分析,推斷硬碟的故障情況並給出提示信息,幫助用戶避免數據損失。S.M.A.R.T因此規定了專門的檢測參數,由於硬碟結構、性能和定位上的不同,除了ATA-3標準規定的參數外,廠商可以根據自己產品的特性提供不同的S.M.A.R.T檢測參數。普通用戶則可以通過常用的系統工具(如AIDA32)來查看,並通過這些參數了解硬碟的“健康”狀況。
了解SMART技術,防患硬碟故障於未然了解SMART技術,防患硬碟故障於未然
接下來,我們以希捷硬碟的S.M.A.R.T檢測參數為例,具體分析主要參數的含義。如圖2所示,S.M.A.R.T檢測參數分為7列,分別是ID檢測代碼、屬性描述、閾值、屬性值、最大錯誤值、實際值和屬性狀態。

ID檢測代碼

ID檢測代碼不是唯一的,廠商可以根據需要,使用不同的ID代碼或根據檢測參數的多少增減ID代碼的數量。例如,西數公司的產品ID檢測代碼為“04”,檢測的參數是Start/Stop Count(加電次數),而富士通公司同樣代碼的檢測參數卻為“Number of times the spindle motor is activated”(電機激活時間)。

屬性描述

(Attribute Description)
屬性描述(Attribute Description)即檢測項目名稱。可由廠商自定義增減,由於ATA標準不斷更新,有時候同一品牌的不同型號產品也會有所不同。但必須確保S.M.A.R.T規定的幾個主要檢測項目(雖然不同廠商對檢測項目都有特定的命名規則,但這些監測項目的實質其實是一樣的)。
Read Error Rate 錯誤讀取率
Start/Stop Count 啟動/停止次數(又稱加電次數)
Relocated Sector Count 重新分配扇區數
Spin up Retry Count 旋轉重試次數(即硬碟啟動重試次數)
Drive Calibration Retry Count 磁碟校準重試次數
ULTRA DMA CRC Error Rate (ULTRA DMA奇偶校驗錯誤率)
Multi-zone Error Rate 多區域錯誤率
Vendor-specific 廠商特性
需要注意的是,不同廠商、不同類型產品的屬性描述不盡相同。對用戶而言,無須深入了解它們的具體含義,只需了解屬性監測值的含義即可。

閾值

(Threshold)
又稱門限值。是由硬碟廠商指定的可靠的屬性值,通過特定公式計算而得。如果有一個屬性值低於相應的閾值,就意味著硬碟將變得不可靠,保存在硬碟里的數據也很容易丟失。可靠屬性值的組成和大小對不同硬碟來說是有差異的。這裡需要注意的是,ATA標準中只規定了一些S.M.A.R.T參數,它沒有規定具體的數值,“Threshold”的數值是廠商根據自己產品特性而確定的。因此,用廠商自己提供的檢測軟體往往會跟Windows下的檢測軟體(例如AIDA32)的檢測結果有較大出入。這裡,我們推薦以廠商軟體的檢測結果為標準,因為Windows環境下,系統要求硬碟的啟動程式比DOS下多得多,這可能導致硬碟S.M.A.R.T值比DOS環境下檢測的波動更大。以參數Raw ErrorRate(錯誤讀取率)為例:該參數的計算公式為10×log10(主機和硬碟之間所傳輸數據的扇區數)×512×8/重讀的扇區數。其中 “512×8”是把扇區數轉化為所傳輸的數據位(bits),這個值只在所傳輸的數據位處於10^10~10^12範圍時才作計算,而當Windows系統啟動後,主機和硬碟之間所傳輸的數據扇區大於或等於10^12時,此值將重新復位。這就是為什麼有些值在不同的操作環境、不同檢測程式下時波動較大的原因。

屬性值

(Attribute value)
屬性值是指硬碟出廠時預設的最大正常值,一般範圍為1~253。通常,最大的屬性值等於100(適用於IBM、昆騰、富士通)或253(適用於三星)。當然,也有例外的時候,比如由西部數據公司生產的部分型號硬碟,就用了兩個不同的屬性值,最初生產時屬性值設為200,但後來生產的硬碟屬性值又改為100。

最大出錯值

(Worst)
最大出錯值是硬碟運行中曾出現過的最大的非正常值。它是對硬碟累計運行的計算值,根據運行周期,該數值會不斷地刷新,並且會非常接近閾值。S.M.A.R.T分析和判定硬碟的狀態是否正常,就是根據這個數值和閾值的比較結果而定。新硬碟開始時有最大的屬性值,但隨著日常使用或出現錯誤,該值會不斷減小。因此,較大的屬性值意味著硬碟質量較好而且可靠性較高,而較小的屬性值則意味著故障發生的可能性增大。

實際值

(Date)
是硬碟各檢測項目運行中的實際數值,很多項目是累計值。例如:圖3中的Start/Stop Count(啟停次數),累計的實際值是436,即該硬碟從開始到現在累計加電啟停436次。

屬性狀態

(Status)
這是S.M.A.R.T針對前面的各項屬性值進行比較分析後,提供的硬碟各屬性目前的狀態,也是我們直觀判斷硬碟“健康”狀態的重要信息。根據S.M.A.R.T的規定,這種狀態一般有正常、警告和報告故障或錯誤等3種狀態。S.M.A.R.T判定出這3個狀態與S.M.A.R.T的 Pre-failure/advisory BIT(預知錯誤/發現位)參數的賦值密切相關。
當Pre-failure/advisory BIT=0,並且可靠屬性值遠大於閾值的情況下,為正常提示“OK”標誌。當Pre-failure/advisory BITt=0,並且可靠屬性值大於閾值但接近閾值臨界值時,為警告提示“!”標誌;當Pre-failure/advisory BITt=1,並且可靠屬性值小於閾值時,為報告故障或錯誤提示“!!!”標誌。
在圖2中,我們發現出現“OK”標誌的正常狀態下有“值正常”(Value is Normal)和“總是略過”(Always Passing)兩個狀態說明。它們的區別是:“值正常”表明此項S.M.A.R.T值是正常的,硬碟沒有故障;“永遠略過”則表明此項只是某參數的記錄,沒有合格與不合格的標準,如“Power on time count”,這個參數只是記錄了硬碟已經加電工作的時間,這個參數應當永遠合格,它不用來衡量硬碟的性能,因此顯示為“OK:Value is Normal”。
下面我們以ID為“04”的Start/Stop Count(加電次數)檢測參數為例,完整地來理解這7列參數的意義:從圖2中我們看到此參數規定的屬性正常值(Attribute value)為“100”,這個正常值是通過計算公式:“100-硬碟正常使用壽命期間的加電次數/1024”而給出的。而最大出錯值是硬碟運行的累計計算值。例如如果是新硬碟,則加電次數為0,因此為100-0/1024=100,最大出錯值=屬性正常值。隨著加電次數的增加,該最大出錯值不斷變化。廠商規定的閾值為20,即當硬碟的開關電次數達到81920次時(100-81920/1024=20),最大出錯值=閾值,系統就會提示用戶備份數據。因此,加電次數在81920次範圍之內,並且最大出錯值始終大於閾值20的狀態下,均為正常。圖中的加電次數(Date實際值)為107次,因此最大出錯值近似為100,狀態顯示為“OK:Value is Normal(值正常)”。需要特別注意的是:每一個參數所給出的值都是經過一些特定的計算公式而給出的。作為用戶,只要觀察“Worst”和“Threshold”值的關係,並注意狀態提示屬性狀態信息即可大致了解硬碟的健康狀況。

SCSI系統

由於目前硬碟領域存在ATA和SCSI兩種標準,所以不可否認,S.M.A.R.T技術是同時支持這兩個系列的產品的,只是在一些參數設定上存在一些差異,在關鍵參數上SCSI比ATA硬碟更為複雜。但在實際運作中,由於用戶和使用環境不同,S.M.A.R.T對ATA/IDE系統的干預比SCSI系統要多一些,而對SCSI故障的判定更為專業和準確些。SCSI硬碟的S.M.A.R.T技術與ATA硬碟的S.M.A.R.T技術相比更為複雜,以下僅列舉SCSI硬碟所特有參數中的一部分。
PrimaryTemp:硬碟盤體的工作溫度
Secondary Temp:PCB板周圍的工作溫度
Min and Max Temp:在一段時間內硬碟盤體的最高和最低工作溫度
Velocity Observer Count:在一段時間內伺服尋道時偏離指定磁軌的次數
12V:12V供電電壓值
5V:5V供電電壓值
MR Res:MR磁頭的電阻值
Sectors Read:在一段時間內從硬碟中讀取的扇區數
Sectors Written:在一段時間內數據寫入硬碟中的扇區數
在ATA/IDE環境下,由主機上的軟體對S.M.A.R.T“報告狀態”命令生成的、來自硬碟的報警信號進行解讀。主機對硬碟進行查詢,以檢查這一命令的狀態,如果顯示馬上要發生故障,就將告警信號送至最終用戶或系統管理員。系統管理員就安排關機時間,以備份數據和更換硬碟。主系統除對來自硬碟的“報告狀態”命令進行評估外,還可對屬性和告警報告進行評估。在SCSI環境下,S.M.A.R.T則只報告“狀況完好”或“出現故障”。由硬碟進行故障判斷,再由主機通知用戶採取措施。在SCSI標準中有一個檢測位,當硬碟確定可靠性出現問題時,檢測位就打上標記並通知最終用戶或系統管理員,採取相應措施。

預測效果

通常我們面對的硬碟故障可以分為兩大類:不可預測和可預測。
不可預測故障,通常指不可預料的電子和機械故障,這類故障發生在瞬間,如硬碟加電狀態意外碰撞導致硬碟磁頭撞擊碟片,或瞬間電流過大引起的晶片或電路故障。通常是在S.M.A.R.T反映出性能下降之前,硬碟就已經不能工作。而這些只可通過質量、設計、工藝、製造等方面的改進以及使用過程中規範操作來降低不可預測故障的發生率(例如硬碟防震技術的開發和進展,有效降低了硬碟震動物理故障的機率)。
可預測故障具有在硬碟完全不能工作前,其相應的參數會隨時間發生變化的特點。根據這一特點,可以通過S.M.A.R.T此類實時信息檢測技術監測其屬性來進行故障預測、分析和提供建議,從而加以防範。此類故障中包括軟體故障和硬體故障。例如許多機械故障都被看作是典型的可預測故障,S.M.A.R.T技術對於此類故障就有了用武之地,在發生故障之前,可以發出提醒用戶備份數據的通知,保護用戶的數據。
據研究數據表明,利用S.M.A.R.T技術可預測的硬碟故障中,60%為機械性質的,40%左右則是對軟性故障的有效預測。隨著S.M.A.R.T技術及相關技術的漸漸成熟,可預測出的故障種類將越來越多,對故障的防範措施也會變得越來越有效。當然,對不想開啟S.M.A.R.T技術的讀者而言,也可以在BIOS設定的“Advanced BIOS Set Up”選項中將其關閉

解答

1.組建RAID之後,S.M.A.R.T是否仍然生效?
用戶組建RAID之後,S.M.A.R.T功能仍然有效,但是這需要RAID卡控制晶片支持S.M.A.R.T功能。實際上,RAID卡的S.M.A.R.T報警功能與硬碟在常規狀態下的報錯信息並無太大差別。報警時,相應模組所對應的硬碟指示燈(通常為紅色)會長亮以起到警示作用。
2.為什麼監測不到USB接口外置硬碟的S.M.A.R.T狀態?
對於一個USB接口外置硬碟而言,系統將它判定為一個USB設備,監測不到S.M.A.R.T信息是因為USB標準中沒有此項規定。此時雖然硬碟自身仍然在記錄S.M.A.R.T狀態,但由於它是USB外設,系統就不會監測它的S.M.A.R.T狀態。
3.S.M.A.R.T功能對系統性能是否有影響?
硬碟記錄S.M.A.R.T信息有兩種方式,第一種是“線上(On-line)”收集,所謂線上收集就是硬碟在工作時,根據硬碟的實際工作狀態收集到的信息,硬碟實時或在指定時間段內更新自身的S.M.A.R.T數據。舉例來說,如果一個ATA硬碟在寫入數據到一個扇區時,遇到一個不可修正的錯誤,硬碟會及時把這個信息更新到SMART數據中;對於SCSI硬碟,如果它設定的S.M.A.R.T更新周期是4分鐘,則它會把在4分鐘內收集到的相關S.M.A.R.T信息更新到S.M.A.R.T數據區,然後再開始下一個周期的跟蹤。線上收集狀態對系統性能沒有影響。
第二種是“離線(off-line)”收集,離線收集是硬碟收到主機發來的一些特定指令時而進行自檢測試,此時硬碟會處於“idel”狀態或錯誤修正狀態,在這類情況下,硬碟自身將作大量動作以測試健康狀態,導致硬碟對主機發出的正常要求產生延遲。所以離線收集狀態會造成系統性能的下降。
4.S.M.A.R.T技術對相關信息的記錄是否有周期性?
對於SCSI硬碟而言,記錄S.M.A.R.T信息有周期性,一般情況下周期處於4分鐘~120分鐘之間。這個值在硬碟出廠時就已設定,並且只能通過專業軟體進行修改;而對於ATA硬碟,S.M.A.R.T信息的記錄則沒有周期性。

總結

經過近9年的發展,S.M.A.R.T技術已成為ATA/SCSI規範中不可或缺的部分。目前,硬碟廠商關於數據保護技術的開發和研究,也基本是建立在S.M.A.R.T技術基礎上的。通過本文的分析可以看出,S.M.A.R.T具有被動性的檢測、預警功能,被新興的數據保護技術衍生為可主動修復的功能。隨著硬碟技術的更新,我們有理由相信,S.M.A.R.T技術將給用戶的數據提供更多保障。

相關詞條

熱門詞條

聯絡我們