寫(xiě)在DST之前
企業(yè)級(jí)SSD系統(tǒng)在日益變得復(fù)雜,有增強(qiáng)掉電保護(hù)的備電電容,有使用頻率越來(lái)越高的DRAM,有堆疊層數(shù)越來(lái)越高的NAND, NAND結(jié)構(gòu)的復(fù)雜對(duì)固件的要求也相應(yīng)的變高,如存儲(chǔ)單元里的數(shù)據(jù)一段時(shí)間不讀會(huì)導(dǎo)致之后可能讀不出來(lái)或者出現(xiàn)很多的bit翻轉(zhuǎn)等等。而備電電容有老化的風(fēng)險(xiǎn)以及在不同的溫度環(huán)境下會(huì)影響電容的可靠性;DRAM使用不當(dāng)易出現(xiàn)ECC,甚至是UNC,影響盤(pán)的可靠性;NAND的上的冷數(shù)據(jù)如果不經(jīng)常性的去讀取就可能存在數(shù)據(jù)丟失的風(fēng)險(xiǎn)。
像服務(wù)器上電自檢一樣,SSD在上電過(guò)程中也會(huì)做電容,DRAM等自檢操作。但是一般盤(pán)上電使用之后就極少會(huì)下電,所以為了能讓HOST能實(shí)時(shí)的獲取盤(pán)內(nèi)部部件的情況,NVMe協(xié)議提供了一個(gè)標(biāo)準(zhǔn)的命令Device self-test來(lái)主動(dòng)觸發(fā)盤(pán)的部件檢測(cè),可以快速的發(fā)現(xiàn)盤(pán)是哪個(gè)部件出現(xiàn)了問(wèn)題,可以相應(yīng)的做出反應(yīng),保障用戶數(shù)據(jù)的安全。
Device self-test
NVMe命令device self-test是一個(gè)管理類命令,定義了一個(gè)操作序列。具體內(nèi)容如下:
如上圖所示:每個(gè)序列都規(guī)定了相應(yīng)的操作,有些操作是針對(duì)controller層級(jí),有些操作是NVM層級(jí)。Controller層級(jí)的主要是用于測(cè)試SSD的功能是否還正常,比如電容容值檢查,如果容值變低,則會(huì)影響SSD的掉電時(shí)間。
1、Device self-test命令在Command DW 10字段中定義了診斷的操作類型,而所有其他命令指定的字段都要保留。
如上圖所示,目前支持的操作類型有4種,
開(kāi)始一個(gè)短診斷操作;
1、短診斷的完成時(shí)間不能大于2min。
2、開(kāi)始一個(gè)長(zhǎng)診斷操作;
長(zhǎng)診斷的完成時(shí)間由Identify Controller的字段EDSTT定義,單位是分鐘。
E、開(kāi)始一個(gè)廠商自定義操作;
F、中斷一個(gè)診斷操作;
2、中斷一個(gè)自檢命令的操作有:
1、Controller reset
2、NVMe Format Command
3、一個(gè)STC為F的Device self-test命令
4、一個(gè)刪除對(duì)應(yīng)的ns的操作
5、Sanitize命令
3、觸發(fā)自檢命令之后,F(xiàn)W會(huì)按照相應(yīng)的序列順序執(zhí)行,命令運(yùn)行的情況在device self-test log中顯示,這個(gè)log可通過(guò)get log page命令的LID=6來(lái)獲取。
1、Current Device Self-Test Operation 表示當(dāng)前的診斷操作類型
2、Current Device Self-Test Completion 表示當(dāng)前的診斷操作進(jìn)度
3、Self-test Result Data Structure 總共有20條記錄,記錄了歷史的自檢結(jié)果,主要關(guān)注兩個(gè)點(diǎn):
* Device Self-test Status:這里顯示了自檢的結(jié)果,成功或者失敗。
* Segment Number:這里顯示了失敗在哪個(gè)序列操作.
DRAM Check
*由于DRAM用作用戶數(shù)據(jù)的緩存,以及存放了部分代碼和重要的數(shù)據(jù),所以如果對(duì)這部分DRAM區(qū)域做讀寫(xiě)校驗(yàn)的話,會(huì)直接導(dǎo)致數(shù)據(jù)的丟失或者固件exception。
*由于DRAM在打開(kāi)ECC校驗(yàn)的情況下,如果出現(xiàn)未寫(xiě)先讀的情況,會(huì)使得DRAM出現(xiàn)UNC.
基于以上兩點(diǎn),對(duì)于DRAM Check,固件主要要做的事情有兩個(gè):
1、對(duì)于無(wú)法做讀寫(xiě)校驗(yàn)(即只讀)的區(qū)域,F(xiàn)W需要保證該區(qū)域已經(jīng)寫(xiě)過(guò)數(shù)據(jù),所以可以直接去讀該區(qū)域。如果出現(xiàn)UNC,則固件存在bug,會(huì)危及盤(pán)的正常使用。
2、對(duì)于用作堆區(qū)域的DRAM空間,可以申請(qǐng)出來(lái)做讀寫(xiě)校驗(yàn)。除了校驗(yàn)數(shù)據(jù)的正確性,還需要關(guān)注DRAM是否出現(xiàn)ECC,如若出現(xiàn)ECC,則可能會(huì)危及盤(pán)的正常使用。
Volatile Memory Backup
我們常用的數(shù)據(jù)緩存介質(zhì)DRAM是易失性存儲(chǔ)介質(zhì),在設(shè)備掉電之后DRAM中的數(shù)據(jù)都會(huì)丟失。但是DRAM的數(shù)據(jù)傳輸速率高,為了性能考慮,其存在又是必須的。
1、緩存用戶數(shù)據(jù),加速命令的執(zhí)行,減少Q(mào)OS.
2、緩存了設(shè)備的元數(shù)據(jù),加速了元數(shù)據(jù)的修改。
所以為了解決設(shè)備掉電之后緩存數(shù)據(jù)丟失的問(wèn)題,設(shè)備需要增加備電電容以供在掉電時(shí)保證緩存數(shù)據(jù)存入flash。但是電容存在一定的失效率,失效的原因可能如下:
1、電容出廠時(shí)個(gè)體的差異導(dǎo)致能承受的電壓閾值偏低;
2、隨著時(shí)間的推移,電容會(huì)存在漏液現(xiàn)象導(dǎo)致容值降低。
軟件需要在設(shè)備上電或者運(yùn)行過(guò)程中對(duì)電容進(jìn)行定時(shí)檢測(cè),以防止電容失效或者電容容值下降不足以保證設(shè)備刷新緩存數(shù)據(jù)所需時(shí)間導(dǎo)致數(shù)據(jù)丟失,但是電容的檢測(cè)又不能太頻繁。否則一是會(huì)影響電容的使用壽命,二是如果在電容放電的過(guò)程中盤(pán)掉電了,會(huì)影響盤(pán)的掉電時(shí)間。
所以Host使用device self-test命令來(lái)檢查電容的容值是必需的,尤其是在接近盤(pán)的生命末期的時(shí)候,但是又不能太頻繁。
Metadata validation
在SSD的所有寫(xiě)入數(shù)據(jù)中,存在一些頻繁更新的數(shù)據(jù)和一些很久都不會(huì)更新的數(shù)據(jù),如果那些很久都不會(huì)更新的數(shù)據(jù)量大的話,那么也會(huì)導(dǎo)致對(duì)應(yīng)的元數(shù)據(jù)很久得不到更新。所以為了解決這個(gè)問(wèn)題,在device self-test命令的元數(shù)據(jù)檢查序列里,F(xiàn)W會(huì)去對(duì)元數(shù)據(jù)做讀校驗(yàn),確認(rèn)元數(shù)據(jù)的完整性。
1、確保元數(shù)據(jù)還能從NAND讀出來(lái),不會(huì)出現(xiàn)UNC;
2、對(duì)讀出來(lái)的數(shù)據(jù)做check,保證數(shù)據(jù)的正確性。
結(jié)尾
限于篇幅以及對(duì)協(xié)議的理解不同,各個(gè)廠商對(duì)其他的device self-test序列所做的事情存在區(qū)別,所以這里不再贅述。只介紹了對(duì)以上3個(gè)序列的個(gè)人理解。
原文標(biāo)題:日益復(fù)雜的企業(yè)級(jí)SSD系統(tǒng),如何做Device self-test?
文章出處:【微信公眾號(hào):大普微】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
責(zé)任編輯:haq
-
電容
+關(guān)注
關(guān)注
100文章
6236瀏覽量
153360 -
SSD
+關(guān)注
關(guān)注
21文章
2953瀏覽量
119168
原文標(biāo)題:日益復(fù)雜的企業(yè)級(jí)SSD系統(tǒng),如何做Device self-test?
文章出處:【微信號(hào):dputech,微信公眾號(hào):DapuStor】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
國(guó)內(nèi)企業(yè)級(jí)SSD廠商加速崛起

