王小毫,陳雯柏,張波,劉輝翔,王一群
(北京信息科技大學 自動化學院,北京 100192)
數據是當代社會核心的資產,包括固態(tài)硬盤(solid state drive,SSD)和硬盤驅動器(hard disk drive,HDD)在內的存儲磁盤一旦損壞,便會導致數據丟失甚至造成經濟損失。根據 存儲服務商Backblaze的報告[1],Backblaze公司2021年磁盤的年故障率為1.01%,一年有1 800多個存儲磁盤故障。在磁盤壽命終結前完成數據的遷移和備份是十分重要的。
最常見的HDD故障預測方法是使用自我監(jiān)控分析和報告技術(self-monitoring analysis and reporting technology,SMART)監(jiān)控HDD,將得到的數據進行分析進而預測磁盤故障。Lu等[2]提出SMART監(jiān)控數據在故障發(fā)生之前的幾天時間里變化不夠頻繁,SMART不具有強大的提前預測能力。目前,借助深度學習提取特征的能力,使用深度學習對HDD進行剩余使用壽命(remaining useful life,RUL)預測成為主流。Pereira等[3]使用健康的磁盤建立模型,用健康磁盤來檢測異常實例。Zeydan等[4]使用隨機森林分類器在合理的時間內將HDD的剩余使用壽命按照臨界、高和低狀態(tài)進行三分類。Lima等[5]提出了一種新的類編碼方法預測硬盤驅動器壽命。Wang等[6]提出自適應 Rao-Blackwellized粒子濾波器(Rao-Blackwellized particle filter,RBPF)誤差跟蹤報警方法,使用當前觀測數據和相鄰數據跟蹤每個硬盤中的退化信息,進而確定HDD故障。在重建方法基礎之上,Pereira等[7]還采用了潛在空間降維方法的思想,使用自動編碼器的異常檢測方法對HDD進行故障檢測。Han等[8]提出了一個通用的流挖掘框架,用于預測具有概念漂移自適應的HDD故障。Wang等[9]針對HDD的SMART監(jiān)控數據中健康和故障數據高度混合并且不平衡情況,提出了一種基于長短期記憶網絡(long short-term memory,LSTM)和注意力機制的多實例長期數據分類方法來預測HDD故障。Zhang等[10]使用不同存儲介質的遷移學習有效地預測磁盤故障,實現小數據下HDD模型故障預測。在長周期的預測故障中,Wu等[11]使用熵來選擇最相關的預測屬性來提煉SMART監(jiān)控數據,提出了基于多通道卷積神經網絡的LSTM(multiple channel convolutional neural network based LSTM,MCCNN-LSTM)模型來預測HDD在未來幾天是否會發(fā)生磁盤故障。Basak等[12]建立了具有廣泛數據預處理的在線預測方法,能夠以較高精度預測一個HDD在未來10 d內是否會出故障。Coursey等[13]在硬盤發(fā)生故障前60 d,通過給出一系列HDD數據,能夠以較高的準確度預測HDD剩余的使用壽命。Lima等[14]采用自定義間隔的RUL分類,對HDD預測進行更細粒度的控制,在長期分類任務中表現較好。Santo等[15]提出了一個基于LSTM的模型,結合SMART監(jiān)控數據和時間,能夠判斷HDD在45 d內是否出現故障。
以上的壽命預測是對HDD進行分類,進而判斷是否會出現故障?;貧w方法是在預測故障基礎上預測HDD多久失效,方便管理員更深入地了解磁盤狀況,并支持更好的磁盤替換計劃和管理。Anantharaman等[16]直接預測硬盤驅動器的剩余使用壽命,使用隨機森林和LSTM兩種方法對HDD壽命進行回歸預測。Lima等[17]評估了在HDD故障預測任務中兩種最常見的深度學習架構:卷積神經網絡(convolutional neural network,CNN)和LSTM。
在這些剩余使用壽命預測方法中,用的神經網絡模型基于LSTM和CNN的居多,很少使用注意力機制,并且模型幾乎全是對HDD建模預測,幾乎沒有對SSD的預測,這是因為已有公開的磁盤SMART監(jiān)控數據中HDD的故障數據占絕大部分,而SSD的故障數據極少。因此,本文提出一種基于Transformer預訓練的固態(tài)硬盤剩余使用壽命預測方法,首先在源任務上使用HDD訓練一個剩余壽命預測初始模型,然后在目標任務SSD剩余使用壽命上使用樣本數量少的SMART監(jiān)控數據對該模型進行精調,實現對固態(tài)硬盤剩余壽命的準確預測。
本文方法中的磁盤數據包括HDD數據和SSD數據,都是二維張量,用行和列表示:列為SMART監(jiān)控數據,行為每個特征的數據序列。每個磁盤的SMART二維數據經過時間窗口處理后,得到的樣本尺寸表示為(w,m),其中w為窗口大小,也即樣本長度,m為特征數量,這樣每個訓練樣本X∈w×m,包含多個多元時間序列特征向量xt∈m,即X=[x1,x2,…,xt,…,xw]。
Transformer[18]是一個序列到序列模型,可以在各種序列學習任務上表現出卓越的性能。在此基礎上,Zerveas[19]等提出了多元時間序列數據通用模型架構。本文方法中,首先將每個樣本數據的原始特征向量xt歸一化為0~1之間的數值,然后線性映射到d維向量空間,映射操作表示為
ut=Wpxt+bp
(1)
式中:Wp∈d×m和bp∈d均是可以學習的參數;ut∈d(t=0,1,2,…,w)是模型的輸入向量,對應于自然語言處理任務的詞向量。Transformer是一種對輸入順序不敏感的前饋架構,為了使時間序列的序列性質起作用,需要添加可學習的位置編碼Wpos∈w×d,最終得到含有位置信息的輸入張量:
Uin=U+Wpos,U=[u1,u2,…,ut,…,uw]∈w×d
(2)
最后將含有位置信息的張量輸入到Transformer的編碼器,得到樣本特征的最終表示張量Z=[z1,z2,…,zt,…,zw]∈w×m。本文方法構建的是回歸模型,每條訓練樣本對應的輸出為一個數字,對應剩余使用天數,將最終特征張量Z∈w×m扁平化得到w×m,通過全連接層便得到回歸結果單個樣本得到的回歸結果表示為:
(3)
車萬翔等[20]研究表明,預訓練模型能夠充分利用大模型、大數據和大計算的特點,使幾乎所有自然語言處理任務性能都得到顯著提升。Bodapati[21]也指出序列學習方法需要仔細調整參數才能成功。與隨機初始化的序列模型相比,顯然預訓練的序列模型具有更好的性能。本文使用的預訓練方式是參數遷移[22-23],這是因為SSD和HDD的數據都是基于SMART監(jiān)控得到,數據中蘊含意義是一致的,因此使用HDD數據集做預訓練可以得到不錯的效果。
本文在進行SSD剩余使用壽命模型訓練前,先使用HDD數據訓練HDD剩余使用壽命模型。使用經過時間窗口處理和掩碼處理得到的多維HDD的SMART監(jiān)控數據作為輸入,先經過全連接層對輸入數據進行處理,得到輸出對應于自然語言處理任務的詞向量,緊接著添加可學習的位置編碼,這樣便能使時間序列的序列性質起作用,接下來將含有位置編碼的向量輸入到Transformer的編碼器,得到的特征輸出經過扁平化處理,并且按照掩碼遮住部分數據,使得多維數據一維化并去掉無效數據,最后設置全連接層為一個單元,經過全連接層后得到最終HDD的RUL值?;诖说玫搅薍DD預訓練模型,最后用數據量少的SSD數據做微調。整個過程如圖1所示。
圖1 預訓練下SSD剩余使用壽命預測
本文使用的數據集是公開的Backblaze存儲磁盤數據集[24],它包含了日常使用中HDD和SDD的SMART監(jiān)控信息。從2013年到2021年,該數據中心記錄了203 168個HDD以及3 760個SSD的日常 SMART監(jiān)控數據。在Backblaze數據中心,維護人員每天都會對運行中的磁盤進行快照,此快照包括基本設備信息以及磁盤報告的 SMART 統(tǒng)計信息。SMART監(jiān)控基本信息是:date、serial_number、model、capacity_bytes、failure,并且SMART數據屬性不會超過255對。Backblaze記錄數據中基本屬性詳細內容如表1所示。
表1 Backblaze記錄數據中的基本屬性
部分SMART監(jiān)控數據的屬性含義如表2所示。
表2 部分SMART屬性含義
數據集SMART監(jiān)控數據至少80列,不同的SMART屬性監(jiān)測到的原始值具有不同量綱,為了統(tǒng)一計算,本文首先使用最小—最大歸一化方法將所有原始值和標準化值都統(tǒng)一到[0,1]的范圍內。每個磁盤的SMART監(jiān)控數據為X=[x1,…,xi,…,xr]∈r×m,其中m為SMART屬性的數量,r為磁盤從新購入使用到失效時記錄到的數據的行數。磁盤特征向量每個數據需要經過最小—最大歸一化處理:
(4)
圖2 滑動時間窗口和掩碼
以上針對的是對于磁盤SMART數據記錄條數大于等于w的情況。當數據記錄不充足時,用0補齊到w,然后用掩碼機制掩蓋補齊的0,這樣便能充分利用數據。并且當模型用于預測時,無須湊齊w條記錄作為輸入,大大增加了模型實用性。最后得到的訓練數據為X∈w×m,對應的掩碼為M∈k×m。
實驗在Ubuntu操作系統(tǒng)上運行,處理器為Intel(R) Xeon(R) CPU E5-2620 v4@2.10 GHz,訓練卡為NVIDIA GeForce TITAN XP。本文使用Backblaze數據中心2015年到2017年的HDD數據做預訓練。抽取3年時間的HDD失效標志數據共有4 409條,即對應共有4 409個HDD故障,其中含有重復數據22條,去掉重復數據后最終可用于預訓練的HDD共4 387個,每個HDD包含從上電使用到失效的按天記錄的多條SMART監(jiān)控數據。預訓練后使用SSD的SMART數據進行微調。SSD訓練數據使用Backblaze數據中心從2018年到2022年3月底的SSD數據集,同樣先篩選失效標志的數據,抽取到4年時間的SSD失效標志數據共有145條,即對應共有145個SSD故障,每條SSD數據包含SMART監(jiān)控數據54個不同的原始值和對應的54個標準化值。因為不同廠商記錄的SMART監(jiān)控數據屬性不一致,經過篩選盡可能保留不同廠商公共的SMART監(jiān)控數據屬性。最終每個SSD包含19個不同SMART數據的原始值和對應的19個標準化值。
針對磁盤剩余使用壽命的回歸問題,本文使用均方誤差(mean square error,MSE)作為評價指標,記為EMS:
(5)
式中:di為RUL預測值與真實值的差,i=1,2,…,N。MSE的值越小,模型的預測能力越好。
預訓練和SSD剩余使用壽命預測模型選取使用的SMART監(jiān)控數據屬性為HDD和SSD公共的屬性,最終使用7組包含原始值和標準化值的SMART監(jiān)控數據,對應標號是1、9、12、192、194、241、242,這里標號1對應SMART 1屬性,依次類推編號242對應SMART 242屬性。選取故障前60 d以內的數據作為輸入,最少抽取20 d數據,加上掩碼機制補齊到40 d,以有效數據的最后一天作為真實RUL輸出,這樣RUL最大為40 d,最小為1 d。本文方法構建的模型的參數設置如表3所示。
表3 模型參數
選取了預訓練數據中10%的數據用作驗證,訓練10 000次后,預訓練過程訓練誤差和驗證誤差如圖3所示。
圖3 預訓練過程訓練誤差和驗證誤差
訓練誤差和驗證誤差下降到趨于平緩表明此模型訓練到位。接下來使用SSD數據進行微調,去除RUL不到20 d的SSD數據,最后可用129個固態(tài)硬盤數據,使用60%的數據訓練,剩下的51個SSD做測試,訓練1 000次后,最后微調效果如圖4所示。
圖4 目標任務微調最終預測結果
目前的存儲磁盤剩余使用壽命預測幾乎都是對HDD進行建模預測。為了證明本文方法的可行性,用本文方法同近幾年的HDD剩余使用壽命方法進行比較,所用指標有MSE、均方根誤差(root mean square error,RMSE)和平均絕對誤差(mean absolute error,MAE),與常用的剩余使用壽命方法LSTM[17]和CNN[18]對比結果如表4所示。
表4 存儲磁盤剩余使用壽命預測模型的對比結果
由表4可以看出,在固態(tài)硬盤RUL預測(處理帶有時間信息多維序列數據的回歸問題)上,對于數據充足的HDD,直接使用多維Transformer模型能取得很好的效果。在數據少的時候,直接對SSD訓練效果甚微,使用預訓練方法能有更好的表現,能達到使用充足數據訓練的HDD剩余使用壽命預測模型的效果。并且本模型在短期的剩余使用壽命預測中效果顯著,所提出的方法在預測任務中非常有前景,尤其在數據不充足的情境中具有重要意義。
本文提出一種基于Transformer的預訓練固態(tài)硬盤剩余使用壽命預測方法,通過提取HDD和固態(tài)硬盤SMART監(jiān)控數據相同屬性,用數據量多的HDD數據進行預訓練,得到預訓練模型后用數據量少的固態(tài)硬盤數據進行微調,最終實現了固態(tài)硬盤的剩余使用壽命預測。本文使用Transformer的掩碼機制,使得輸入數據不再局限于固定的時間窗寬度,不固定的采樣增加了訓練數據的量并且在實際使用中能更靈活地進行預測。
因固態(tài)硬盤數據不足的局限,本文方法目前僅能預測40 d以內的剩余使用壽命。在未來,隨著固態(tài)硬盤SMART監(jiān)控數據增多,我們將使用時間跨度更長的固態(tài)硬盤數據提高模型精度,以便達到更長時間的剩余使用壽命預測,并構建一個統(tǒng)一的磁盤使用壽命預測模型,能同時覆蓋硬盤驅動器和固態(tài)硬盤。