鄧 玲,陜 振,馬連志
(中國航天科工集團(tuán)第二研究院 706所,北京 100854)
硬盤故障是存儲系統(tǒng)的主要故障之一,影響著存儲系統(tǒng)的可靠性。為了獲得好的故障預(yù)測結(jié)果,學(xué)者們利用smart數(shù)據(jù)和人工智能算法進(jìn)行故障預(yù)測,并采用二分類[1,2]、健康度[3,4]和剩余使用壽命[5,6]來度量硬盤健康狀態(tài)。相比于前兩者,剩余使用壽命的預(yù)測方法更有助于存儲系統(tǒng)的運維管理,本文主要研究預(yù)測硬盤剩余使用壽命(remaining useful life,RUL)的方法。
Lima等[5]使用深度RNN、LSTM和CNN網(wǎng)絡(luò)對硬盤剩余使用壽命進(jìn)行預(yù)測,驗證了硬盤剩余使用壽命是可預(yù)測的,但精度上不能滿足存儲系統(tǒng)的實際需求。Anantharaman等[6]分析了LSTM網(wǎng)絡(luò)和隨機森林預(yù)測器對硬盤RUL回歸預(yù)測的效果,發(fā)現(xiàn)隨機森林的預(yù)測更加精確。但本文發(fā)現(xiàn)在擴大取樣時間窗和增多硬盤數(shù)量后,運用隨機森林卻達(dá)不到預(yù)測效果。本文針對這一問題,提出了一種基于使用壽命長短劃分?jǐn)?shù)據(jù)集的方法,將使用壽命大于一定閾值的硬盤作為預(yù)測目標(biāo),具有更好的預(yù)測效果。
同時,存儲系統(tǒng)更加關(guān)心硬盤在臨近失效時的剩余使用壽命變化。有學(xué)者為提高模型在硬盤臨近失效時的預(yù)測精度,采用“Piece-wise”的預(yù)測方法[6,7],能在一定程度上提高預(yù)測精度,但因分段函數(shù)奇點的存在對預(yù)測結(jié)果會產(chǎn)生較大波動。本文提出一種基于硬盤健康狀態(tài)相似度算法,根據(jù)硬盤狀態(tài)之間的相似度對訓(xùn)練集進(jìn)行數(shù)據(jù)篩選,為待預(yù)測盤提供專有的預(yù)測器,以此提高預(yù)測精度。
隨機森林(RF)[8]是一種基于多個決策樹的集成學(xué)習(xí)方法。它是由多個基于決策樹構(gòu)建的評估器結(jié)合而成。隨機森林從原始的數(shù)據(jù)集中采取有放回的抽樣,構(gòu)造子數(shù)據(jù)集,并用子數(shù)據(jù)集構(gòu)建決策樹。當(dāng)在決策樹的構(gòu)造過程中分離一個節(jié)點時,未用到所有的待選特征,而是從所有的待選特征中隨機選取一定的特征,之后再在隨機選取的特征中選取最優(yōu)的特征。由于這種隨機性的原因,隨機森林能得到更好的預(yù)測正確率以及減輕過擬合現(xiàn)象的發(fā)生。隨機森林既可用作分類器,也可以用于回歸分析。在本文中,隨機森林用作硬盤剩余使用壽命的回歸預(yù)測器。
硬盤報告的Smart數(shù)據(jù)是多維的,每一個特征對訓(xùn)練結(jié)果的精度影響程度不一,不同特征的重要性不一樣。計算特征的重要性算法有多種,本文采用基于隨機森林的平均精確度減少(mean decrease accuracy)算法(MDA算法)。
MDA算法主要方法是通過打亂每個特征的特征值順序,度量順序變動對模型的精確率的影響,以此計算特征的重要性。對于一棵樹,用OOB樣本(袋外數(shù)據(jù))可以得到精度I1,然后隨機改變OOB中的第j列,保持其它列不變,對第j列進(jìn)行隨機的上下置換,得到精度I2。用I1-I2來刻畫特征j的重要性。其依據(jù)就是,如果一個特征很重要,那么其變動后會非常影響預(yù)測精度,如果預(yù)測精度沒有怎么改變,則說明特征j不重要。VI(variable importance)計算公式[9]如式(1)所示
(1)
回歸模型效果的判斷指標(biāo)有多種,本文選取均方根誤差(RMSE)和決定系數(shù)(R-square)來描述模型的優(yōu)劣。RMSE計算如式(2)所示,RMSE能直觀描述預(yù)測精度,是預(yù)測模型在應(yīng)用時重點關(guān)注的,它的值越小表示預(yù)測曲線和真實曲線越接近。R-square的數(shù)學(xué)表達(dá)如式(3)所示,分母為原始數(shù)據(jù)的離散程度,分子為預(yù)測數(shù)據(jù)和原始數(shù)據(jù)的誤差,二者相除可以消除原始數(shù)據(jù)離散程度的影響。R-square是通過數(shù)據(jù)的變化來表征一個擬合的好壞,理論上R2取值范圍是(-∞,1],正常取值范圍為[0,1]。R2越接近1,表明方程的變量對y的解釋能力越強,這個模型對數(shù)據(jù)擬合的也較好;R2越接近0,表明模型擬合的越差
(2)
(3)
“信息熵”[10](information entropy)是度量樣本集合純度最常用的一種指標(biāo),樣本集合D的信息熵計算方法如式(4)所示,Ent(D)的大小代表了集合的無序程度,越大代表集合越無序。在劃分?jǐn)?shù)據(jù)集前后信息發(fā)生的變化稱為信息增益,如果用熵度量數(shù)據(jù)集集合的信息,則信息增益為數(shù)據(jù)集劃分前后其對應(yīng)集合熵的變化
(4)
其中,pk表示集合D中第k類樣本所占的比例。
Backblaze公司收錄了其數(shù)據(jù)中心從2013年4月至2019年9月30日超過10萬塊數(shù)據(jù)硬盤的smart數(shù)據(jù)[11],該數(shù)據(jù)集是做硬盤故障預(yù)測最常用的開源數(shù)據(jù)集。每一條結(jié)果包含設(shè)備的序列號、型號、容量、故障和90個smart屬性的信息。根據(jù)Backblaze數(shù)據(jù)中心的報告,如果設(shè)備停止工作(不運轉(zhuǎn)或不接收命令),或者如果屬性5、187、188、197或198的智能自檢失敗,則設(shè)備將被標(biāo)記為故障。大多數(shù)型號的HDD不報告所有smart屬性。在這種情況下,未報告的值留空。此外,不同的制造商和設(shè)備型號可能會報告不同的屬性。為充分驗證模型效果,選取故障盤數(shù)量較多的希捷ST4000DM000盤作為實驗對象。從2013年至今,共失效3724塊,數(shù)據(jù)集選取了其中2015年1月至2019年6月發(fā)生故障的3097塊硬盤的smart數(shù)據(jù)作為訓(xùn)練和驗證集。
在實際系統(tǒng)中,訓(xùn)練集和待預(yù)測數(shù)據(jù)是相互獨立的,因此對訓(xùn)練集和驗證集進(jìn)行劃分時需要以盤為最小單元,才能真正驗證出模型的可用性。本文對發(fā)生故障的3097塊硬盤,按8∶2的比例分給訓(xùn)練集和驗證集。
組件或系統(tǒng)的剩余使用壽命(RUL)定義為從當(dāng)前時間到使用壽命結(jié)束的時間[12],因此參與訓(xùn)練和驗證的樣本必須是已經(jīng)發(fā)生故障的硬盤報告的smart信息。對于已經(jīng)發(fā)生故障的硬盤,其剩余使用壽命變化趨勢是一條隨著使用時間增大而減小的直線,并在硬盤失效時減小到0。
Anantharaman等[6]在2016年10月到2017年12月期間失效的100塊硬盤的數(shù)據(jù)集上進(jìn)行實驗,但根據(jù)Backblaze公司的統(tǒng)計數(shù)據(jù)[13], 在該段時間內(nèi)型號為ST4000DM000共有1274塊硬盤發(fā)生故障,不能明確Anantharaman等的數(shù)據(jù)集。將該段時間發(fā)生失效的1274塊硬盤按8∶2劃分給訓(xùn)練集和驗證集,即是訓(xùn)練集1020塊硬盤、驗證集254塊硬盤。利用隨機森林對訓(xùn)練集進(jìn)行學(xué)習(xí),發(fā)現(xiàn)通過調(diào)參后預(yù)測器產(chǎn)生的預(yù)測結(jié)果的均方根誤差(RMSE)為155.45,并且隨著訓(xùn)練集的逐步增大,預(yù)測器對同一個驗證集的RMSE逐步增大。如表1所示,訓(xùn)練集train0、train1、train2是隨著采樣時間窗口擴大和硬盤數(shù)量增多逐漸增大的,它們構(gòu)建的預(yù)測器出現(xiàn)欠擬合現(xiàn)象,并且隨著訓(xùn)練集增大,欠擬合現(xiàn)象越來越嚴(yán)重。訓(xùn)練集采樣時間窗口大小嚴(yán)重影響預(yù)測器的預(yù)測效果,這說明了Anantharaman等簡單的運用隨機森林對硬盤剩余使用壽命進(jìn)行預(yù)測是不可取的。
表1 不同預(yù)測器對驗證集的預(yù)測結(jié)果
預(yù)測器出現(xiàn)欠擬合的直接原因是訓(xùn)練集中新加了數(shù)據(jù),特征的取值有所不同,利用MDA對訓(xùn)練集trian0進(jìn)行特征重要性分析,結(jié)果如圖1所示。smart_9_raw記錄了硬盤累計通電時間,該數(shù)值直接累計了設(shè)備通電的時長。圖1表明特征smart_9_raw的重要性高于90%,對預(yù)測結(jié)果有決定性的作用。而從表1看,訓(xùn)練集最大的不同是采集的時間跨度,硬盤失效越晚,使用壽命就越長,smart_9_raw的取值范圍越大。因此考慮訓(xùn)練集中硬盤壽命長短對訓(xùn)練結(jié)果的影響,在大型存儲系統(tǒng)中,硬盤從上機到發(fā)生故障期間不輕易斷電,因此設(shè)備通電時長和使用時長幾乎相等,如果定義硬盤最大通電時間為硬盤失效時的通電時間,則硬盤的使用壽命為最大通電時間。圖2是表1中各個訓(xùn)練集中硬盤使用壽命分布情況,可以看出隨著采集時間跨度的增大,使用壽命分布的軸心不斷右移,由于這種變化導(dǎo)致預(yù)測器的預(yù)測效果越來越差。
圖1 特征重要性
圖2 不同數(shù)據(jù)集中硬盤使用壽命分布
2.2節(jié)證明了數(shù)據(jù)集增大會降低預(yù)測器的預(yù)測精度,但同時也表示了如果通過某種方式對數(shù)據(jù)集進(jìn)行劃分,在小的數(shù)據(jù)集上,預(yù)測器會有好的表現(xiàn)。為了驗證硬盤使用壽命分布對預(yù)測結(jié)果的影響,找到一種數(shù)據(jù)集分割方式,借鑒決策樹構(gòu)建構(gòu)過程中的數(shù)據(jù)集劃分策略[10],找到最優(yōu)特征劃分?jǐn)?shù)據(jù)集。數(shù)據(jù)集的無序程度可以用熵來度量,選擇最優(yōu)特征對數(shù)據(jù)集進(jìn)行分割,目的是將無序的數(shù)據(jù)變得更加有序,在按特征劃分?jǐn)?shù)據(jù)集時,劃分前后熵減小最多的特征就是最好的選擇。將硬盤使用壽命life作為特征加入到數(shù)據(jù)集中,為配合算法,使得結(jié)果更加明顯,對數(shù)據(jù)集數(shù)據(jù)進(jìn)行二值化,得到的結(jié)果見表2,表中特征欄由特征ID表示,從表中可以看出數(shù)據(jù)集劃分過程中只有特征9(smart_9_raw)、241(smart_241_raw)、242(smart_242_raw)、life有信息增益,特征life是最優(yōu)分割的特征,按照硬盤使用壽命長短進(jìn)行數(shù)據(jù)集劃分能提高數(shù)據(jù)集的有序程度。
在實際系統(tǒng)中,硬盤設(shè)計的使用壽命在3年以上,存儲系統(tǒng)出現(xiàn)大規(guī)模硬盤失效一定是在運行了一定年限后,新盤出現(xiàn)故障的概率非常小。Backblaze數(shù)據(jù)中心在2019年6月30日,共19 569塊正常運轉(zhuǎn)的硬盤通電時長分布如圖3所示。從圖中可以看出,99.9%硬盤的通電時長大于900天,這表明在這些硬盤中,至少99.9%的硬盤的使用壽命大于900天。2015年1月至2019年6月發(fā)生故障的3097塊希捷STM4000DM000硬盤,其使用壽命分布規(guī)律如圖4所示。Backblaze數(shù)據(jù)中心的希捷STM4000DM000硬盤年統(tǒng)計數(shù)量見表3[14],由表3知,在2015年至2019年間,硬盤年平均數(shù)為27 712塊,因為硬盤數(shù)量變動較大,用年平均數(shù)代表硬盤總數(shù)。而由圖4知2015年至2019年間發(fā)生故障的盤使用壽命低于900天硬盤的數(shù)量為1659塊,約占硬盤總數(shù)的5.99%,符合實際系統(tǒng)中硬盤失效情況。
表2 按特征劃分?jǐn)?shù)據(jù)集集合前后熵的變化
圖3 2019年6月30日硬盤累計通電時長統(tǒng)計
圖4 數(shù)據(jù)集硬盤使用壽命統(tǒng)計
表3 年硬盤數(shù)量統(tǒng)計
按使用壽命的長短對數(shù)據(jù)集進(jìn)行劃分后,信息增益表明,劃分出的子數(shù)據(jù)集構(gòu)建的預(yù)測器只對壽命在同一區(qū)間的硬盤有較好的預(yù)測效果。而對于一塊待預(yù)測剩余使用壽命的硬盤,其使用壽命是未知的,這就造成了不知道用哪個子數(shù)據(jù)集構(gòu)建的預(yù)測器對該硬盤進(jìn)行預(yù)測。因此需要選擇一個合適的劃分點,使得預(yù)測目標(biāo)占主要地位,而硬盤使用壽命大于900天的硬盤數(shù)占總硬盤數(shù)的94.01%,將預(yù)測目標(biāo)選為使用壽命大于900天的硬盤滿足實際需求。
在實際應(yīng)用中,人們更加關(guān)心在硬盤臨近失效時預(yù)測模型的預(yù)測精度,準(zhǔn)確的預(yù)測才能對存儲系統(tǒng)的運維有幫助。在臨近失效狀態(tài)下,存儲系統(tǒng)對剩余使用壽命更加敏感,若實際剩余使用壽命(RUL)為50天,而預(yù)測值大于實際值50天,則預(yù)測結(jié)果表明硬盤還很健康,預(yù)測模型起不到作用;若實際RUL為100天,而預(yù)測值小于實際值90天,則存儲系統(tǒng)會進(jìn)行故障處理,造成資源的浪費。因此需要提高剩余使用壽命較小時的預(yù)測精度,最簡單、有效的提高預(yù)測精度的方法是減少訓(xùn)練集里的噪聲。通用的預(yù)測器已經(jīng)得到了硬盤大致的剩余使用壽命,在硬盤的RUL低于一定閾值時,就可以進(jìn)行訓(xùn)練集去噪,本文提出一種硬盤健康狀態(tài)相似度的計算方法,通過按相似度大小篩選數(shù)據(jù),減少訓(xùn)練集里的噪聲。
硬盤按一天一次的頻率報告smart數(shù)據(jù),相鄰一天或幾天的數(shù)據(jù)相差較小。利用MDA算法時,隨機森林構(gòu)建樹的過程中隨機選取數(shù)據(jù)集中的樣本,剩下的袋外數(shù)據(jù)(OOB)都能在被選取的數(shù)據(jù)中找到與其接近的樣本,同一硬盤的數(shù)據(jù)被打散了,因此在利用MDA算法求特征的重要性時,并不能體現(xiàn)硬盤是一個整體這一特性,對于一些特征的重要性計算和實際有所差別?;谟脖P報告的smart序列是以硬盤為基本單元的這一思想,將袋外數(shù)據(jù)改換為驗證集數(shù)據(jù),并對式(1)作了修改,特征重要性VI計算方法如式(5)所示。根據(jù)式(5),重新計算特征的重要性如圖5所示,對比圖1和圖5,特征的重要性變化很大,但重要的特征基本未變
(5)
圖5 修正的特征重要性
硬盤健康狀態(tài)由好變壞是一個過程,剩余使用壽命接近的硬盤健康狀態(tài)更為相似。硬盤的smart數(shù)據(jù)是時間序列,采集數(shù)據(jù)的時間跨度、硬盤的使用壽命不一樣,得到的序列長度也不一樣。利用硬盤通電時間累計統(tǒng)一時間軸,基于歐式距離給出在t時刻兩硬盤狀態(tài)的相似度如式(6)所示。當(dāng)硬盤的剩余使用壽命小于設(shè)定閾值時,硬盤的剩余使用時間也即將告罄,利用硬盤狀態(tài)相似度針對性的為預(yù)測目標(biāo)匹配出相應(yīng)的訓(xùn)練集并訓(xùn)練出預(yù)測模型,以便更精準(zhǔn)預(yù)測
(6)
希捷ST4000DM000硬盤的smart特征經(jīng)過數(shù)據(jù)清洗后有23個特征可參與訓(xùn)練,由于隨機森林預(yù)測器具有不需要進(jìn)行特征選擇的優(yōu)點,將23個特征全部用于訓(xùn)練。這些特征值域范圍很廣,采用式(7)的歸一化方法,將特征值值域歸一化到區(qū)間[0,1]上,以便提高模型的收斂速度和預(yù)測精度
(7)
在2.5節(jié)中,明確了預(yù)測目標(biāo)是使用壽命大于900天的硬盤,而不同訓(xùn)練集的劃分方法影響預(yù)測精度。由圖4知,硬盤的使用壽命分布在各個時間區(qū)間里,取值范圍為[0,+∞), +∞代表了未知大小。預(yù)測目標(biāo)的使用壽命取值范圍為[900,+∞),研究壽命小于900天硬盤的數(shù)據(jù)對預(yù)測壽命大于900天硬盤剩余使用壽命的影響,則訓(xùn)練集取值范圍為[x,+∞)。調(diào)節(jié)訓(xùn)練集分割起始點x的值將得到不同的訓(xùn)練集,不同訓(xùn)練集構(gòu)建的預(yù)測器有不同的精度,表4給出了數(shù)據(jù)分割策略。
表4 訓(xùn)練集分割策略
按表4進(jìn)行訓(xùn)練集分割,驗證集包含了287塊硬盤的歷史smart數(shù)據(jù),其預(yù)測結(jié)果的RMSE見表5,決定系數(shù)變化如圖6所示。由表5知,分割點不同的訓(xùn)練集,生成預(yù)測器的預(yù)測結(jié)果精度差距大,分割得到的數(shù)據(jù)集中硬盤的使用壽命分布和驗證集越接近,預(yù)測精度越高,這和利用信息增益的驗證方法得到的結(jié)果一致。當(dāng)分割點取到0時,預(yù)測結(jié)果的RMSE達(dá)到了293.98,這表明不進(jìn)行數(shù)據(jù)集分割的預(yù)測效果是很差的,簡單的利用隨機森林預(yù)測硬盤剩余使用壽命的方法是不可行的。圖6也表明了模型的決定系數(shù)(R2)隨著分割點靠近900天而增加。圖7是在分割點為900天,RMSE為104.97天時,隨機森林預(yù)測器對硬盤序列號為S300XRSS的預(yù)測結(jié)果,圖中橫坐標(biāo)是使用時間,縱坐標(biāo)是硬盤剩余使用壽命(RUL),可以看出預(yù)測曲線和真實曲線十分接近。
表5 訓(xùn)練集不同分割點對應(yīng)的RMSE
圖6 決定系數(shù)隨分割點變化趨勢
圖7 S300XRSS的RUL預(yù)測曲線和實際曲線對比
在硬盤臨近失效時,通常有兩種處理方法。第一種方法是不對數(shù)據(jù)集做任何處理,公平對待數(shù)據(jù)集里的樣本。第二種方法是采用“Piece-wise”算法,即是預(yù)測的目標(biāo)函數(shù)是一個分段函數(shù),剩余使用壽命在閾值之上為常數(shù),在閾值之下為線性函數(shù),目標(biāo)函數(shù)會有奇點存在。與前兩種處理算法不同,本文采用篩選訓(xùn)練集的方式提高硬盤臨近失效時預(yù)測模型的精度。
若設(shè)降噪開始的閾值為200天,當(dāng)某一硬盤的剩余使用壽命(RUL)低于200天時,計算該硬盤和訓(xùn)練集包含的硬盤之間健康狀態(tài)相似度,按從大到小排列,選取前50%(可根據(jù)硬盤數(shù)量調(diào)整比例)對應(yīng)的硬盤數(shù)據(jù)組成新的訓(xùn)練集,新訓(xùn)練集生成的預(yù)測器是該硬盤獨享的。表6是統(tǒng)計了50塊硬盤,對比普通預(yù)測、分段預(yù)測和進(jìn)行訓(xùn)練集篩選3種方式在硬盤臨近失效時預(yù)測結(jié)果,由表6知,訓(xùn)練集篩選能較大提高模型在硬盤臨近失效時的預(yù)測精度。
表6 訓(xùn)練集篩選前后預(yù)測對比
仍舊對S300XRSS硬盤RUL進(jìn)行預(yù)測,其預(yù)測曲線和真實曲線如圖8所示。圖8中畫圈的地方是RUL小于200天后,進(jìn)行訓(xùn)練集降噪得到的結(jié)果。和圖7相比,圖8的預(yù)測結(jié)果更接近真實值,達(dá)到提高精度的目的。
圖8 S300XRSS的RUL預(yù)測優(yōu)化結(jié)果
實際存儲系統(tǒng)中,硬盤在長時間使用后,故障開始增多,準(zhǔn)確的故障預(yù)測有利于存儲系統(tǒng)的運維。本文明確了預(yù)測目標(biāo),與其它無差別預(yù)測不同,本文只考慮使用壽命大于900天硬盤,即運行900天不失效的硬盤的剩余使用壽命預(yù)測。針對這一類盤,著重研究了使用壽命在不同范圍的訓(xùn)練數(shù)據(jù)對隨機森林預(yù)測器預(yù)測效果的影響,發(fā)現(xiàn)當(dāng)訓(xùn)練集為與其壽命相近的盤的數(shù)據(jù)時,預(yù)測效果最佳,這說明使用壽命接近的硬盤健康狀態(tài)變化更加相似。在此基礎(chǔ)上,針對剩余使用壽命較小即硬盤臨近失效時,提出訓(xùn)練集降噪的方法,有效提升了預(yù)測精度。