我主要從四個方面簡單介紹,第一介紹當前固態(tài)硬盤面臨可靠性的問題。第二現在固態(tài)硬盤廠商包括在搭建系統(tǒng)時測試方面面臨的挑戰(zhàn),第三介紹現在采用的固態(tài)硬盤預測方法,最后是總結。
固態(tài)硬盤可靠性的問題
當前,固態(tài)硬盤可靠性實際上是現在固態(tài)硬盤廠商關注的重要問題,現在數據量急劇增長,隨著時間推移,特別像閃存介質擦寫次數的增多,到磁盤故障率不斷上升。現在SSD在市場份額中也在不斷增長,是數據中心里面主流的存儲介質。
現在不管云計算還是數據中心存儲,我們面臨著大量的硬件故障問題,特別是SSD故障問題,我們會發(fā)現SLC、TLC、QLC等閃存介質里面,隨著密度的不斷增加,故障概率不斷增高,如圖所示,SLC年故障率基本上0.2%以下,MLC基本上在0.4-0.6%之間,TLC有可能會飆升到0.8%-1%左右。
我們看到了像微軟超過50萬張固態(tài)硬盤的結果,統(tǒng)計了三年之內的年故障率,并且分析了SSD故障的內容,包括故障產生的時間和原因特征,比如品牌,工作負載的一些讀寫特性、容量、寫放大問題等,我們會發(fā)現實際上固態(tài)硬盤的故障跟很多方面因素都有關系,左邊這個圖展示的是不同負載,每天的數據寫入量會對故障產生不一樣的影響。右圖是顯示不同型號故障概率也不同。
NetApp統(tǒng)計了140萬張SSD,涵蓋了三個制造商,18個型號和12種不同容量的固態(tài)硬盤,論文里揭示了故障的成因更加復雜,包括使用的老化,包括閃存類型、容量、工藝、固件以及甚至采用不同的讀方式,都會對盤片壽命產生很大影響以及故障。
現在在整個固態(tài)硬盤領域通用的故障預測方法是采用SMART信息,通過來自硬盤控制系統(tǒng)的信息,監(jiān)測硬盤相應的實時數據,通過機器學習的方法,采集數據中心的SMART數據做數據集進行相應的訓練,故障預測,這是最常見的方法。
但這些方法里有一些問題,比如第一存在大量的正負樣本不均衡的問題。我們的大量硬盤是健康硬盤,只有少量是故障硬盤。第二存在著預測的時間不及時的問題。比如預測短期內的某一個盤片或某一個地方會產生故障,難度非常大。第三是存在準確度不高的問題,現在很多方法做的精準度還行,達到70-80%,提升到90%以上難度很大。
現在總結一下現在的幾個挑戰(zhàn),一個正負樣本非常不均衡,基本上是1:1000的情況。第二我們的學習特征和故障的相關性參數需要做一些提煉和提取。第三是我們需要對整體樣本做相應的監(jiān)測,并且現在很多故障預測的模型實際上也會隨著時間的推移,SSD不斷在使用,也在不斷老化,模型也要做相應的更新,而不是采用一個模型去監(jiān)測SSD直到壽命的終點,這是做不到的。
最后一個,故障預測里面存在著非常高的誤報率和漏報率的問題。
我們給出了幾種現在比較代表性的解決方案。一個可以采用GAN——生成對抗網絡方式做預測,減少正負樣本之間的不均衡,可以生成一些健康數據,并且與我們判別的健康數據進行對抗,實現我們對健康樣本的重構,減少錯誤樣本的數量,提高準確率。
第二可以采用一些遷移學習的方法,不同的盤片,不同的模型,可能預測效果是不一樣的,我們是否可以把一個數據中心的一類盤片移到另外一類數據中心上面,可以采用一些遷移學習的方法。比如我們可以為少量模型來做一個初步訓練,并且把其他比較成熟的模型移植到里面去,從而達到比較好的效果。
第三在很多預測領域里實際也存在著單一模型性能低下,或某些模型某部分情況預測精度比較好,另外一部分模型預測精度比較差的問題,可以采用孿生網絡模型的方法,還可以解決比如有一些示范模型沒有出現過,故障模型精度比較低,樣本不均衡,訓練數據比較少等問題。
現在除了上述方法可以部分解決問題之外,SSD還面臨著很多其他挑戰(zhàn),比如基于NAND閃存,涉及到很多半導體工藝和架構的相關特性,給我們預測準確度帶來非常多的不確定性。比如SSD需要維護FTL(閃存轉換層),這有可能使我們SMART日志難以全面的反映SSD本身的故障特征,并且SMART的信息量還是很少,實際上SSD里面需要有更多的特征來做一些反饋。
因此,我們也看了一些新的文章,去引進一些新方法,提煉更多更有效的特征,多維度地輸出,比如像故障、健康、故障類型甚至壽命等等相應的結構,從而提高精準度。
固態(tài)硬盤廠商測試面臨挑戰(zhàn)
這是我們現在做的一些工作?,F在對于SSD廠商來說還面臨其他測試方面的挑戰(zhàn),比如我們需要進行一些廠商的自我測試(MST)來消除或減少有缺陷性的組件。隨著工藝的進步,需要做測試的數量輪次在不斷增加,來觀察SSD是否過早的存在潛在的故障。
與此同時,在閃存當中存在著非常多的壞塊,部分是我們手動設置,部分是物理上存在,我們需要在測試當中加一些測試,去了解固態(tài)硬盤是否能夠正常處理。
最終的問題是我們需要掃描NAND SSD閃存,直到所有的塊都被反復的擦除、編程和讀取。隨著容量增長,我們老化過程的時間成本,包括測試輪次基本上都會不斷增加,而且概率在不斷上升,有時候需要幾個小時甚至幾十個小時做這樣一個測試。
為了減少我們出廠前的內測時間,增加出貨效率。一般來說就是盡可能去降低測試輪次,較大幅度減少時間開銷。左圖里面展示了不同測試輪次的開銷變化。我們和Memblaze合作做了一個類似的課題,想把測試周期從16個周期減少到4個周期,并且能保證缺陷檢測率和之前一樣,也就是做了一個固態(tài)硬盤早期故障檢測的工作,包括三個方面的測試,第一個是做IC的Test,第二個做Burn-in?Test,第三個做Board?Test,即做電路缺陷檢測和故障預測以及電路早期的故障檢測。
固態(tài)硬盤早期故障預測
其主要挑戰(zhàn)在于數據集的限制和不充分,包括有些特征可能是隱含的,難以提取。在整個晶圓上面如果選擇少量die做訓練模型,模型有可能存在精細度比較低,泛化性比較強等問題。
對此,我們提出了一種在線測試方法,通過篩選高缺陷率的時候才會中斷常規(guī)計算,并選擇在線增量學習和遷移學習的方法,能夠比較準確地識別類型故障。這里我們主要做了兩個工作,一個通過滑動窗口的段連接檢測變化點,判斷整體缺陷。另外就是判斷當前的故障電池百分比。
與此同時,為了對整體數據值進行增強,還在數據模型里面加入對編碼器的注意力機制,實現多步驟預測更加精準。最后得到預測結果之后,我們會發(fā)現通過這些方法可以大幅降低整個SSD出廠之前測試的成本。
這是我們最終的數據增強效果,藍色的點是真實的有缺陷的點,紅色的是我們通過人為增強的方式,能夠達到比較好的效果。而且我們會發(fā)現采用GAN的這種方式達到比較好的數據增強效果,右邊采用SMART算法則會有一定的缺陷。最終我們可以實現比較好的預測性能,像F1-Score預測精度可以達到95%左右,錯判率可以降低到個位數——7%,時間開銷可以比傳統(tǒng)采用十幾個輪次的檢測方法低80%,相當于效率提高4倍,并且比正常的檢測率更高。
另外我們檢測時間可以在40秒左右,即40秒可以對超過兩萬個驅動器的數據做整體的預測。
以上是我的匯報,現在固態(tài)硬盤故障預測面臨著很多挑戰(zhàn),今天講的內容主要是我們在固態(tài)硬盤廠商測試當中面臨的難點,容量密度增大,使得我們需要做更多的測試輪次,從而增加了時間成本。為了解決這個問題,提出了基于GAN的網絡,并且實現更好的數據模型,謝謝大家。