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

功能

編輯

該技術能使硬盤更穩定的運行。作用如下:

  • 當硬盤的損壞程度還能在軟件可修復的範圍內(通常由廠商決定),軟件就會自動修理,防止數據的進一步損壞。同時報告異常值,異常程度為警告
  • 當硬盤的損壞程度已經超出軟件的修復承載範圍(通常由廠商決定),軟件則會盡最大能力防止再次寫入數據的丟失(如避開已損壞扇區),同時會報告異常值,異常程度為危險
  • BIOS自檢時,主板會檢測硬盤的S.M.A.R.T.信息,如果硬盤的異常程度為危險時,會提醒用戶及時備份數據(如嗡鳴聲或顯示文字)。
  • Windows 7或以上的Windows系統,如果檢測到硬碟的S.M.A.R.T.錯誤,也會彈出警告視窗,提示用戶備份資料。

歷史

編輯

最早期的硬盤監控技術起源於1992年IBM在為AS/400計算機的IBM9337硬盤陣列中的IBM 0662 SCSI2代硬盤驅動器之中,後來該技術被命名為Predictive Failure Analysis(故障預警分析技術),它是通過在固件中測量幾個重要的硬盤安全參數和評估他們的情況。從物理硬盤發送到監控軟件的結果中被限定兩種結果:「硬盤安全」和「硬盤不久後會發生故障」。

不久,由個人電腦製造商Compaq和硬盤製造商SeagateQuantumConner英語Conner提出了名為IntelliSafe的類似技術。通過該技術,硬盤會測量自身的的健康指標並將參量值傳送給操作系統和用戶的監控軟件中,每個硬盤生產商有權決定哪些指標需要被監控和它們的安全閾值。

Compaq於1995年早期將該項技術方案提交到Small Form Factor委員會進行標準化,該方案得到IBMSeagateQuantumConner英語Conner PeripheralsWestern Digital所支持。由於IntelliSafe技術的靈活性,委員會接受了該方案,並正式更名S.M.A.R.T.技術,將其標準化並推廣至ATA-3行業標準中。

運作原理

編輯

該技術所需數據被存放在硬盤物理盤面最前面的磁道中,由硬盤製作商將相關管理程序和數據該磁道中,包括加解密程序,自監控程序,自修復程序等,主機的監控軟件可以通過「SMART RETURN STATUS」的命令讀取S.M.A.R.T.信息,且這些信息不允許被用戶直接修改。

檢測屬性

編輯

下面將列出一些S.M.A.R.T.的原始檢測屬性和含義。普遍為檢測值越高性能越好。即使所有製造商都必須遵守共同的規則,但由於有些檢測值在不同硬盤製造商中用不全相同的定義和計量方法而對於不同製作商來說檢測值不全是越高越好,所以下面屬性的指標只作一般參考。除外,各製造商也會根據自己需要添加一些自己專有的檢測屬性。

說明
 
表示數值越高越好
 
表示數值越低越好
重要項:粉色底 當超出安全範圍會對性能嚴重影響,甚至導致數據丟失。
ID ID十六進制值 英文名 中文譯名 最優 說明
1 0x01 Read Error Rate 底層數據讀取錯誤率
 
存儲器從一個硬盤表面讀取數據時發生的錯誤率。原始值由於不同廠商的不同計算方法而有所不同,其十進制值往往無意義的。
2 0x02 Throughput Performance 讀寫通量性能
 
通常是硬盤讀寫性能的測量值,如果其值有變動,有可能硬盤出現了問題。
3 0x03 Spin-Up Time 盤片啟動時間
 
盤片由靜止啟動加速到穩定正常運行速度的平均所需時間。
4 0x04 Start/Stop Count 電機起停次計數
 
一個盤片啟動關閉周期的統計值,只有硬盤從完全斷電中啟動或從睡眠模式恢復,盤片主軸電機被啟動時才會記一次數。
5 0x05 Reallocated Sector Count 重定位磁區計數
 
記錄由於損壞而被映射到無損的後備區的磁區計數。當硬盤出現損壞磁區時,可以通過將其物理空間指向到特定的無損區域進行重映射修復,從而出現壞磁區的硬盤仍可使用。但當高過一定數值後,後磁區消耗殆盡而無法再重映射修復時,這些壞磁區就會顯現出來且無法自行修復。除外由於要要求磁頭讀取這些壞磁區時專門再移動到後備區讀寫數據,對硬盤讀寫性能也有影響。
6 0x06 Read Channel Margin 信道讀取餘量 讀取數據時信道可用的餘量,該屬性沒制定任何功用。
7 0x07 Seek Error Rate 尋道錯誤率 (該屬性是特定製造商才有的)磁頭尋找磁道由於機械問題而出錯幾率,有多種原因可能引致出錯,如:磁頭伺服構件,盤體過熱,或損壞。於不同廠商的不同計算方法而有所不同,其十進制值往往無意義的。
8 0x08 Seek Time Performance 尋道性能
 
