云存儲系統(tǒng)可靠性正面臨嚴(yán)峻挑戰(zhàn)隨著云存儲系統(tǒng)的快速擴展與規(guī)模的日益增大,存儲系統(tǒng)的數(shù)據(jù)可靠性已成為影響整個數(shù)據(jù)中心高效運行的一個重要因素。調(diào)查表明,硬盤故障占整個數(shù)據(jù)中心故障的32%,硬盤年故障率已成為衡量數(shù)據(jù)中心可靠性的重要指標(biāo)。采用新一代的存儲介質(zhì),如QLC SSD等新型硬盤的大規(guī)模部署,當(dāng)前的存儲系統(tǒng)的可靠性也面臨很大的挑戰(zhàn)。現(xiàn)在,數(shù)據(jù)中心都會采用智能運維系統(tǒng)比如AIOps,中間會攜帶存儲設(shè)備故障預(yù)測的模塊,在全球各大公有云的廠商,如谷歌、微軟、阿里、華為等等這樣一些廠商,他們都在致力于發(fā)展故障預(yù)測技術(shù),一般來說這個技術(shù)都是我們首先會去收集整個公有云系統(tǒng)的日志,做一些數(shù)據(jù)預(yù)處理,處理完以后去設(shè)立相應(yīng)的硬盤故障預(yù)測和內(nèi)存故障預(yù)測的模塊,當(dāng)預(yù)測有結(jié)果后,我們會對數(shù)據(jù)做一些提前的數(shù)據(jù)遷移、虛擬機的遷移等等操作,來保障整個系統(tǒng)的正常運行。固態(tài)硬盤故障預(yù)測主要問題
我們在5年前就有大量的研究者在做機械硬盤的一些故障預(yù)測,效果挺好,但是現(xiàn)在固態(tài)硬盤的變化趨勢實際上跟傳統(tǒng)機械盤的故障率呈現(xiàn)不同的趨勢,主要原理是因為這兩者的存儲原理不一樣。
機械硬盤很多故障來自于機械部件和磁道損傷,而SSD固態(tài)硬盤的故障更多源自于存儲介質(zhì)的一些故障,比如說磨損和部件里面發(fā)生了錯誤等等。
像Black blaze的預(yù)測,紅色的曲線實際上是傳統(tǒng)機械硬盤,藍(lán)色的表是固態(tài)硬盤,兩條曲線也呈現(xiàn)不同特點。
傳統(tǒng)機械硬盤一般可以通過收集硬盤上的SMART信息來進(jìn)行故障預(yù)測,并且利用浴盆曲線構(gòu)建相應(yīng)的學(xué)習(xí)模型,可以采用右邊這個框里面的一些常用故障預(yù)測算法,比如說基于閾值的和基于異常檢測和淺層機器學(xué)習(xí)和深層機器學(xué)習(xí)的方法,都已經(jīng)成熟,像故障的精準(zhǔn)率和覆蓋率都會達(dá)到比較高的程度。
如果全部去照搬機械硬盤的故障預(yù)測,由于存儲原理的巨大差異,這些方法其實并不是非常適用,從而導(dǎo)致故障預(yù)測精準(zhǔn)率不高、覆蓋率不全等等的現(xiàn)象出現(xiàn)。
因此我們就現(xiàn)有的固態(tài)硬盤故障做了一些統(tǒng)計和分析,發(fā)現(xiàn)它的影響因素包括有閃存工藝、容量、溫度、磨損、數(shù)據(jù)寫入量等各方面的制約,比如左邊的圖會發(fā)現(xiàn)SLC的故障率遠(yuǎn)低于MLC,MLC遠(yuǎn)低于3D-TLC,相當(dāng)于閃存工藝不同,故障率是不一樣的,另外也會受到溫度影響,右邊可以看到涉及到數(shù)據(jù)寫入量的影響,所以由于這樣一些故障因素的眾多,而傳統(tǒng)的SMART信息是不收集的,所以SMART信息沒有那么重要,所以我們考慮哪些信息是在SMART里面,哪些信息有用,哪些信息沒用。
另外固態(tài)硬盤我們的故障預(yù)測的曲線,它也不嚴(yán)格遵循傳統(tǒng)的浴盆曲線,相當(dāng)于浴盆曲線是剛開始出廠的時候故障很高,等穩(wěn)定了以后會有一個非常長的穩(wěn)定期,變得很低,到了產(chǎn)品的生涯末期又會急劇上升,呈現(xiàn)一個浴盆的狀態(tài),但是固態(tài)硬盤不是這樣,它可能在出廠的早期,因為廠家對于固態(tài)硬盤的檢測不全面,所以無法去檢測出來很多壞的塊,會導(dǎo)致早期有可能出現(xiàn)故障急劇上升的情況,等到穩(wěn)定了以后再下降,最后到生涯的末期,故障急劇上升。
存儲設(shè)備故障預(yù)測方法和機制
針對于固態(tài)硬盤的故障預(yù)測的問題,在過去的兩年當(dāng)中做了兩個方面的研究,一個是針對于早期故障,怎么提高SSD出廠前的檢測效率;第二,針對數(shù)據(jù)中心的云存儲系統(tǒng),怎么選擇合適的參數(shù)來提高大規(guī)模固態(tài)硬盤故障預(yù)測的準(zhǔn)確率。
首先介紹我們的早期故障預(yù)測,背景是閃存顆粒作為SSD基本單元,從根本上影響全生命周期的質(zhì)量,SSD廠商一般出貨或出廠前需要對板上面所有的閃存帶進(jìn)行掃描測試,用于剔除原始的壞塊和自測早期的壞塊,特別是做一個MST的早期壞塊的檢測,我們現(xiàn)在測試方法很簡單,就是用FIO這一類的去跑一圈負(fù)載,看一看哪些地方的讀寫性能很差,或者呈現(xiàn)的比較大的波動,我們就認(rèn)為這個地方可能是有故障風(fēng)險,但是隨著我們現(xiàn)在NAND閃存光刻技術(shù)的進(jìn)步,密度急劇增加,對于單個盤的MST的掃描檢測時間在不斷的增加。
現(xiàn)在單盤測試的時間一般來說比如16TB的SSD需要幾十個小時,需要46個小時的自測時間,SSD廠商需要用FIO測16個輪次,完整把這個盤寫16次,所以有很多的廠商想盡可能地減少開銷,降低成本。
所以我們就嘗試用AI的方法和機器學(xué)習(xí)的方法做改進(jìn),提出了一個基于對抗網(wǎng)絡(luò)的故障預(yù)測的框架,假設(shè)我們按照四個周期完成測試,一方面為了保證樣本不均衡,我們實際上用對抗網(wǎng)絡(luò)的方式來去模擬生成一些故障樣本做對抗測試,另一方面用了一些網(wǎng)絡(luò)來測試SSD會在哪個周期出現(xiàn)早期故障。
最終通過網(wǎng)絡(luò)去增強并平衡我們的正樣本數(shù)據(jù),并且能夠在自測過程發(fā)現(xiàn)早期故障,并且將模型可以動態(tài)嵌入到我們的周期管理器當(dāng)中,通過這樣的方式可以實現(xiàn)多步驟的故障預(yù)測,而且可以動態(tài)降低一些自測成本。
我們通過很多次實驗也做了相應(yīng)測試,發(fā)現(xiàn)對抗網(wǎng)絡(luò)可以全面提高預(yù)測性能,預(yù)測準(zhǔn)確度能夠達(dá)到TPR(真正率)94.9%以上,F(xiàn)PR(假正率)達(dá)到7.6%以上,準(zhǔn)確度和精度保持在95%左右。
我們在預(yù)測當(dāng)中也跟現(xiàn)有的方法做了一些對比,提升14%到34%,我們的假正率可以提高35%到66%,具有非常好的性能。我們基本解決了在早期粒度故障數(shù)據(jù)量過少的問題,實現(xiàn)了我們動態(tài)做MST測試時間比傳統(tǒng)16個周期要低80%,將來為來四分之一,可以從16個周期降為4個周期,可以達(dá)到95%的缺陷檢出率。
第二個工作,我們主要是做了整個的軟硬件的協(xié)同預(yù)測的過程,我們實際上是把前面說的SMART信息,很多是沒有用的,我們把與故障相關(guān)的屬性進(jìn)行相關(guān)系數(shù)分析,對比了與整個故障相關(guān)的程度,有的小于3%,有的可能完全沒有什么關(guān)系,甚至要于0.5%。但是我們在分析的過程當(dāng)中會發(fā)現(xiàn)另一個參數(shù),比如閃存的磨損特征,它占主導(dǎo)地位,但是這個磨損的特性實際上在SMART信息里表現(xiàn)不完整,而它一般來說這個特征來自于我們的FTR控制器層面獲取到,所以我們在這里面一方面想去結(jié)合SMART里面的信息,另外一方面可能會去從FTR拿一些磨損相關(guān)的參數(shù),來提高它的預(yù)測精度。SSD廠商SMART信息是大幅度減弱,大量的新意無用,難以支撐有效的故障預(yù)測。
第二,面對正負(fù)樣本的不平衡,云硬盤訓(xùn)練樣本極少,模型老化,我們也給了兩個數(shù)據(jù)級的樣本分布情況,3D-TLC,發(fā)現(xiàn)它的分布比例當(dāng)中非常不均衡,而在實際應(yīng)用場景當(dāng)中,每天都會產(chǎn)生新的SMART數(shù)據(jù),會導(dǎo)致SMART屬性潛在分布隨著時間變化,如果長期適用離線模型訓(xùn)練會導(dǎo)致你的性能與你當(dāng)前的系統(tǒng)是不匹配的。
所以我們針對前面的早期故障在大規(guī)模的SSD當(dāng)中的預(yù)測精度不高的問題,把前面做得工作老化的過程的熱力圖先拿過來,按照整個邏輯單元號的最大位的錯誤率形成一個錯誤統(tǒng)計圖,發(fā)現(xiàn)故障分布情況是隨著PCle數(shù)量的增加,我們最大位的錯誤數(shù)量也在不斷急劇上升,如果這個最大位的錯誤量超過LDPC或者ECC編碼的錯誤的容錯能力,這個時候就會出現(xiàn)數(shù)據(jù)丟失的現(xiàn)象,所以我們通過FTR固件的層面進(jìn)行很多的老化磨損測試,獲取3D-TLC的老化特性。
我們研究了不同的AI方法應(yīng)用于故障預(yù)測的影響,做了一個全生命周期的預(yù)測,用了數(shù)據(jù)集20萬塊盤來自阿里在天池上發(fā)布的數(shù)據(jù)集,發(fā)現(xiàn)我們的方法可以達(dá)到比較好的效果,基本上是比前面方法預(yù)測的準(zhǔn)確率高30%到40%左右,而且可以預(yù)測一些比較長期的故障,多方法基本上無法預(yù)測,比如說5個月或者13個月之后的情況。
最后介紹一下我們的一些結(jié)論和我們的展望,我們做的兩個工作主要是針對固態(tài)硬盤故障一預(yù)測問題開展兩個方面的研究,一個是針對早期的固態(tài)硬盤故障,利用了對抗網(wǎng)絡(luò)和AdaSeq框架,提高出廠檢測效率,我們可以把MST的壞塊檢測效率提高4倍,也就可以把原先的16個周期降為4個周期;第二,針對整個數(shù)據(jù)中心的云存儲系統(tǒng),采用了軟硬件協(xié)同的方法,軟件方面,搜集整個公有云的一些系統(tǒng)日志,硬件我們是搜集盤上面的FTR的信息,來獲取磨損參數(shù),發(fā)現(xiàn)我們可以通過這種方法大幅度的提高SSD故障預(yù)測的準(zhǔn)確率,并且能夠保證低成本的存儲系統(tǒng)可靠性。
現(xiàn)在我們正在做其他比較有意思的事情,一個是我們在做一些主動分級容錯技術(shù),能夠主動發(fā)現(xiàn)故障在什么地方,但是在我們的整個存儲系統(tǒng)里多被動的方法保障數(shù)據(jù)可靠性,比如采用副本/備份和糾刪碼等等,我們在做怎么把故障預(yù)測和現(xiàn)有的被動的容錯機制做融合實現(xiàn)分級容錯,根據(jù)故障預(yù)測結(jié)果,假設(shè)最近一天之內(nèi)會產(chǎn)生故障,這個時候我們可能就有可能考慮,而且這個數(shù)據(jù)比較熱,考慮這個數(shù)據(jù)做副本或者遷移。
第二,如果故障短期內(nèi)不會出現(xiàn),可能是比較長期才會出現(xiàn),這個時候我們會考慮用一些更加低成本的容錯方式。
第三,去年做得工作是針對TLC SSD,QLC的SSD故障率跟TLC有很多不一樣的地方,故障率也沒有那么高,比大家想象的要好,所以怎么去針對QLC或者基于QLC這一類的固態(tài)硬盤做一些故障預(yù)測,我們可能會在這方面去開展相應(yīng)的研究。
(以上根據(jù)速記整理,未經(jīng)審定,詳情敬請關(guān)注會后專題www.datastoragesummit.com)
關(guān)于演講嘉賓:
吳晨濤,上海交通大學(xué)計算機科學(xué)與工程系教授,國家級青年人才,國家重點研發(fā)計劃首席科學(xué)家。CCF體系結(jié)構(gòu)專委會常委,上海市計算機學(xué)會存儲專委會主任。吳晨濤教授曾多次受邀在DOIT舉辦的全球閃存峰會、分布式存儲峰會等在內(nèi)的專業(yè)會議中發(fā)表演講,受到業(yè)界人士的廣泛關(guān)注。