最近在拜讀SSDFans 的年度巨作《深入淺出SSD》,,幾位作者(呆,蛋,,MARX,,濕,波)把SSD的知識(shí)講得通俗易懂,,獲益匪淺,。其中第四章第六節(jié),對(duì)掉電恢復(fù)進(jìn)行了詳細(xì)闡述,,特別提到阿呆最近在銀行存入100W,,由于異常掉電導(dǎo)致銀行系統(tǒng)沒有寫入,回來一看還是10元,,這……就算阿呆昏死過去,估計(jì)呆嫂也不會(huì)放過他啦,,后面的場(chǎng)景應(yīng)該會(huì)很有趣….
掉電是SSD使用過程中常見的問題,今天主要是從測(cè)試角度來討論掉電,,掉電可以分為兩大類:正常掉電和異常掉電,。正常掉電:掉電前host會(huì)發(fā)Standy Immediately命令通知SSD,然后SSD走正常掉電流程,,host 和SSD 間 有商有量,,和和氣氣;異常掉電:host根本不通知SSD,,上來就是干,,簡(jiǎn)單粗暴的拉閘掉電,一副強(qiáng)拆的節(jié)奏,。SSD 特別怕這種粗暴的方式,這種情況發(fā)生時(shí),,需要做很多幕后的工作才能保證數(shù)據(jù)安全,。下面主要講講異常掉電的測(cè)試,畢竟這才是吃掉阿呆100W的魔鬼,。
對(duì)消費(fèi)級(jí)SSD來說,,由于大多數(shù)產(chǎn)品不帶電容,對(duì)掉電時(shí)刻的數(shù)據(jù)無法保證寫下去,。不過對(duì)于大多數(shù)的普通用戶也還是能接受的,,畢竟只要種子在,,小電影沒了還可以再下的 ,只要你系統(tǒng)能恢復(fù)過來,,我能正常的進(jìn)入系統(tǒng),,后續(xù)的電影能正常下載和播放,這事也就過去了,。但對(duì)企業(yè)級(jí)SSD來說,,就沒那么容易了,畢竟?fàn)可娴皆S許多多的阿呆,,許許多多的100W,,所以需要保證所有數(shù)據(jù)都不能丟失.
無論是消費(fèi)級(jí)SSD還是企業(yè)級(jí)SSD,測(cè)試方法大體上是一樣的,,只不過在企業(yè)級(jí)SSD測(cè)試過程中,,我們要更注意各個(gè)環(huán)節(jié)節(jié)點(diǎn)的數(shù)據(jù)對(duì)比測(cè)試。
當(dāng)前的掉電測(cè)試主要有3種方案1.DriveMaster 2.OakGate 3. 各公司自己的方法,。 從SSD 的使用方法來講,,又可以分成2大類 :
作為數(shù)據(jù)盤,純粹用來存儲(chǔ)數(shù)據(jù),。
作為系統(tǒng)盤,,除了存放數(shù)據(jù),還會(huì)把操作系統(tǒng)安裝在這個(gè)盤上,。
無論DriveMaster 還是 OakGate 測(cè)試思路是一致的,, 都是把盤當(dāng)作數(shù)據(jù)盤來測(cè)試,這樣的好處是測(cè)試host始終不會(huì)掉電,,可以對(duì)測(cè)試盤有更多操作,,特別是做數(shù)據(jù)比較的時(shí)候,很有優(yōu)勢(shì),。
這次我們先拿2塊消費(fèi)級(jí)的NVMe SSD (三星 SM961 和 Liteon T10 plus)來測(cè)試,,看看消費(fèi)級(jí)SSD異常掉電測(cè)試情況。以下分別是2塊盤的測(cè)試結(jié)果:
由于是消費(fèi)級(jí)的盤,,SSD不帶電容,,對(duì)其基本要求是,掉電瞬間的寫數(shù)據(jù)可以不保證寫成功,,但是正?;謴?fù)回來,盤要能正常地進(jìn)行后續(xù)的讀寫,,實(shí)際測(cè)試中可以根據(jù)各自要求,,決定是否加入數(shù)據(jù)對(duì)比測(cè)試。
測(cè)試步驟為:
對(duì)SSD進(jìn)行隨機(jī)寫填滿盤,;
對(duì)SSD進(jìn)行隨機(jī)讀寫操作,;
對(duì)SSD突然掉電,;
對(duì)SSD 上電,確保成功恢復(fù),;
對(duì)SSD 再次進(jìn)行隨機(jī)讀寫,;
重復(fù)2-5步操作。
1.OakGate 平臺(tái)
LiteOn T10 plus
跑了24小時(shí)左右,,不幸出現(xiàn)Read Error , IO Hang.
三星SM 961
順利跑了24小時(shí),, 沒出現(xiàn)Error
DriveMaster
這個(gè)測(cè)試我們還是沿用以上測(cè)試思路,同樣只做掉電測(cè)試,,不做數(shù)據(jù)比較,。
這次DM 測(cè)試相對(duì)來說壓力還是較小的,因?yàn)楸疚闹饕菫榱酥v講測(cè)試方案,,測(cè)試時(shí)間沒有加很長(zhǎng),,測(cè)試結(jié)果僅供參考。
3 PowerShark掉電測(cè)試方案
對(duì)于掉電測(cè)試來說,,以上2種方案是否足夠呢,?是不是總覺得好像還缺了點(diǎn)什么?如上所述,,無論是DriveMaster 還是OakGate,,都是把盤當(dāng)成數(shù)據(jù)存儲(chǔ)盤來用,從行為上看 是不是更像是對(duì)SSD盤做熱插拔,?實(shí)際使用過程中,,特別是消費(fèi)級(jí)的SSD ,用戶可不僅僅是用來做數(shù)據(jù)盤,,存存文件,,放放電影,而是會(huì)把系統(tǒng)也裝在SSD上,。這樣SSD的壓力就更大,,不僅要保證成功恢復(fù)未及時(shí)寫入的數(shù)據(jù),還要保證系統(tǒng)文件不能損壞,,否則死給你看,,不是黑屏就是藍(lán)屏。
最近我們嘗試了PowerShark的無線掉電測(cè)試方案,,把系統(tǒng)裝在測(cè)試SSD上,,通過他們的設(shè)備和測(cè)試軟件,在測(cè)試主機(jī)上對(duì)SSD進(jìn)行異常掉電測(cè)試,。
測(cè)試步驟:
安裝好測(cè)試軟件和測(cè)試硬件;
把操作系統(tǒng)安裝在測(cè)試SSD上(我們挑了最主流的Windows 10),;
對(duì)SSD進(jìn)行全盤隨機(jī)寫填盤,;
開機(jī)運(yùn)行隨機(jī)讀寫測(cè)試(讀寫測(cè)試時(shí)間定為3分鐘),;
通過主機(jī)運(yùn)行測(cè)試測(cè)試軟件(可設(shè)置測(cè)試次數(shù),時(shí)間,,測(cè)試Fail的條件),;
無線測(cè)試設(shè)備控制測(cè)試機(jī)完全掉電;
重復(fù)步驟4-6,。
測(cè)試界面
設(shè)備主件
測(cè)試結(jié)果
Debug 串口日志
測(cè)試過程中還可以結(jié)合各廠家實(shí)際的串口打印,,設(shè)置關(guān)鍵字來判斷測(cè)試狀況,判斷是否要停下來保留現(xiàn)場(chǎng),。
如對(duì)PowerShark有興趣,,可以自行私信詢問獲取更多資料 。
總結(jié):
3種測(cè)試方法的測(cè)試結(jié)果是一致的,,但是顯然第三種作為系統(tǒng)盤來測(cè)試的方案可以更快的發(fā)現(xiàn)問題,。這和我們實(shí)際使用下來的結(jié)果也是一致的,我們?cè)诋a(chǎn)品開發(fā)過程中,,通過第三種方法確實(shí)幫助我們發(fā)現(xiàn)了異常掉電引起的各種問題,。我們認(rèn)為這種測(cè)試方法更加貼近實(shí)際使用場(chǎng)景,是更加真實(shí)的異常掉電,。不過可以將以上3種方案相結(jié)合,,使得測(cè)試效率和測(cè)試覆蓋面都有保障。