SATA协议固态硬盘的S.M.A.R.T详解
兵哥寫這篇文章,是因為在測試的過程中看到了?SSD存在偶爾有性能下降的情況,經(jīng)分析為S.M.A.R.T命令所導(dǎo)致,雖然這種情況看似不嚴(yán)重,但如果應(yīng)用在諸如數(shù)據(jù)采集等關(guān)鍵性領(lǐng)域,有可能會導(dǎo)致丟失數(shù)據(jù)包的嚴(yán)重后果,當(dāng)然,這個bug是可以修正的,先看圖片:
?
?
S.M.A.R.T概述
?
S.M.A.R.T.(Self-Monitoring?Analysis?And?Reporting?Technology),意思為“自我檢測分析與報告技術(shù)”,從名字也能看出其作用是故障預(yù)警,固態(tài)硬盤可以通過監(jiān)測自身的健康狀態(tài),并將參數(shù)值反饋給監(jiān)控軟件或者操作系統(tǒng),事實上,大部分的參數(shù)僅僅對工程師而言有意義,對于最終用戶而言,只關(guān)注一些關(guān)鍵指標(biāo)即可,如:新增壞塊統(tǒng)計,剩余使用壽命,擦除次數(shù)等即可。
一些常用的測試軟件也可以獲取到SSD的S.M.A.R.T信息:
?
?
SSD主控廠商也會提供相應(yīng)的工具:
?
?
經(jīng)過多年HDD硬盤廠商的完善,S.M.A.R.T已經(jīng)形成了一些標(biāo)準(zhǔn),但對于SSD來說,大多數(shù)SATA協(xié)議的S.M.A.R.T都是自定義的,以至于每個廠商所提供的參數(shù)并不一致,但大體都會參考HDD S.M.A.R.T來設(shè)定。
?
SSD S.M.A.R.T信息保存在特定的區(qū)域中,由Firmware安排,有可能保存在OP區(qū)中,也有可能保存在任何FW工程師想要放置的地方,或者由單獨的表來存放。
?
固態(tài)硬盤的S.M.A.R.T與HDD不完全相同,網(wǎng)絡(luò)上常用的測試軟件提供的S.M.A.R.T都是基于HDD設(shè)置的,SSD廠商通常會自行根據(jù)Nand Flash的特性設(shè)定S.M.A.R.T。
?
S.M.A.R.T各項參數(shù)釋義
?
01 原始讀取誤碼率Raw?Read?Error?Rate
這項指標(biāo)反饋了Nand Flash的初始健康狀態(tài),數(shù)據(jù)值包含了可校正的錯誤與不可校正錯誤;
?
09 通電時間累計?Power-On?Hours
計量單位為小時,也可以以分鐘、秒為計量單位,由SSD廠商自行定義,通常情況下活動、空閑和睡眠三種狀態(tài)的時間都會被計算在內(nèi),有些SSD會通過一些電源管理功能的開啟會將睡眠時間排除在外。此參數(shù)表示硬盤通電的累計時間,新硬盤當(dāng)然應(yīng)該接近0,但事實上SSD廠商在測試過程中已經(jīng)使用數(shù)個小時甚至數(shù)十上百個小時,只是測試完畢后重新量產(chǎn),參數(shù)又會歸零。?
0C 通電周期計數(shù)?Power?Cycle?Count
通電周期計數(shù)的數(shù)據(jù)值表示了硬盤通電/斷電的次數(shù),即電源開關(guān)次數(shù)的累計,新硬盤通常只有幾次。?
固態(tài)硬盤的通斷電與HDD不同,SSD通常會做大量的P/E cycle測試,軍工、工業(yè)類SSD還需要做大量的異常通斷電測試,以防止在異常掉電的情況下丟失映射表以及規(guī)避其他因掉電導(dǎo)致不可靠的因素,兵哥公司通常會進(jìn)行3000次到10000次的異常掉電測試,但是,測試完畢,會對SSD重新量產(chǎn),Power Cycel Count會被清空,用戶看到的仍然是少量的通電次數(shù)。
?
B8 初始壞塊計數(shù)?Initial Bad Block?Count
每個Nand Flash出廠時都會有初始壞塊,固件通過掃描每個Block的第一個和最后一個page Spare Area區(qū)域的0xFF標(biāo)記,如果沒有0xFF標(biāo)志,則表示為壞塊,壞塊由固件進(jìn)行統(tǒng)一管理,列入壞塊表。
初始壞塊的數(shù)量可以從某種程度上反映SSD的初始健康狀態(tài),初始壞塊越多,健康狀態(tài)相對來說就越差。
?
C3 編程失敗塊計數(shù)?Program?Failure?Block?Count
編程失敗會將此page所在的Block列為壞塊,這類的壞塊稱為新增壞塊或者使用壞塊,壞塊會被列入壞塊管理表,每個Block都存在一定的擦寫壽命,當(dāng)編程識別以及擦除失敗時,都會被列入壞塊表進(jìn)行管理,對于數(shù)據(jù)安全要求很高的領(lǐng)域來說,一次編程失敗或者擦除失敗或者讀取失敗都可以將此塊列為壞塊。
對應(yīng)下面C4,擦除失敗塊計數(shù),同樣道理。
?
C4 擦除失敗塊計數(shù)?Erase?Failure?Block?Count
解釋同C3
?
C5 讀取失敗塊計數(shù)?Read?Failure?Block?Count
解釋同C3
?
CA flash總的bit錯誤統(tǒng)計?Total?Count?of?Error bits from flash
這個統(tǒng)計包括了編程干擾(Program Disturb)錯誤,讀取干擾錯誤(Read Disturb)和擦除錯誤,可糾正和不可糾正的錯誤bit總數(shù)。
這個值看上去會非常大,尤其是ECC能力較弱的SSD,值會更大,配合CB參數(shù),可以大概判斷此SSD的糾錯能力,值越大,說明糾錯能力越差。
?
CB 讀取扇區(qū)可糾正bit錯誤統(tǒng)計?Total?Count?of?Read?Sectors?with?correctable?bits?errors
這個統(tǒng)計只包括已經(jīng)糾正的錯誤bit數(shù)量,用CA-CB就可以得出不可糾正的錯誤數(shù)量,CA和CB的差異越大,說明SSD的糾錯能力越弱,SSD的壽命也會更短。
?
CD 最大PE次數(shù)Maximum PE Count
這個參數(shù)是根據(jù)Nand Flash的datasheet來設(shè)定的,事實上,nand Flash的PE次數(shù)要比datasheet規(guī)定的多,例如:給出的值是3000,等真正的計數(shù)達(dá)到3000時,剩余壽命會顯示為0,但實際上SSD的健康狀態(tài)可能還非常好,所以,此參數(shù)只能做為最為保險使用的參考。
?
CE 最小擦除總數(shù)Minimum Erase Count
最大、最小和平均擦除總數(shù)描述每個Block的擦除次數(shù),最大和最小擦除次數(shù)差別越小,說明磨損平衡算法做的越好,平均擦除總數(shù)沒有任何意義。
?
CF 最大擦除總數(shù)Maximum Erase Count
見CE解釋
?
D0 平均擦除總數(shù)Avage Erase Count
見CE解釋
?
D1 剩余壽命Remaining Life(%)
這個參數(shù)顯示SSD的剩余壽命,參考CD的描述可知這個值僅僅是個參考值,并不真正代表SSD的壽命。
總結(jié)
以上是生活随笔為你收集整理的SATA协议固态硬盘的S.M.A.R.T详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 固态硬盘的S.M.A.R.T详解
- 下一篇: Linux常用命令总结(一)