董 勇,蔣艷凰,盧宇彤,周恩強(qiáng)
(1.國防科學(xué)技術(shù)大學(xué)計(jì)算機(jī)學(xué)院,湖南 長沙410073;2.高性能計(jì)算國家重點(diǎn)實(shí)驗(yàn)室,湖南 長沙410073)
數(shù)據(jù)是信息系統(tǒng)的核心,其可用性是保證信息系統(tǒng)正常運(yùn)行的關(guān)鍵。存儲系統(tǒng)負(fù)責(zé)保存數(shù)據(jù),提供數(shù)據(jù)訪問接口,是信息系統(tǒng)的主要組成部分之一,其可靠性一直是研究人員與工業(yè)界關(guān)注的焦點(diǎn)。到目前為止,磁盤仍然是存儲系統(tǒng)的核心組成部分。磁盤能否提供穩(wěn)定可靠的數(shù)據(jù)訪問能力,直接影響整個(gè)存儲系統(tǒng)的可靠性。本文基于磁盤的SMART數(shù)據(jù),采用機(jī)器學(xué)習(xí)的方法預(yù)測磁盤故障,實(shí)現(xiàn)提高存儲系統(tǒng)可靠性和可用性的目的。
磁盤是磁、電和機(jī)械的混合體,其固有結(jié)構(gòu)決定了磁盤本身的可靠性不高。Schroeder B[1]的統(tǒng)計(jì)說明,磁盤故障導(dǎo)致系統(tǒng)失效的比例達(dá)18.1%~49.1%?,F(xiàn)有的大規(guī)模存儲系統(tǒng)往往包含數(shù)百甚至數(shù)千塊磁盤,大大增加了磁盤出現(xiàn)故障的幾率。傳統(tǒng)的提高數(shù)據(jù)可靠性的方法主要是冗余磁盤陣列 RAID(Redundant Arrays of Inexpensive Disks)技術(shù),通過采用數(shù)據(jù)冗余,容忍單個(gè)或多個(gè)磁盤的故障,并通過數(shù)據(jù)編碼方式恢復(fù)錯(cuò)誤數(shù)據(jù)。除了在磁盤層面通過數(shù)據(jù)冗余提高可靠性,還可以在系統(tǒng)層面通過數(shù)據(jù)副本技術(shù)提高數(shù)據(jù)的可靠性。Google的集群系統(tǒng)中文件系統(tǒng)GFS[2]通過采用隨機(jī)副本技術(shù)來提高數(shù)據(jù)修復(fù)能力。Renesse R[3]等研究了鏈?zhǔn)礁北炯夹g(shù)和偽隨機(jī)的分布方法,可以提高數(shù)據(jù)可靠性。
上述技術(shù)的主要出發(fā)點(diǎn)是“容忍”磁盤或者系統(tǒng)故障,當(dāng)故障發(fā)生時(shí),系統(tǒng)仍然能夠提供數(shù)據(jù)訪問服務(wù),屬于被動容錯(cuò)。在此基礎(chǔ)上,出現(xiàn)了磁盤的主動容錯(cuò)技術(shù)。SMART(Self-Monitoring,A-nalysis and Reporting Technology)是典型的主動容錯(cuò)技術(shù)。該技術(shù)監(jiān)控磁盤運(yùn)行過程中的多項(xiàng)參數(shù),包括磁盤的尋道錯(cuò)、奇偶校驗(yàn)錯(cuò)等信息。基于SMART的主動容錯(cuò)主要是采用閾值方法。廠商首先設(shè)定磁盤SMART屬性閾值,當(dāng)實(shí)際監(jiān)測到的SMART屬性值超過閾值則報(bào)警,提示磁盤即將故障,這種方法簡單易行,但是預(yù)警準(zhǔn)確率較低。目前對于磁盤的運(yùn)行狀態(tài),研究結(jié)果表明,使用單一的或是簡單的SMART屬性值還不能準(zhǔn)確地預(yù)測磁盤故障[4]。目前磁盤廠商采用的故障預(yù)測閾值判定方法,磁盤故障誤報(bào)率為0.1%,而能夠預(yù)測的磁盤故障僅有3%~10%[5]。
機(jī)器學(xué)習(xí)方法[6]基于大量數(shù)據(jù),通過對數(shù)據(jù)的分析,從中發(fā)現(xiàn)蘊(yùn)含的規(guī)律,實(shí)現(xiàn)“學(xué)習(xí)”的目的,從而提高系統(tǒng)本身的能力。在磁盤SMART數(shù)據(jù)的基礎(chǔ)上,采用機(jī)器學(xué)習(xí)方法,實(shí)現(xiàn)對磁盤故障的預(yù)測,達(dá)到及時(shí)對故障磁盤進(jìn)行處理,并增強(qiáng)存儲系統(tǒng)可靠性的目的。
本文采用四種典型的機(jī)器學(xué)習(xí)方法:反向傳播神經(jīng)網(wǎng)絡(luò) BPNN(Back Propagation Neural Network)、決策樹(Decision Tree)、支持向量機(jī)SVM(Supported Vector Machine)和貝葉斯方法(Na?ve Bayes)實(shí)現(xiàn)對磁盤故障的預(yù)測。上述方法的實(shí)現(xiàn)源自 LibEDM[7]。本文所使用的數(shù)據(jù)集包含23 395個(gè)磁盤SMART信息[8]。通過對訓(xùn)練集和測試集的構(gòu)建,上述四種機(jī)器學(xué)習(xí)方法可以獲得較高的故障預(yù)測準(zhǔn)確度,這些結(jié)果比現(xiàn)有的磁盤故障預(yù)測方法要好。
SMART技術(shù)源自IBM在1992年開發(fā)的預(yù)測故障分析技術(shù) PFA(Predictive Failure Analysis)。該技術(shù)周期性測量磁盤的屬性,并且在超過預(yù)定義的閾值后,向用戶發(fā)送一個(gè)報(bào)警信息。工業(yè)界接受了PFA技術(shù),并且在1994年形成了SMART標(biāo)準(zhǔn),用于IDE/ATA和SCSI磁盤的可靠性預(yù)測。SMART的發(fā)展經(jīng)歷了三個(gè)階段:(1)初始的SMART通過監(jiān)控在線活動,提供對故障的預(yù)測;(2)后續(xù)版本通過增加自動的離線掃描來監(jiān)控額外的操作,從而提供故障預(yù)測;(3)最后的SMART版本不僅監(jiān)控磁盤的活動,而且增加了故障預(yù)防機(jī)制,嘗試檢測并修復(fù)扇區(qū)錯(cuò)誤。SMART III通過空閑階段“離線數(shù)據(jù)收集”測試所有的扇區(qū),并確認(rèn)磁盤的健康狀況。作為行業(yè)標(biāo)準(zhǔn),SMART規(guī)定了磁盤制造廠商應(yīng)遵循的相關(guān)準(zhǔn)則,目前幾乎所有磁盤廠商均支持SMART技術(shù)。SMART信息保留在磁盤的系統(tǒng)保留區(qū)(Service Area)內(nèi),這個(gè)區(qū)域一般位于磁盤最前面幾十個(gè)物理磁道,由廠商寫入相關(guān)內(nèi)部管理程序。基于SMART的閾值報(bào)警功能,簡單易行,但是預(yù)警準(zhǔn)確率較低。
在上述閾值方法的基礎(chǔ)上,研究人員提出了多種基于統(tǒng)計(jì)方法和機(jī)器學(xué)習(xí)方法的磁盤故障主動預(yù)測技術(shù)。Hughes G F[9]在2002年提出了兩個(gè)改進(jìn)的SMART算法,采用統(tǒng)計(jì)假設(shè)測試方法,根據(jù)秩和檢驗(yàn)(Rank Sum Test)對磁盤故障進(jìn)行預(yù)測,提高故障預(yù)警的準(zhǔn)確性,并降低誤報(bào)率FAR(False Alarm Rate)。該算法在3 744個(gè)驅(qū)動器上進(jìn)行實(shí)驗(yàn),在0.2%誤報(bào)率條件下,預(yù)測準(zhǔn)確度提高3~4倍。Wang Yu等[10]在2013年提出基于MD(Mahalanobis Distance)磁盤檢測方法。所選擇的關(guān)鍵參數(shù)包括故障模式、機(jī)制和效果分析,以及最小冗余最大相關(guān)方法。該方法使用SMART數(shù)據(jù)集來評估所提方法的性能。實(shí)驗(yàn)結(jié)果表明,在FAR為0%的條件下,可以檢測67%的磁盤故障,可以提供20個(gè)小時(shí)的數(shù)據(jù)備份時(shí)間。更進(jìn)一步,Wang Yu[11]在2014年提出了對磁盤故障進(jìn)行預(yù)測的兩步統(tǒng)計(jì)方法。該方法主要包括兩個(gè)步驟:異常檢測和故障預(yù)測。使用MD將觀測到的變量變成一維索引,使用Box-cox變換變成高斯變量。通過定義一個(gè)確切的閾值,檢測出異常的disk。其次,采用一個(gè)基于滑動窗口的通用似然比來跟蹤磁盤的異常變化情況。當(dāng)在一個(gè)時(shí)間段內(nèi),如果異常出現(xiàn)足夠多,則意味著磁盤將要出現(xiàn)故障。通過對模擬數(shù)據(jù)和實(shí)際數(shù)據(jù)的實(shí)驗(yàn)結(jié)果表明,在FAR為0%的條件下,該方法可以獲得68%的故障檢測率FDR(Failure Detection Rate)。MD將多變量數(shù)據(jù)轉(zhuǎn)化為單變量數(shù)據(jù),從而極大增強(qiáng)了計(jì)算效率。通過對關(guān)鍵特性子集使用基于規(guī)則的故障檢測算法,增強(qiáng)了預(yù)測的準(zhǔn)確性。Hamerly G等[12]使用兩種貝葉斯方法來預(yù)測磁盤的故障:樸素貝葉斯子模型的混合和樸素貝葉斯分類器。前者使用期望最大化EM(Expectation-maximization)算法對數(shù)據(jù)進(jìn)行訓(xùn)練。后者的優(yōu)勢在于簡單,易于實(shí)現(xiàn)。通過針對1 936個(gè)磁盤SMART數(shù)據(jù)的實(shí)驗(yàn)表明,這兩個(gè)方法比傳統(tǒng)的基于閾值的SMART算法具有更高的準(zhǔn)確性。Tan Y[13]和 Zhao Y[14]分別提出樹擴(kuò)張樸素貝葉斯方法 TAN(Tree Augmented Na?ve Bayesian)和隱式馬爾可夫模型 HMM(Hidden Markov Model)來進(jìn)一步提高磁盤故障預(yù)測的FDR。其中,文獻(xiàn)[13]的結(jié)果表明,當(dāng)FAR為3%時(shí),其FDR可以達(dá)到80%;但是當(dāng)FAR為0%時(shí),其FDR只能達(dá)到20%~30%。文獻(xiàn)[14]的結(jié)果表明,當(dāng)FAR為0%時(shí),HMM方法的FDR為52%,但是當(dāng)FAR增加時(shí),并不能獲得比TAN方法更好的FDR 值。Murray J F[15,16]比較了不同的機(jī)器學(xué)習(xí)方法,這些方法使用磁盤驅(qū)動器內(nèi)部屬性來預(yù)測磁盤的故障。在充滿噪音和非參數(shù)化分布的數(shù)據(jù)中,檢測小概率事件。基于多實(shí)例學(xué)習(xí)框架和貝葉斯分類器,文獻(xiàn)[15]提出一個(gè)新的算法mi-NB(multiple-instance Na?ve Bayes),具有較低的誤報(bào)率和較好的性能。文獻(xiàn)[16]將 mi-NB和SVM方法,unsupervised clustering和非參數(shù)化統(tǒng)計(jì)方法(rank-sum 和reverse arrangement)進(jìn)行了比較。SVM、rank-sum和mi-NB算法比現(xiàn)有的基于閾值的方法性能要好,具有較低的誤報(bào)率。在國內(nèi)方面,Zhu Bing-peng等[17]基于 SMART 信息,采用BP(Back Propagation)神經(jīng)網(wǎng)絡(luò)模型和改進(jìn)的支持向量機(jī)模型來預(yù)測磁盤故障。通過基于23 395個(gè)實(shí)際磁盤SMART數(shù)據(jù)的實(shí)驗(yàn)表明,BP神經(jīng)網(wǎng)絡(luò)模型在保持較低FAR的前提下,可以獲得95%的FDR。華中科技大學(xué)劉景寧等[18]對RAID可靠性進(jìn)行了研究,提出了一種采用SMART的RAID高可靠性方法。國防科學(xué)技術(shù)大學(xué)張超[19]提出了基于SMART信息的T2US(Time,Temperature,Utilization and S.M.A.R.T)算法預(yù)測磁盤故障,準(zhǔn)確率達(dá)到52%,并在此基礎(chǔ)上,構(gòu)建了多級RAID結(jié)構(gòu),在一定程度上提高了RAID的可靠性和性能。國防科學(xué)技術(shù)大學(xué)胡維[20]提出基于智能預(yù)警和自修復(fù)的高可靠磁盤陣列,在磁盤故障預(yù)測中使用決策樹算法和提升算法相結(jié)合的策略構(gòu)建分類器,明顯提高故障預(yù)測性能。
基于機(jī)器學(xué)習(xí)的磁盤故障預(yù)測方法都采用了磁盤的SMART屬性。所有的機(jī)器學(xué)習(xí)方法都具有相類似的流程。首先,SMART數(shù)據(jù)被組織成包括特征值和一個(gè)分類標(biāo)簽的矢量。特征值是一個(gè)包括若干SMART屬性的特征矢量,分類標(biāo)簽用于表征該磁盤是否是故障磁盤。特征矢量包括多個(gè)在不同的時(shí)間點(diǎn)采集的SMART屬性。這些數(shù)據(jù)會被預(yù)先處理,以刪除那些會導(dǎo)致過度擬合的屬性。根據(jù)現(xiàn)有的訓(xùn)練數(shù)據(jù)集,故障預(yù)測方法根據(jù)特定的合適度測量進(jìn)行迭代學(xué)習(xí)。不同的預(yù)測方法會采用不同的SMART屬性,以及不同的學(xué)習(xí)策略。在故障預(yù)測過程中,除了FAR以及FDR外,用戶還關(guān)心故障預(yù)測成功后,預(yù)留的數(shù)據(jù)處理時(shí)間窗口長度。一般來說,預(yù)測某磁盤即將出現(xiàn)故障,需要對該磁盤進(jìn)行處理,包括數(shù)據(jù)遷移、磁盤替換等操作。這些操作應(yīng)該在磁盤出現(xiàn)故障前完成。因此,如何在保證預(yù)測準(zhǔn)確率的同時(shí),提高預(yù)留時(shí)間窗口也是故障預(yù)測方法必須考慮的問題。
和現(xiàn)有的故障預(yù)測方法相比較,本文所使用的故障預(yù)測方法的不同之處在于:(1)上述相關(guān)工作中,對磁盤故障的預(yù)測主要使用一個(gè)方法,而本文使用了LibEDM內(nèi)的多個(gè)機(jī)器學(xué)習(xí)方法,實(shí)現(xiàn)對磁盤故障的預(yù)測,并對不同方法的預(yù)測效果以及相關(guān)指標(biāo)進(jìn)行了對比。(2)和其他相關(guān)工作相比較,本文使用了23395個(gè)磁盤的實(shí)際SMART數(shù)據(jù),整個(gè)數(shù)據(jù)量較大。
機(jī)器學(xué)習(xí)方法通過對數(shù)據(jù)的處理,使得系統(tǒng)具有學(xué)習(xí)能力,從而發(fā)現(xiàn)蘊(yùn)含的規(guī)律,提高系統(tǒng)能力。本文中使用了四種典型的機(jī)器學(xué)習(xí)方法,下面分別給出介紹。
神經(jīng)網(wǎng)絡(luò)是典型的機(jī)器學(xué)習(xí)方法,在模式分類、數(shù)據(jù)挖掘等領(lǐng)域獲得卓有成效的應(yīng)用。神經(jīng)網(wǎng)絡(luò)構(gòu)建網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),通過確定學(xué)習(xí)規(guī)則、模擬人體神經(jīng)元的工作過程。整個(gè)網(wǎng)絡(luò)包括輸入層、輸出層和若干隱單元。不同的層次之間具有不同的網(wǎng)絡(luò)權(quán)值,神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)問題就是網(wǎng)絡(luò)權(quán)值的調(diào)整問題。網(wǎng)絡(luò)權(quán)值確定后,對于給定的輸入,通過整個(gè)網(wǎng)絡(luò)的處理,得到最終的輸出結(jié)果。反向傳播神經(jīng)網(wǎng)絡(luò)使用誤差反向傳播學(xué)習(xí)算法,其網(wǎng)絡(luò)結(jié)構(gòu)包括三個(gè)不同的層面:感知層(輸入層)、聯(lián)想層(隱含層)和響應(yīng)層(輸出層)構(gòu)成。其中,隱含層可以具有多個(gè),為了獲得較好的學(xué)習(xí)效果,其層內(nèi)節(jié)點(diǎn)數(shù)通常不少于輸入層和輸出層的節(jié)點(diǎn)數(shù)。
在本文中,磁盤的SMART信息作為神經(jīng)網(wǎng)絡(luò)的輸入,經(jīng)過隱含層的處理后,由輸出層給出最終結(jié)果,判斷磁盤是否會出現(xiàn)故障。
決策樹方法主要用于從一組已知的樣本中歸納出分類知識,并且分類知識用決策樹的方式表示出來。在決策樹內(nèi)部,每個(gè)節(jié)點(diǎn)對一個(gè)或者多個(gè)屬性進(jìn)行測試比較,并且根據(jù)比較結(jié)果來確定節(jié)點(diǎn)的分支。當(dāng)執(zhí)行完畢后,比較過程到達(dá)決策樹的葉節(jié)點(diǎn),該葉節(jié)點(diǎn)表示了此樣本所屬的類別,從而完成整個(gè)決策過程。決策樹的使用相對簡單,要求訓(xùn)練樣本可以用屬性向量表示即可。決策樹方法執(zhí)行的最終結(jié)果是給出一個(gè)樣本的類別判斷。通過對整個(gè)樣本集執(zhí)行本方法,實(shí)現(xiàn)對樣本集的一個(gè)劃分。
在本文中,磁盤的SMART信息作為一個(gè)屬性向量輸入到?jīng)Q策樹中,并且由決策樹在葉節(jié)點(diǎn)給出最終判斷,該屬性向量所對應(yīng)的磁盤是否出現(xiàn)故障。
支持向量機(jī)是機(jī)器學(xué)習(xí)和數(shù)據(jù)挖掘領(lǐng)域的標(biāo)準(zhǔn)工具之一,集成了包括最大間隔超平面等多項(xiàng)技術(shù),具有良好的性能。特征空間和核函數(shù)是支持向量機(jī)方法的重要概念。其中,核函數(shù)可以將非線性樣本數(shù)據(jù)映射到高維空間,并且不增加參數(shù)個(gè)數(shù),從而增加學(xué)習(xí)器的計(jì)算能力。通過這種映射,可以優(yōu)化樣本數(shù)據(jù)的表示,簡化學(xué)習(xí)任務(wù)。經(jīng)過核函數(shù)映射后的樣本數(shù)據(jù),構(gòu)成了特征空間。通過使用核函數(shù)映射到特征空間后,原有的復(fù)雜的屬性數(shù)據(jù)更便于處理,利于區(qū)分。
貝葉斯方法通過對待考察變量的概率的觀察,以及已經(jīng)觀測到的數(shù)據(jù),基于相應(yīng)理論進(jìn)行推理,得到最優(yōu)的決策。貝葉斯方法的基礎(chǔ)是事件的概率,以及不同事件概率之間的關(guān)系,通過直接操作概率實(shí)現(xiàn)機(jī)器學(xué)習(xí),同時(shí)為衡量多個(gè)假設(shè)的置信度提供了定量的方法。
簡單貝葉斯方法是一種實(shí)用性很高的分類器,其基本原理在于,在使用貝葉斯公式時(shí),采用如下原則確定多個(gè)屬性的聯(lián)合概率:假定目標(biāo)屬性之間相互獨(dú)立,多個(gè)屬性值的聯(lián)合概率等于每個(gè)單獨(dú)屬性的概率乘積。通過這種簡化,大大減少屬性聯(lián)合概率的計(jì)算量,不需要明確搜索假設(shè)空間。
本文選用源于實(shí)際應(yīng)用環(huán)境的23 395個(gè)磁盤的SMART數(shù)據(jù),使用LibEDM中提供的四個(gè)機(jī)器學(xué)習(xí)算法實(shí)現(xiàn),構(gòu)建實(shí)驗(yàn)平臺,對磁盤的故障狀態(tài)進(jìn)行預(yù)測。
4.1.1 實(shí)驗(yàn)數(shù)據(jù)
本文所使用的SMART數(shù)據(jù)集源自實(shí)際運(yùn)行的數(shù)據(jù)中心。整個(gè)數(shù)據(jù)集共包括23 395塊磁盤,所有磁盤具有相同的型號。每個(gè)磁盤每隔1個(gè)小時(shí)進(jìn)行一次取樣。根據(jù)磁盤的運(yùn)行情況,所有磁盤被劃分為兩類:故障和正常。在整個(gè)數(shù)據(jù)集中,故障磁盤共有433塊,正常磁盤為22 962塊。正常磁盤共包括了一個(gè)星期的數(shù)據(jù)。對于故障磁盤,采樣數(shù)據(jù)的時(shí)間更長,最長為故障發(fā)生前20天。
根據(jù)SMART標(biāo)準(zhǔn),每次獲取的磁盤SMART信息中包含多項(xiàng)屬性。但是,部分屬性對于故障預(yù)測而言,是不具有實(shí)際意義的。因此,整個(gè)數(shù)據(jù)集記錄了共10個(gè)SMART屬性,如表1所示。
Table 1 SMART attributes表1 SMART屬性
為了便于機(jī)器學(xué)習(xí)方法使用,數(shù)據(jù)集對每個(gè)屬性值進(jìn)行了歸一化處理,將每個(gè)屬性的取值設(shè)定在[-1,1]。在文獻(xiàn)[16]中,除了使用上述10個(gè)值以外,還使用了兩個(gè)屬性的初始值、以及七個(gè)屬性的變化率作為數(shù)據(jù)集的屬性,并作為故障預(yù)測的輸入。本文只選擇上述10個(gè)屬性,實(shí)際測試結(jié)果表明,即便在屬性數(shù)量較少的條件下,通過合理配置數(shù)據(jù)訓(xùn)練集合,使用機(jī)器學(xué)習(xí)方法也能夠獲得更好的故障預(yù)測效果。
為了驗(yàn)證機(jī)器學(xué)習(xí)方法的正確性,將整個(gè)數(shù)據(jù)集劃分為訓(xùn)練集和測試集。其中,訓(xùn)練集包含70%的正常磁盤和故障磁盤的SMART數(shù)據(jù),測試集包括30%的正常磁盤和故障磁盤的SMART數(shù)據(jù)。測試數(shù)據(jù)集的構(gòu)建采用如下方式:對于每個(gè)正常磁盤,隨機(jī)選取SMART采樣記錄中的一條;對于故障磁盤,選擇磁盤在出現(xiàn)故障前不同的時(shí)間窗口內(nèi)的SMART采樣記錄。為了便于對比,和文獻(xiàn)[16]一樣,我們選擇了四個(gè)不同的時(shí)間窗口,分別為12h、24h、48h和96h。之所以每個(gè)正常磁盤只選擇一條SMART記錄,原因在于需要保持訓(xùn)練集中不同采樣類別之間的平衡。在整個(gè)數(shù)據(jù)集中,故障磁盤只有433塊,在整個(gè)磁盤集合中的比例只有1.8%。盡管在訓(xùn)練集中,每個(gè)故障磁盤包括了整個(gè)時(shí)間窗口內(nèi)的SMART數(shù)據(jù),以12 h的窗口為例,故障磁盤的記錄數(shù)量為3 636條。但是,對于正常磁盤而言,即便是只采用一條SMART記錄,整個(gè)記錄數(shù)量也有16 073條。這樣,在整個(gè)訓(xùn)練集中,故障記錄只占到18.4%。如果每個(gè)正常磁盤的記錄選擇多條,則故障記錄在整個(gè)訓(xùn)練集中的比例會更低,將影響訓(xùn)練效果。后面的實(shí)驗(yàn)結(jié)果也將驗(yàn)證這一選擇的正確性。
4.1.2 機(jī)器學(xué)習(xí)算法庫
本文所使用的機(jī)器學(xué)習(xí)實(shí)現(xiàn)方法源自LibEDM。LibEDM是一個(gè)開源的機(jī)器學(xué)習(xí)算法庫,由國防科技大學(xué)蔣艷凰等開發(fā)。它不僅包括多種經(jīng)典機(jī)器學(xué)習(xí)方法,還包括集成學(xué)習(xí)、強(qiáng)化學(xué)習(xí)等方法的實(shí)現(xiàn),以及多種數(shù)據(jù)統(tǒng)計(jì)工具。在算法實(shí)現(xiàn)的基礎(chǔ)上,LibEDM提供了統(tǒng)一的訪問接口,使得使用機(jī)器學(xué)習(xí)方法更加方便。
4.1.3 實(shí)驗(yàn)方法
基于LibEDM中的四個(gè)機(jī)器學(xué)習(xí)方法實(shí)現(xiàn),以及磁盤SMART數(shù)據(jù)集,完成對磁盤故障的預(yù)測。LibEDM提供了每個(gè)算法的核心API,包括數(shù)據(jù)集的訓(xùn)練、數(shù)據(jù)集的測試等。具體實(shí)驗(yàn)方法如下:(1)首先,對原始SMART數(shù)據(jù)進(jìn)行處理,構(gòu)建符合要求的數(shù)據(jù)集;(2)通過API完成對數(shù)據(jù)集的初始化;(3)調(diào)用數(shù)據(jù)集訓(xùn)練API,完成對機(jī)器學(xué)習(xí)方法的訓(xùn)練;(4)調(diào)用測試API,完成對故障預(yù)測;(5)對預(yù)測效果進(jìn)行統(tǒng)計(jì)分析,判斷預(yù)測的正確性,并統(tǒng)計(jì)預(yù)測率、誤報(bào)率、預(yù)測提前時(shí)間等各項(xiàng)指標(biāo)。
本節(jié)給出四個(gè)機(jī)器學(xué)習(xí)方法的故障預(yù)測結(jié)果,并對預(yù)測結(jié)果進(jìn)行討論。
4.2.1 實(shí)驗(yàn)結(jié)果說明
實(shí)驗(yàn)結(jié)果重點(diǎn)關(guān)注以下幾個(gè)指標(biāo):
預(yù)測率Rp:實(shí)際故障磁盤中,被預(yù)測為出現(xiàn)故障的磁盤數(shù)量占所有故障磁盤的比。
誤報(bào)率Rf:實(shí)際正常磁盤中,被預(yù)測為出現(xiàn)故障的磁盤數(shù)量占所有正常磁盤的比。
準(zhǔn)確率Ra:預(yù)測狀態(tài)正確的磁盤數(shù)量和全部磁盤數(shù)量的比。
提前時(shí)間Ta:對于故障磁盤而言,正確預(yù)測磁盤故障狀態(tài)時(shí)間和磁盤實(shí)際故障時(shí)間之間的時(shí)間長度。
執(zhí)行時(shí)間Te:指機(jī)器學(xué)習(xí)方法完成一項(xiàng)故障預(yù)測所需要的時(shí)間。
假定整個(gè)測試集中共有N個(gè)磁盤,其中正常磁盤No個(gè),故障磁盤Nf個(gè),滿足No+Nf=N。在預(yù)測過程中,共有M個(gè)磁盤被預(yù)測為故障,其中實(shí)際故障磁盤數(shù)為Mf,實(shí)際正常磁盤數(shù)為Mo,滿足Mo+Mf=M。在預(yù)測過程中,共有L個(gè)磁盤被預(yù)測為正常,其中實(shí)際故障磁盤數(shù)為Lf,實(shí)際正常磁盤數(shù)為Lo。則有以下關(guān)系成立:
對于實(shí)際存儲系統(tǒng)而言,磁盤故障預(yù)測的主要目的在于在磁盤故障出現(xiàn)之前,提前對相關(guān)的磁盤進(jìn)行處理,執(zhí)行包括數(shù)據(jù)備份、數(shù)據(jù)遷移在內(nèi)的各項(xiàng)措施,避免產(chǎn)生數(shù)據(jù)丟失。在上述指標(biāo)中,提前時(shí)間Ta刻畫了機(jī)器學(xué)習(xí)方法所產(chǎn)生的故障預(yù)測提前量,這個(gè)值越大,意味著留給用戶采取措施的時(shí)間越長,完成數(shù)據(jù)可靠性操作的概率也就越大。
執(zhí)行時(shí)間Te是機(jī)器學(xué)習(xí)方法完成一項(xiàng)故障預(yù)測的時(shí)間,刻畫了該方法的執(zhí)行效率,時(shí)間越短,效率越高。盡管在實(shí)際系統(tǒng)中,留給故障預(yù)測的時(shí)間可能會比較長,在上面的數(shù)據(jù)集中,每隔一個(gè)小時(shí)采樣一次,意味著故障預(yù)測可以在這一個(gè)小時(shí)之內(nèi)完成。但是,當(dāng)系統(tǒng)規(guī)模很龐大時(shí),大量的預(yù)測任務(wù)會給機(jī)器學(xué)習(xí)方法帶來較大的壓力。提高執(zhí)行效率,依然具有其內(nèi)在的現(xiàn)實(shí)意義。
4.2.2 預(yù)測率結(jié)果比較
預(yù)測率刻畫了機(jī)器學(xué)習(xí)方法發(fā)現(xiàn)磁盤故障的能力。圖1給出了四種方法在預(yù)測率的結(jié)果比較。其中,橫坐標(biāo)為時(shí)間窗口的大小,分別為12h、24h、48h、96h。時(shí)間窗口越大,意味著輸入數(shù)據(jù)集中故障磁盤SMART數(shù)據(jù)越多。BPNN方法、決策樹和貝葉斯方法在不同的時(shí)間窗口條件下,預(yù)測率保持相對穩(wěn)定。其中,BPNN方法的預(yù)測率穩(wěn)定在93%左右,貝葉斯方法的預(yù)測率穩(wěn)定在96%左右,而決策樹方法穩(wěn)定在98%。對于支持向量機(jī)方法,隨著時(shí)間窗口的增大,預(yù)測率由67%增加到97.3%。支持向量機(jī)方法的預(yù)測率對時(shí)間窗口大小變化所引發(fā)的輸入數(shù)據(jù)集的變化比較敏感,當(dāng)時(shí)間窗口增加大于24h后,預(yù)測率的結(jié)果趨于穩(wěn)定。
Figure 1 Prediction rate comparison圖1 預(yù)測率結(jié)果比較
4.2.3 誤報(bào)率結(jié)果比較
誤報(bào)率刻畫了機(jī)器學(xué)習(xí)方法出現(xiàn)錯(cuò)誤預(yù)測結(jié)果的可能性。圖2給出了四種方法的誤報(bào)率結(jié)果比較。誤報(bào)率越低,證明方法的有效性越好。在四種方法中,支持向量機(jī)的效果最好,誤報(bào)率最低值僅有0.05%,最高值也只有0.1%。決策樹方法和簡單貝葉斯方法的誤報(bào)率比較穩(wěn)定,分別穩(wěn)定在0.3%和0.8%。相比而言,BPNN方法的誤報(bào)率變化浮動較大,最低值為0.1%,最高值可以到1%。
4.2.4 準(zhǔn)確率結(jié)果比較
準(zhǔn)確率刻畫了機(jī)器學(xué)習(xí)方法獲得正確預(yù)測結(jié)果的能力,其值越高,則意味著方法的預(yù)測效果越好。圖3給出了四種方法的準(zhǔn)確率結(jié)果比較。從圖3中可以看出,四種方法都保持了較高的預(yù)測準(zhǔn)確率。除了簡單貝葉斯方法,另外三種方法大都保持了99%以上的預(yù)測準(zhǔn)確率。決策樹方法的準(zhǔn)確率較為穩(wěn)定。當(dāng)時(shí)間窗口大于24h后,支持向量機(jī)方法的預(yù)測準(zhǔn)確率也穩(wěn)定在99%以上。相比較而言,貝葉斯方法隨著時(shí)間窗口的增加,預(yù)測準(zhǔn)確率有所下降。BPNN方法在時(shí)間窗口大小為48h,最高準(zhǔn)確率為99.5%;當(dāng)時(shí)間窗口大小為96h,出現(xiàn)了最低準(zhǔn)確率為97.4%。這些數(shù)據(jù)表明,上述四種預(yù)測方法具有較高的正確預(yù)測能力。
Figure 2 Comparison of false alarm rates圖2 誤報(bào)率結(jié)果比較
Figure 3 Comparison of accurate rates圖3 準(zhǔn)確率結(jié)果比較
4.2.5 提前時(shí)間比較
提前時(shí)間定義了機(jī)器學(xué)習(xí)方法在實(shí)際故障出現(xiàn)前,完成故障預(yù)測的時(shí)間提前量。這個(gè)值越大,表明用戶有更充足的時(shí)間完成數(shù)據(jù)備份操作,數(shù)據(jù)的可靠性、可用性也就越高。圖4給出了四種方法的提前時(shí)間比較。從圖4中看出,除了BPNN方法外,其他三種方法都保持了相對穩(wěn)定的提前時(shí)間。其中,支持向量機(jī)和貝葉斯方法的提前時(shí)間穩(wěn)定在300h左右,決策樹方法的提前時(shí)間穩(wěn)定在290h。隨著時(shí)間窗口的增加,BPNN方法的提前時(shí)間由270h逐步提升到300h。
Figure 4 Comparison of the time ahead of schedule圖4 提前時(shí)間比較
4.2.6 其他結(jié)果
除了上述四個(gè)指標(biāo),我們還對比了四種方法在對測試集進(jìn)行預(yù)測時(shí)所需要的時(shí)間。圖5給出了歸一化處理后的時(shí)間對比結(jié)果。在四種方法中,決策樹的預(yù)測時(shí)間最短,BPNN和簡單貝葉斯的預(yù)測時(shí)間稍長,分別是決策樹方法的2.8倍和1.3倍。支持向量機(jī)的預(yù)測時(shí)間最長,是決策樹方法的715倍。從時(shí)間絕對值看,四種方法的執(zhí)行時(shí)間都是可以接受的。
Figure 5 Comparison of prediction time圖5 預(yù)測所需時(shí)間對比
在前文中,我們給出了訓(xùn)練集的構(gòu)造方法,并說明,每個(gè)正常磁盤選擇一條SMART信息,可以改善故障磁盤的SMART信息在整個(gè)訓(xùn)練集中的比例,從而改善預(yù)測效果。圖6a和圖6b分別給出了兩種不同條件下、四種不同方法的預(yù)測率和準(zhǔn)確率對比,它們的時(shí)間窗口大小均為12h。其中,Train-1表示在構(gòu)造訓(xùn)練集數(shù)據(jù)時(shí),每個(gè)正常磁盤選取一條SMART信息;Train-2表示構(gòu)造訓(xùn)練集數(shù)據(jù)時(shí),每個(gè)正常磁盤選取四條SMART信息。
Figure 6 Prediction comparison under different constructions of training sets圖6 不同訓(xùn)練集構(gòu)造方法下的預(yù)測結(jié)果對比
從圖6a可以看出,在兩種條件下,決策樹和簡單貝葉斯方法的預(yù)測率沒有出現(xiàn)大的變化,但是BPNN和支持向量機(jī)方法在選擇Train-1時(shí),預(yù)測率有明顯改善,分別提高了15%和17%。從圖6b可以看出,在兩種條件下,預(yù)測的準(zhǔn)確率并沒有出現(xiàn)大的變化。
數(shù)據(jù)是信息系統(tǒng)的核心組成部分。作為保存數(shù)據(jù)的主要部件,提高磁盤的可靠性對信息系統(tǒng)具有重要意義。SMART數(shù)據(jù)描述了磁盤的多種屬性,是磁盤管理的標(biāo)準(zhǔn)接口?;赟MART數(shù)據(jù),采用機(jī)器學(xué)習(xí)方法對磁盤故障進(jìn)行預(yù)測,可以有效預(yù)測可能出現(xiàn)的磁盤故障,有利于提高磁盤的可用性,并增強(qiáng)存儲系統(tǒng)的可靠性。本文基于LibEDM,采用四種典型的機(jī)器學(xué)習(xí)方法,利用SMART數(shù)據(jù),實(shí)現(xiàn)對磁盤的故障預(yù)測,并使用源自于實(shí)際系統(tǒng)的磁盤SMART信息進(jìn)行故障預(yù)測驗(yàn)證。實(shí)驗(yàn)結(jié)果表明,使用機(jī)器學(xué)習(xí)方法可以有效預(yù)測磁盤故障。同時(shí),對不同方法的實(shí)驗(yàn)結(jié)果進(jìn)行了對比與分析。
[1] Schroeder B,Gibson G A.Disk failures in the real world:What does an MTTF of 1,000,000hours mean to you?[C]∥Proc of the 5th USENIX Conference on File and Storage Technologies,2007:286-299.
[2] Gobioff H,Ghemawat S T S.The Google file system[C]∥Proc of the 19th ACM Symposium on Operating Systems Principles(SOSP’03),2003:29-43.
[3] Van Renesse R,Schneider F B.Chain replication for supporting high throughout and availability[C]∥Proc of OSDI’04,2004:91-104.
[4] Pinheiro E,Weber W-D,Andr L,et al.Failure trends in a large disk drive population [C]∥Proc of the 5th USENIX Conference on File and Storage Technologies,2007:1.
[5] Murray J F,Hughes G F,Kreutz-Delgado K.Machine learning methods for predicting failures in hard drives:A multipleinstance application [J].Journal of Machine Learning Research,2005,6(1):783-816.
[6] Jiang Yan-h(huán)uang,Zhao Qiang-li.Machine learning techniques[M].Beijing:Publishing House of Electronics Industry,2009.(in Chinese)
[7] LibEDM[EB/OL]. [2015-03-13].https://github.com/Qiangli-Zhao/LibEDM.
[8] http://pan.baidu.com/share/link?shareid=189977&uk=4278294944.
[9] Hughes G F,Murray J F,Kreutz-Delgado K,et al.Improved disk drive failure warnings[J].IEEE Transactions on Reliability,2002,51(3):350-357.
[10] Wang Yu,Miao Qiang,Ma E W M,et al.Online anomaly detection for hard disk drives based on mahalanobis distance[J].IEEE Transactions on Reliability,2013,62(1):136-145.
[11] Wang Yu,Ma E W M,Tommy W S Chow,et al.A two-step parametric method for failure prediction in hard disk drives[J].IEEE Transactions on Industrial Informatics,2014,10(1):419-430.
[12] Hamerly G,Elkan C.Bayesian approaches to failure prediction for disk drives[C]∥Proc of the 18th International Conference on Machine Learning(ICML),2001:202-209.
[13] Tan Y,Gu X.On predictability of system anomalies in real world[C]∥Proc of the 18th Annual IEEE/ACM International Symposium on Modeling,Analysis Simulation of Computer and Telecommunication System,2010:1.
[14] Zhao Y,Liu X,Gan S,et al.Predicting disk failure with HMM-and HSMM-based approaches[C]∥Proc of the 10th International Conference on Data Mining,2010:390-404.
[15] Murray J F,Hughes G F,Kreutz-Delgado K.Machine learning methods for predicting failures in hard drives:A multiple instance application[J].Journal of Machine Learning Research,2005,6(1):783-816.
[16] Murray J F,Hughes G F,Kreutz-Delgado K.Hard drive failure prediction using non-parametric statistical methods[C]∥Proc of the ICANN/ICONIP,2003:1.
[17] Zhu Bing-peng,Wang Gang,Liu Xiao-guang,et al.Proactive drive failure prediction for large scale storage systems[C]∥Proc of IEEE Conference on Massive Data Storage Systems and Technologies,2013:1-5.
[18] Liu Jing-ning,Rao Guo-lin,F(xiàn)eng Dan.A S.M.A.R.T-based method for keeping RAID data’s high dependability[J].Computer Engineering & Science,2007,29(5):21-23.(in Chinese)
[19] Zhang Chao.Research of self-h(huán)ealing technique on high performance disk array[D].Changsha:Natioanl University of Defense Technology,2008.(in Chinese)
[20] Hu Wei.Research of high reliable disk array technology based on intelligent failure prediction and self-h(huán)ealing[D].Changsha:Natioanl University of Defense Technology,2010.(in Chinese)
附中文參考文獻(xiàn):
[6] 蔣艷凰,趙強(qiáng)利.機(jī)器學(xué)習(xí)方法[M].北京:電子工業(yè)出版社,2009.
[18] 劉景寧,饒國林,馮丹.一種基于S.M.A.R.T的保障RAID數(shù)據(jù)高可靠性的方法[J].計(jì)算機(jī)工程與科學(xué),2007,29(5):21-23.
[19] 張超.高性能磁盤陣列自修復(fù)技術(shù)研究[D].長沙:國防科學(xué)技術(shù)大學(xué),2008.
[20] 胡維.基于智能預(yù)警和自修復(fù)的高可靠磁盤陣列關(guān)鍵技術(shù)研究[D].長沙:國防科學(xué)技術(shù)大學(xué),2010.