每次尋道時間的平均值,該值短期內迅速減少,有可能硬盤出現了問題。
9 0x09 Power-On Hours 硬盤加電時間
 
硬盤自出廠以來加電啟動的統計時間,單位為小時(或根據製造商設定為分鐘或秒),一般用戶以該值判定硬盤是否被使用過。
10 0x0a Spin Retry Count 電機起轉重試
 
S.M.A.R.T參數電機起轉重試,表明了主軸電機的啟動嘗試次數。這個屬性存儲了關於主軸電機嘗試加速到完全可操作速度的次數(在這種情況下,意味着主軸電機的第一次啟動嘗試沒有成功)。主軸電機頻繁的嘗試啟動,意味着硬盤驅動器的壽命可能將近實際限值。
11 0x0b Recalibration Retries 磁頭校準重試
 
磁頭在一次運行失敗時嘗試校準至正常狀態的統計數,該值改變時意味着硬盤的機械部件已經出現問題了。
12 0x0c Power Cycle Count 設備開關計數 該屬性表示硬盤電源充分開/關循環計數。
13 0x0d Soft Read Error Rate 軟件讀取錯誤率
 
操作系統讀取數據時的出錯率。
183 0xb7 SATA Downshift Error Count SATA降級運行計數 Western Digital 和 Samsung 特有屬性,記錄由於兼容問題導致降低SATA傳輸級別運行的計數。
184 0xb8 End-to-End error 終端校驗出錯
 
HP專有S.M.A.R.T.(SMART IV)技術的一個特有屬性,記錄硬盤從盤片讀取數據到高速緩存後再傳輸到主機時數據校驗出錯的次數。
185 0xb9 Head Stability 磁頭穩定性 Western Digital特有屬性
186 0xba Induced Op-Vibration Detection Western Digital特有屬性
187 0xbb Reported Uncorrectable Errors 報告不可糾正錯誤
 
硬件ECC無法恢復的錯誤計數。
188 0xbc Command Timeout 通信超時
 
由於無法連接至硬盤而終止操作的統計數,一般為0,如果遠超過0,則可能電源問題,數據線接口氧化或更嚴重的問題。
189 0xbd High Fly Writes 磁頭寫入高度
 
硬盤進行寫入時對磁頭高度進行監控以提供額外的保障。當磁頭處於不正常高度進行寫入時,寫入操作會被終止,原有數據重寫入或者將該扇區重映射到安全區域。該屬性是統計值。
190 0xbe Airflow Temperature 氣流溫度
 
Western Digital特有屬性,計量硬盤內氣流溫度,和檢測項0xc2相似。
191 0xbf G-sense Error Rate 加速度錯誤率
 
計量可能對硬盤做成損害的衝擊次數。
192 0xc0 Power-off Retract Count 電源關閉磁頭收回計數
 
計量磁頭在沒有加電時不移進硬盤的值。
193 0xc1 Load Cycle Count 磁頭釋放收回循環
 
計量磁頭在加電時移至停泊區和移至盤片循環的值。
194 0xc2 Temperature 溫度
 
如果有合適的傳感器的話,這裡會顯示硬盤溫度。請注意該溫度並非直接的攝氏度或華氏度。通常來說,將原始值的最低兩位字節轉化成十進制,即為精確的溫度值(單位:攝氏度)。例如:原始值為0x003600090023,將0x23轉換為十進制為35,則硬盤溫度為35度。[1]
195 0xc3 Hardware ECC Recovered 硬件ECC恢復 (特定原始值)
196 0xc4 Reallocation Event Count 重定位事件計數
 
記錄已重映射扇區和可能重映射扇區的事件計數。
197 0xc5 Current Pending Sector Count 等候重定的扇區計數
 
記錄了不穩定的扇區的數量。
198 0xc6 Uncorrectable Sector Count 無法校正的扇區計數
 
記錄肯定出錯的扇區數量。
199 0xc7 UltraDMA CRC Error Count UltraDMA通訊CRC錯誤
 
記錄硬盤通訊時發生的CRC錯誤。
200 0xc8 Multi-Zone Error Rate 多區域錯誤率
 
寫入一個區域時發現的錯誤的計數。
200 0xc8 Write Error Rate 寫入錯誤率
 
Fujitsu的特別屬性,寫入一個區域時發現的錯誤的計數。
201 0xc9 Soft Read Error Rate 邏輯讀取錯誤率
 
記錄脫軌錯誤。
202 0xca Data Address Mark errors 數據地址標記錯誤
 
記錄數據地址標記錯誤(或製造商特定的計數)
203 0xcb Run Out Cancel 用完取消
 
ECC錯誤計數
204 0xcc Soft ECC Correction 邏輯ECC糾正
 
記錄由軟件ECC更正的錯誤計數。
205 0xcd Thermal Asperity Rate 熱嘈率
 