誰(shuí)說(shuō)高性能必須高能耗?揭秘企業(yè)級(jí)SSD功耗管理“黑科技”

慧榮科技企業(yè)級(jí)主控芯片SM8366為企業(yè)級(jí)SSD存儲(chǔ)芯片注入新動(dòng)力

emc企業(yè)級(jí)存儲(chǔ)系統(tǒng)的特點(diǎn)
AI驅(qū)動(dòng)存儲(chǔ)需求激增,企業(yè)級(jí)SSD市場(chǎng)迎來(lái)國(guó)內(nèi)廠商崛起
KCD81PJE1T92 SSD:企業(yè)級(jí)存儲(chǔ)解決方案的卓越選擇

探索KPM71RUG7T68 SSD:企業(yè)級(jí)存儲(chǔ)的可靠選擇

芯盛智能與中芯國(guó)際發(fā)布SATA企業(yè)級(jí)SSD主控芯片XT6160
KCD81RUG7T68 SSD:企業(yè)級(jí)存儲(chǔ)解決方案的卓越選擇
得瑞領(lǐng)新亮相2024云棲大會(huì),展現(xiàn)企業(yè)級(jí)NVMe SSD創(chuàng)新實(shí)力

憶恒創(chuàng)源發(fā)布國(guó)產(chǎn)PCIe 5.0企業(yè)級(jí)NVMe SSD PBlaze7 7A40系列
存儲(chǔ)大廠將企業(yè)級(jí)SSD容量推向128TB
憶聯(lián)推出企業(yè)級(jí)SATA SSD UM311b,提供穩(wěn)定可靠的存儲(chǔ)服務(wù)
憶聯(lián)推出高性能企業(yè)級(jí)SATA SSD UM311b


評(píng)論