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