smart(硬碟保護技術)

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

基本信息,簡介,如何工作,由何組成,檢測屬性,ID檢測代碼,屬性描述,閾值,屬性值,最大出錯值,實際值,屬性狀態,SCSI,USB,

基本信息

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

簡介

該技術由Compaq公司率先開發,IBM、希捷、富士通、昆騰等硬碟廠商參與修正,
並融合了Compaq公司的IntelliSafe診斷技術和IBM的PFA檢測技術特點。
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)來查看,並通過這些參數了解硬碟的“健康”狀況。

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”值的關係,並注意狀態提示屬性狀態信息即可大致了解硬碟的健康狀況。
在非ATA平台上的實現

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標準中有一個檢測位,當硬碟確定可靠性出現問題時,檢測位就打上標記並通知最終用戶或系統管理員,採取相應措施。

USB

在USB標準中,USB不能用於計算機內部儲存設備的基本匯流排(如ATA,SCSI等),其本身沒有為S.M.A.R.T.提供傳輸數據的途徑。在使用ATA硬碟,以USB為傳輸連線埠的移動硬碟中,即使硬碟內S.M.A.R.T.仍然運作,但沒辦法直接向系統提供S.M.A.R.T.的數據。現在新的移動硬碟的內部驅動轉換電路已經能以一些方法將硬碟內S.M.A.R.T.的數據通過USB傳輸到系統或監控程式中讀取。

相關詞條

熱門詞條

聯絡我們