記錄高溫導致的出錯記數。
206 0xce Flying Height 飛行高度 記錄磁頭的飛行高度。飛得太低會增加磁頭撞毀的機會,飛得太高增加讀寫錯誤的機會。
207 0xcf Spin High Current 主軸電機浪涌電流計數
 
記錄主軸電機運轉時浪涌電流的次數。
208 0xd0 Spin Buzz 電機啟動失敗 記錄由於電力不足而啟動主軸電機的蜂鳴聲次數。
209 0xd1 Offline Seek Performance 離線尋址效能 在其內部測試硬盤的尋址能力表現。
210 0xd2 (沒定性,出現在Maxtor 6B200M0 200GB 和Maxtor 2R015H1 15GB 的硬盤中)
211 0xd3 Vibration During Write 寫操作震動 記錄寫入操作的震動數。
212 0xd4 Shock During Write 寫操作衝擊 記錄寫入操作時的衝擊數。
220 0xdc Disk Shift 盤體偏移
 
記錄盤體由於衝擊或溫度導致偏離主軸的相對距離。
221 0xdd G-Sense Error Rate 加速計出錯率
 
從外部誘發的衝擊和振動產生的錯誤計數。
222 0xde Loaded Hours 數據加載時間 數據讀取時所花費的時間。(磁頭移動時間)
223 0xdf Load/Unload Retry Count 加載/卸載重試次數 磁頭改變位置時所需時間。
224 0xe0 Load Friction 負載摩擦
 
讀寫時由於機械摩擦做成的阻力。
225 0xe1 Load/Unload Cycle Count 加載/卸載循環計數
 
總負載周期計數。
226 0xe2 Load 'In'-time 磁頭加載耗時 磁頭加載所需總時間(不包括在停泊區的花費)。
227 0xe3 Torque Amplification Count 扭矩放大計數
 
嘗試來補償盤片的速度變化的計數。
228 0xe4 Power-Off Retract Cycle 斷電縮回周期
 
切斷電源後電磁樞自動縮回的時間計數。
230 0xe6 GMR Head Amplitude GMR磁頭振幅 磁頭振幅計數(磁頭反覆正反向運動距離)。
231 0xe7 Temperature 硬盤溫度
 
記錄硬盤溫度。
232 0xe8 Endurance Remaining 耐久性剩餘 磁盤可使用周期與設計可使用周期的百分比。
232 0xe8 Available Reserved Space 可用保留空間 Intel固態硬盤報告的可提供的預留空間占作為一支全新的固態硬盤預留空間的百分比。
233 0xe9 Power-On Hours 加電時間 處於開機狀態的小時數。
233 0xe9 Media Wearout Indicator 介質耗損指標 Intel固態硬盤報告的NAND刷寫壽命,全新時值為100,最低值為1,其跌幅隨NAND的擦除周期增加而在0到最大額定周期範圍減少。
240 0xf0 Head Flying Hours 磁頭飛行時間 磁頭處於定位中的時間。
240 0xf0 Transfer Error Rate 傳輸錯誤率 在數據傳輸時連接被重置的次數計數。(Fujitsu特有屬性)
241 0xf1 Total LBAs Written LBA寫入總數 LBA寫入總數計數。
242 0xf2 Total LBAs Read LBA讀取總數 LBA讀取總數計數,部分S.M.A.R.T.檢測程序會把原始值顯示為負數,這是因為該原始值為48位,而不是32位的。
250 0xfa Read Error Retry Rate 讀取錯誤重試率
 
從磁盤讀取時的錯誤計數。
254 0xfe Free Fall Protection 自由跌落保護
 
對「自由落體事件」檢測計數。

在非ATA平台上的實現

編輯

硬盤的傳輸端口平台主要分為ATA和SCSI兩個平台。作為一種硬盤的檢測技術,理論上都能在兩個平台上實現的,但由於兩個平台也存在巨大的不同,S.M.A.R.T.在SCSI上的實現和在ATA的實現上也有所不同。首先,作為ATA上的專有規範,S.M.A.R.T.對ATA系統的干預要比SCSI更明顯,S.M.A.R.T.對SCSI更多是起到檢測的作用,即使在檢測到磁盤有故障時,其只是報告監控端,要人為地處理故障。其次,由於SCSI平台的硬盤比ATA的更為複雜,所以其檢測屬性也比ATA的多和複雜準確,如包括對盤片和驅動電路版的溫度檢測(ATA多僅對盤片溫度檢測),對電壓的檢測等。

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傳輸到系統或監控程序中讀取。

參考文獻

編輯
  1. Seagate's Seek Error Rate, Raw Read Error Rate, & Hardware ECC Recovered SMART attributes. [2013-02-01]. (原始內容存檔於2013-07-07) (英語). 
  1. ^ S.M.A.R.T. basics. [2017-11-19]. (原始內容存檔於2017-09-22).