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