【轉載】固態硬盤的S.M.A.R.T詳解

文章來源於: 瑞耐斯存儲技術算法

兵哥寫這篇文章,是由於在測試的過程當中看到了 SSD存在偶爾有性能降低的狀況,經分析爲S.M.A.R.T命令所致使,雖然這種狀況看似不嚴重,但若是應用在諸如數據採集等關鍵性領域,有可能會致使丟失數據包的嚴重後果,固然,這個bug是能夠修正的,先看圖片:編程

S.M.A.R.T概述

S.M.A.R.T.(Self-Monitoring Analysis And Reporting Technology),意思爲「自我檢測分析與報告技術」,從名字也能看出其做用是故障預警,固態硬盤能夠經過監測自身的健康狀態,並將參數值反饋給監控軟件或者操做系統,事實上,大部分的參數僅僅對工程師而言有意義,對於最終用戶而言,只關注一些關鍵指標便可,如:新增壞塊統計,剩餘使用壽命,擦除次數等便可。安全

一些經常使用的測試軟件也能夠獲取到SSD的S.M.A.R.T信息:網絡

SSD主控廠商也會提供相應的工具:工具

通過多年HDD硬盤廠商的完善,S.M.A.R.T已經造成了一些標準,但對於SSD來講,大多數S.M.A.R.T都是自定義的,以致於每一個廠商所提供的參數並不一致,但大致都會參考HDD S.M.A.R.T來設定。post

 

SSD S.M.A.R.T信息保存在特定的區域中,由Firmware安排,有可能保存在OP區中,也有可能保存在任何FW工程師想要放置的地方,或者由單獨的表來存放。性能

 

固態硬盤的S.M.A.R.T與HDD不徹底相同,網絡上經常使用的測試軟件提供的S.M.A.R.T都是基於HDD設置的,SSD廠商一般會自行根據Nand Flash的特性設定S.M.A.R.T。測試

 

S.M.A.R.T各項參數釋義

 

01 原始讀取誤碼率Raw Read Error Rate

這項指標反饋了Nand Flash的初始健康狀態,數據值包含了可校訂的錯誤與不可校訂錯誤;ui

 

09 通電時間累計 Power-On Hours

計量單位爲小時,也能夠以分鐘、秒爲計量單位,由SSD廠商自行定義,一般狀況下活動、空閒和睡眠三種狀態的時間都會被計算在內,有些SSD會經過一些電源管理功能的開啓會將睡眠時間排除在外。此參數表示硬盤通電的累計時間,新硬盤固然應該接近0,但事實上SSD廠商在測試過程當中已經使用數個小時甚至數十上百個小時,只是測試完畢後從新量產,參數又會歸零。 spa


0C 通電週期計數 Power Cycle Count
通電週期計數的數據值表示了硬盤通電/斷電的次數,即電源開關次數的累計,新硬盤一般只有幾回。 
固態硬盤的通斷電與HDD不一樣,SSD一般會作大量的P/E cycle測試,軍工、工業類SSD還須要作大量的異常通斷電測試,以防止在異常掉電的狀況下丟失映射表以及規避其餘因掉電致使不可靠的因素,兵哥公司一般會進行3000次到10000次的異常掉電測試,可是,測試完畢,會對SSD從新量產,Power Cycel Count會被清空,用戶看到的仍然是少許的通電次數。

 

B8 初始壞塊計數 Initial Bad Block Count

每一個Nand Flash出廠時都會有初始壞塊,固件經過掃描每一個Block的第一個和最後一個page Spare Area區域的0xFF標記,若是沒有0xFF標誌,則表示爲壞塊,壞塊由固件進行統一管理,列入壞塊表。

初始壞塊的數量能夠從某種程度上反映SSD的初始健康狀態,初始壞塊越多,健康狀態相對來講就越差。

 

C3 編程失敗塊計數 Program Failure Block Count

編程失敗會將此page所在的Block列爲壞塊,這類的壞塊稱爲新增壞塊或者使用壞塊,壞塊會被列入壞塊管理表,每一個Block都存在必定的擦寫壽命,當編程識別以及擦除失敗時,都會被列入壞塊表進行管理,對於數據安全要求很高的領域來講,一次編程失敗或者擦除失敗或者讀取失敗均可以將此塊列爲壞塊。

對應下面C4,擦除失敗塊計數,一樣道理。

 

C4 擦除失敗塊計數 Erase Failure Block Count

解釋同C3

 

C5 讀取失敗塊計數 Read Failure Block Count

解釋同C3

 

CA flash總的bit錯誤統計 Total Count of Error bits from flash

這個統計包括了編程干擾(Program Disturb)錯誤,讀取干擾錯誤(Read Disturb)和擦除錯誤,可糾正和不可糾正的錯誤bit總數。

這個值看上去會很是大,尤爲是ECC能力較弱的SSD,值會更大,配合CB參數,能夠大概判斷此SSD的糾錯能力,值越大,說明糾錯能力越差。

 

CB 讀取扇區可糾正bit錯誤統計 Total Count of Read Sectors with correctable bits errors

這個統計只包括已經糾正的錯誤bit數量,用CA-CB就能夠得出不可糾正的錯誤數量,CA和CB的差別越大,說明SSD的糾錯能力越弱,SSD的壽命也會更短。

 

CD 最大PE次數Maximum PE Count

這個參數是根據Nand Flash的datasheet來設定的,事實上,nand Flash的PE次數要比datasheet規定的多,例如:給出的值是3000,等真正的計數達到3000時,剩餘壽命會顯示爲0,但實際上SSD的健康狀態可能還很是好,因此,此參數只能作爲最爲保險使用的參考。

 

CE 最小擦除總數Minimum Erase Count

最大、最小和平均擦除總數描述每一個Block的擦除次數,最大和最小擦除次數差異越小,說明磨損平衡算法作的越好,平均值沒有任何意義。

 

CF 最大擦除總數Maximum Erase Count

見CE解釋

 

D0 平均擦除總數Avage Erase Count

見CE解釋

 

D1 剩餘壽命Remaining Life(%)

這個參數顯示SSD的剩餘壽命,參考CD的描述可知這個值僅僅是個參考值

相關文章
相關標籤/搜索