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