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