董 勇,蔣艷凰,盧宇彤,周恩強
(1.國防科學技術(shù)大學計算機學院,湖南 長沙410073;2.高性能計算國家重點實驗室,湖南 長沙410073)
數(shù)據(jù)是信息系統(tǒng)的核心,其可用性是保證信息系統(tǒng)正常運行的關(guān)鍵。存儲系統(tǒng)負責保存數(shù)據(jù),提供數(shù)據(jù)訪問接口,是信息系統(tǒng)的主要組成部分之一,其可靠性一直是研究人員與工業(yè)界關(guān)注的焦點。到目前為止,磁盤仍然是存儲系統(tǒng)的核心組成部分。磁盤能否提供穩(wěn)定可靠的數(shù)據(jù)訪問能力,直接影響整個存儲系統(tǒng)的可靠性。本文基于磁盤的SMART數(shù)據(jù),采用機器學習的方法預測磁盤故障,實現(xiàn)提高存儲系統(tǒng)可靠性和可用性的目的。
磁盤是磁、電和機械的混合體,其固有結(jié)構(gòu)決定了磁盤本身的可靠性不高。Schroeder B[1]的統(tǒng)計說明,磁盤故障導致系統(tǒng)失效的比例達18.1%~49.1%。現(xiàn)有的大規(guī)模存儲系統(tǒng)往往包含數(shù)百甚至數(shù)千塊磁盤,大大增加了磁盤出現(xiàn)故障的幾率。傳統(tǒng)的提高數(shù)據(jù)可靠性的方法主要是冗余磁盤陣列 RAID(Redundant Arrays of Inexpensive Disks)技術(shù),通過采用數(shù)據(jù)冗余,容忍單個或多個磁盤的故障,并通過數(shù)據(jù)編碼方式恢復錯誤數(shù)據(jù)。除了在磁盤層面通過數(shù)據(jù)冗余提高可靠性,還可以在系統(tǒng)層面通過數(shù)據(jù)副本技術(shù)提高數(shù)據(jù)的可靠性。Google的集群系統(tǒng)中文件系統(tǒng)GFS[2]通過采用隨機副本技術(shù)來提高數(shù)據(jù)修復能力。Renesse R[3]等研究了鏈式副本技術(shù)和偽隨機的分布方法,可以提高數(shù)據(jù)可靠性。
上述技術(shù)的主要出發(fā)點是“容忍”磁盤或者系統(tǒng)故障,當故障發(fā)生時,系統(tǒng)仍然能夠提供數(shù)據(jù)訪問服務(wù),屬于被動容錯。在此基礎(chǔ)上,出現(xiàn)了磁盤的主動容錯技術(shù)。SMART(Self-Monitoring,A-nalysis and Reporting Technology)是典型的主動容錯技術(shù)。該技術(shù)監(jiān)控磁盤運行過程中的多項參數(shù),包括磁盤的尋道錯、奇偶校驗錯等信息。基于SMART的主動容錯主要是采用閾值方法。廠商首先設(shè)定磁盤SMART屬性閾值,當實際監(jiān)測到的SMART屬性值超過閾值則報警,提示磁盤即將故障,這種方法簡單易行,但是預警準確率較低。目前對于磁盤的運行狀態(tài),研究結(jié)果表明,使用單一的或是簡單的SMART屬性值還不能準確地預測磁盤故障[4]。目前磁盤廠商采用的故障預測閾值判定方法,磁盤故障誤報率為0.1%,而能夠預測的磁盤故障僅有3%~10%[5]。
機器學習方法[6]基于大量數(shù)據(jù),通過對數(shù)據(jù)的分析,從中發(fā)現(xiàn)蘊含的規(guī)律,實現(xiàn)“學習”的目的,從而提高系統(tǒng)本身的能力。在磁盤SMART數(shù)據(jù)的基礎(chǔ)上,采用機器學習方法,實現(xiàn)對磁盤故障的預測,達到及時對故障磁盤進行處理,并增強存儲系統(tǒng)可靠性的目的。
本文采用四種典型的機器學習方法:反向傳播神經(jīng)網(wǎng)絡(luò) BPNN(Back Propagation Neural Network)、決策樹(Decision Tree)、支持向量機SVM(Supported Vector Machine)和貝葉斯方法(Na?ve Bayes)實現(xiàn)對磁盤故障的預測。上述方法的實現(xiàn)源自 LibEDM[7]。本文所使用的數(shù)據(jù)集包含23 395個磁盤SMART信息[8]。通過對訓練集和測試集的構(gòu)建,上述四種機器學習方法可以獲得較高的故障預測準確度,這些結(jié)果比現(xiàn)有的磁盤故障預測方法要好。
SMART技術(shù)源自IBM在1992年開發(fā)的預測故障分析技術(shù) PFA(Predictive Failure Analysis)。該技術(shù)周期性測量磁盤的屬性,并且在超過預定義的閾值后,向用戶發(fā)送一個報警信息。工業(yè)界接受了PFA技術(shù),并且在1994年形成了SMART標準,用于IDE/ATA和SCSI磁盤的可靠性預測。SMART的發(fā)展經(jīng)歷了三個階段:(1)初始的SMART通過監(jiān)控在線活動,提供對故障的預測;(2)后續(xù)版本通過增加自動的離線掃描來監(jiān)控額外的操作,從而提供故障預測;(3)最后的SMART版本不僅監(jiān)控磁盤的活動,而且增加了故障預防機制,嘗試檢測并修復扇區(qū)錯誤。SMART III通過空閑階段“離線數(shù)據(jù)收集”測試所有的扇區(qū),并確認磁盤的健康狀況。作為行業(yè)標準,SMART規(guī)定了磁盤制造廠商應(yīng)遵循的相關(guān)準則,目前幾乎所有磁盤廠商均支持SMART技術(shù)。SMART信息保留在磁盤的系統(tǒng)保留區(qū)(Service Area)內(nèi),這個區(qū)域一般位于磁盤最前面幾十個物理磁道,由廠商寫入相關(guān)內(nèi)部管理程序?;赟MART的閾值報警功能,簡單易行,但是預警準確率較低。
在上述閾值方法的基礎(chǔ)上,研究人員提出了多種基于統(tǒng)計方法和機器學習方法的磁盤故障主動預測技術(shù)。Hughes G F[9]在2002年提出了兩個改進的SMART算法,采用統(tǒng)計假設(shè)測試方法,根據(jù)秩和檢驗(Rank Sum Test)對磁盤故障進行預測,提高故障預警的準確性,并降低誤報率FAR(False Alarm Rate)。該算法在3 744個驅(qū)動器上進行實驗,在0.2%誤報率條件下,預測準確度提高3~4倍。Wang Yu等[10]在2013年提出基于MD(Mahalanobis Distance)磁盤檢測方法。所選擇的關(guān)鍵參數(shù)包括故障模式、機制和效果分析,以及最小冗余最大相關(guān)方法。該方法使用SMART數(shù)據(jù)集來評估所提方法的性能。實驗結(jié)果表明,在FAR為0%的條件下,可以檢測67%的磁盤故障,可以提供20個小時的數(shù)據(jù)備份時間。更進一步,Wang Yu[11]在2014年提出了對磁盤故障進行預測的兩步統(tǒng)計方法。該方法主要包括兩個步驟:異常檢測和故障預測。使用MD將觀測到的變量變成一維索引,使用Box-cox變換變成高斯變量。通過定義一個確切的閾值,檢測出異常的disk。其次,采用一個基于滑動窗口的通用似然比來跟蹤磁盤的異常變化情況。當在一個時間段內(nèi),如果異常出現(xiàn)足夠多,則意味著磁盤將要出現(xiàn)故障。通過對模擬數(shù)據(jù)和實際數(shù)據(jù)的實驗結(jié)果表明,在FAR為0%的條件下,該方法可以獲得68%的故障檢測率FDR(Failure Detection Rate)。MD將多變量數(shù)據(jù)轉(zhuǎn)化為單變量數(shù)據(jù),從而極大增強了計算效率。通過對關(guān)鍵特性子集使用基于規(guī)則的故障檢測算法,增強了預測的準確性。Hamerly G等[12]使用兩種貝葉斯方法來預測磁盤的故障:樸素貝葉斯子模型的混合和樸素貝葉斯分類器。前者使用期望最大化EM(Expectation-maximization)算法對數(shù)據(jù)進行訓練。后者的優(yōu)勢在于簡單,易于實現(xiàn)。通過針對1 936個磁盤SMART數(shù)據(jù)的實驗表明,這兩個方法比傳統(tǒng)的基于閾值的SMART算法具有更高的準確性。Tan Y[13]和 Zhao Y[14]分別提出樹擴張樸素貝葉斯方法 TAN(Tree Augmented Na?ve Bayesian)和隱式馬爾可夫模型 HMM(Hidden Markov Model)來進一步提高磁盤故障預測的FDR。其中,文獻[13]的結(jié)果表明,當FAR為3%時,其FDR可以達到80%;但是當FAR為0%時,其FDR只能達到20%~30%。文獻[14]的結(jié)果表明,當FAR為0%時,HMM方法的FDR為52%,但是當FAR增加時,并不能獲得比TAN方法更好的FDR 值。Murray J F[15,16]比較了不同的機器學習方法,這些方法使用磁盤驅(qū)動器內(nèi)部屬性來預測磁盤的故障。在充滿噪音和非參數(shù)化分布的數(shù)據(jù)中,檢測小概率事件?;诙鄬嵗龑W習框架和貝葉斯分類器,文獻[15]提出一個新的算法mi-NB(multiple-instance Na?ve Bayes),具有較低的誤報率和較好的性能。文獻[16]將 mi-NB和SVM方法,unsupervised clustering和非參數(shù)化統(tǒng)計方法(rank-sum 和reverse arrangement)進行了比較。SVM、rank-sum和mi-NB算法比現(xiàn)有的基于閾值的方法性能要好,具有較低的誤報率。在國內(nèi)方面,Zhu Bing-peng等[17]基于 SMART 信息,采用BP(Back Propagation)神經(jīng)網(wǎng)絡(luò)模型和改進的支持向量機模型來預測磁盤故障。通過基于23 395個實際磁盤SMART數(shù)據(jù)的實驗表明,BP神經(jīng)網(wǎng)絡(luò)模型在保持較低FAR的前提下,可以獲得95%的FDR。華中科技大學劉景寧等[18]對RAID可靠性進行了研究,提出了一種采用SMART的RAID高可靠性方法。國防科學技術(shù)大學張超[19]提出了基于SMART信息的T2US(Time,Temperature,Utilization and S.M.A.R.T)算法預測磁盤故障,準確率達到52%,并在此基礎(chǔ)上,構(gòu)建了多級RAID結(jié)構(gòu),在一定程度上提高了RAID的可靠性和性能。國防科學技術(shù)大學胡維[20]提出基于智能預警和自修復的高可靠磁盤陣列,在磁盤故障預測中使用決策樹算法和提升算法相結(jié)合的策略構(gòu)建分類器,明顯提高故障預測性能。
基于機器學習的磁盤故障預測方法都采用了磁盤的SMART屬性。所有的機器學習方法都具有相類似的流程。首先,SMART數(shù)據(jù)被組織成包括特征值和一個分類標簽的矢量。特征值是一個包括若干SMART屬性的特征矢量,分類標簽用于表征該磁盤是否是故障磁盤。特征矢量包括多個在不同的時間點采集的SMART屬性。這些數(shù)據(jù)會被預先處理,以刪除那些會導致過度擬合的屬性。根據(jù)現(xiàn)有的訓練數(shù)據(jù)集,故障預測方法根據(jù)特定的合適度測量進行迭代學習。不同的預測方法會采用不同的SMART屬性,以及不同的學習策略。在故障預測過程中,除了FAR以及FDR外,用戶還關(guān)心故障預測成功后,預留的數(shù)據(jù)處理時間窗口長度。一般來說,預測某磁盤即將出現(xiàn)故障,需要對該磁盤進行處理,包括數(shù)據(jù)遷移、磁盤替換等操作。這些操作應(yīng)該在磁盤出現(xiàn)故障前完成。因此,如何在保證預測準確率的同時,提高預留時間窗口也是故障預測方法必須考慮的問題。
和現(xiàn)有的故障預測方法相比較,本文所使用的故障預測方法的不同之處在于:(1)上述相關(guān)工作中,對磁盤故障的預測主要使用一個方法,而本文使用了LibEDM內(nèi)的多個機器學習方法,實現(xiàn)對磁盤故障的預測,并對不同方法的預測效果以及相關(guān)指標進行了對比。(2)和其他相關(guān)工作相比較,本文使用了23395個磁盤的實際SMART數(shù)據(jù),整個數(shù)據(jù)量較大。
機器學習方法通過對數(shù)據(jù)的處理,使得系統(tǒng)具有學習能力,從而發(fā)現(xiàn)蘊含的規(guī)律,提高系統(tǒng)能力。本文中使用了四種典型的機器學習方法,下面分別給出介紹。
神經(jīng)網(wǎng)絡(luò)是典型的機器學習方法,在模式分類、數(shù)據(jù)挖掘等領(lǐng)域獲得卓有成效的應(yīng)用。神經(jīng)網(wǎng)絡(luò)構(gòu)建網(wǎng)絡(luò)拓撲結(jié)構(gòu),通過確定學習規(guī)則、模擬人體神經(jīng)元的工作過程。整個網(wǎng)絡(luò)包括輸入層、輸出層和若干隱單元。不同的層次之間具有不同的網(wǎng)絡(luò)權(quán)值,神經(jīng)網(wǎng)絡(luò)的學習問題就是網(wǎng)絡(luò)權(quán)值的調(diào)整問題。網(wǎng)絡(luò)權(quán)值確定后,對于給定的輸入,通過整個網(wǎng)絡(luò)的處理,得到最終的輸出結(jié)果。反向傳播神經(jīng)網(wǎng)絡(luò)使用誤差反向傳播學習算法,其網(wǎng)絡(luò)結(jié)構(gòu)包括三個不同的層面:感知層(輸入層)、聯(lián)想層(隱含層)和響應(yīng)層(輸出層)構(gòu)成。其中,隱含層可以具有多個,為了獲得較好的學習效果,其層內(nèi)節(jié)點數(shù)通常不少于輸入層和輸出層的節(jié)點數(shù)。
在本文中,磁盤的SMART信息作為神經(jīng)網(wǎng)絡(luò)的輸入,經(jīng)過隱含層的處理后,由輸出層給出最終結(jié)果,判斷磁盤是否會出現(xiàn)故障。
決策樹方法主要用于從一組已知的樣本中歸納出分類知識,并且分類知識用決策樹的方式表示出來。在決策樹內(nèi)部,每個節(jié)點對一個或者多個屬性進行測試比較,并且根據(jù)比較結(jié)果來確定節(jié)點的分支。當執(zhí)行完畢后,比較過程到達決策樹的葉節(jié)點,該葉節(jié)點表示了此樣本所屬的類別,從而完成整個決策過程。決策樹的使用相對簡單,要求訓練樣本可以用屬性向量表示即可。決策樹方法執(zhí)行的最終結(jié)果是給出一個樣本的類別判斷。通過對整個樣本集執(zhí)行本方法,實現(xiàn)對樣本集的一個劃分。
在本文中,磁盤的SMART信息作為一個屬性向量輸入到?jīng)Q策樹中,并且由決策樹在葉節(jié)點給出最終判斷,該屬性向量所對應(yīng)的磁盤是否出現(xiàn)故障。
支持向量機是機器學習和數(shù)據(jù)挖掘領(lǐng)域的標準工具之一,集成了包括最大間隔超平面等多項技術(shù),具有良好的性能。特征空間和核函數(shù)是支持向量機方法的重要概念。其中,核函數(shù)可以將非線性樣本數(shù)據(jù)映射到高維空間,并且不增加參數(shù)個數(shù),從而增加學習器的計算能力。通過這種映射,可以優(yōu)化樣本數(shù)據(jù)的表示,簡化學習任務(wù)。經(jīng)過核函數(shù)映射后的樣本數(shù)據(jù),構(gòu)成了特征空間。通過使用核函數(shù)映射到特征空間后,原有的復雜的屬性數(shù)據(jù)更便于處理,利于區(qū)分。
貝葉斯方法通過對待考察變量的概率的觀察,以及已經(jīng)觀測到的數(shù)據(jù),基于相應(yīng)理論進行推理,得到最優(yōu)的決策。貝葉斯方法的基礎(chǔ)是事件的概率,以及不同事件概率之間的關(guān)系,通過直接操作概率實現(xiàn)機器學習,同時為衡量多個假設(shè)的置信度提供了定量的方法。
簡單貝葉斯方法是一種實用性很高的分類器,其基本原理在于,在使用貝葉斯公式時,采用如下原則確定多個屬性的聯(lián)合概率:假定目標屬性之間相互獨立,多個屬性值的聯(lián)合概率等于每個單獨屬性的概率乘積。通過這種簡化,大大減少屬性聯(lián)合概率的計算量,不需要明確搜索假設(shè)空間。
本文選用源于實際應(yīng)用環(huán)境的23 395個磁盤的SMART數(shù)據(jù),使用LibEDM中提供的四個機器學習算法實現(xiàn),構(gòu)建實驗平臺,對磁盤的故障狀態(tài)進行預測。
4.1.1 實驗數(shù)據(jù)
本文所使用的SMART數(shù)據(jù)集源自實際運行的數(shù)據(jù)中心。整個數(shù)據(jù)集共包括23 395塊磁盤,所有磁盤具有相同的型號。每個磁盤每隔1個小時進行一次取樣。根據(jù)磁盤的運行情況,所有磁盤被劃分為兩類:故障和正常。在整個數(shù)據(jù)集中,故障磁盤共有433塊,正常磁盤為22 962塊。正常磁盤共包括了一個星期的數(shù)據(jù)。對于故障磁盤,采樣數(shù)據(jù)的時間更長,最長為故障發(fā)生前20天。
根據(jù)SMART標準,每次獲取的磁盤SMART信息中包含多項屬性。但是,部分屬性對于故障預測而言,是不具有實際意義的。因此,整個數(shù)據(jù)集記錄了共10個SMART屬性,如表1所示。
Table 1 SMART attributes表1 SMART屬性
為了便于機器學習方法使用,數(shù)據(jù)集對每個屬性值進行了歸一化處理,將每個屬性的取值設(shè)定在[-1,1]。在文獻[16]中,除了使用上述10個值以外,還使用了兩個屬性的初始值、以及七個屬性的變化率作為數(shù)據(jù)集的屬性,并作為故障預測的輸入。本文只選擇上述10個屬性,實際測試結(jié)果表明,即便在屬性數(shù)量較少的條件下,通過合理配置數(shù)據(jù)訓練集合,使用機器學習方法也能夠獲得更好的故障預測效果。
為了驗證機器學習方法的正確性,將整個數(shù)據(jù)集劃分為訓練集和測試集。其中,訓練集包含70%的正常磁盤和故障磁盤的SMART數(shù)據(jù),測試集包括30%的正常磁盤和故障磁盤的SMART數(shù)據(jù)。測試數(shù)據(jù)集的構(gòu)建采用如下方式:對于每個正常磁盤,隨機選取SMART采樣記錄中的一條;對于故障磁盤,選擇磁盤在出現(xiàn)故障前不同的時間窗口內(nèi)的SMART采樣記錄。為了便于對比,和文獻[16]一樣,我們選擇了四個不同的時間窗口,分別為12h、24h、48h和96h。之所以每個正常磁盤只選擇一條SMART記錄,原因在于需要保持訓練集中不同采樣類別之間的平衡。在整個數(shù)據(jù)集中,故障磁盤只有433塊,在整個磁盤集合中的比例只有1.8%。盡管在訓練集中,每個故障磁盤包括了整個時間窗口內(nèi)的SMART數(shù)據(jù),以12 h的窗口為例,故障磁盤的記錄數(shù)量為3 636條。但是,對于正常磁盤而言,即便是只采用一條SMART記錄,整個記錄數(shù)量也有16 073條。這樣,在整個訓練集中,故障記錄只占到18.4%。如果每個正常磁盤的記錄選擇多條,則故障記錄在整個訓練集中的比例會更低,將影響訓練效果。后面的實驗結(jié)果也將驗證這一選擇的正確性。
4.1.2 機器學習算法庫
本文所使用的機器學習實現(xiàn)方法源自LibEDM。LibEDM是一個開源的機器學習算法庫,由國防科技大學蔣艷凰等開發(fā)。它不僅包括多種經(jīng)典機器學習方法,還包括集成學習、強化學習等方法的實現(xiàn),以及多種數(shù)據(jù)統(tǒng)計工具。在算法實現(xiàn)的基礎(chǔ)上,LibEDM提供了統(tǒng)一的訪問接口,使得使用機器學習方法更加方便。
4.1.3 實驗方法
基于LibEDM中的四個機器學習方法實現(xiàn),以及磁盤SMART數(shù)據(jù)集,完成對磁盤故障的預測。LibEDM提供了每個算法的核心API,包括數(shù)據(jù)集的訓練、數(shù)據(jù)集的測試等。具體實驗方法如下:(1)首先,對原始SMART數(shù)據(jù)進行處理,構(gòu)建符合要求的數(shù)據(jù)集;(2)通過API完成對數(shù)據(jù)集的初始化;(3)調(diào)用數(shù)據(jù)集訓練API,完成對機器學習方法的訓練;(4)調(diào)用測試API,完成對故障預測;(5)對預測效果進行統(tǒng)計分析,判斷預測的正確性,并統(tǒng)計預測率、誤報率、預測提前時間等各項指標。
本節(jié)給出四個機器學習方法的故障預測結(jié)果,并對預測結(jié)果進行討論。
4.2.1 實驗結(jié)果說明
實驗結(jié)果重點關(guān)注以下幾個指標:
預測率Rp:實際故障磁盤中,被預測為出現(xiàn)故障的磁盤數(shù)量占所有故障磁盤的比。
誤報率Rf:實際正常磁盤中,被預測為出現(xiàn)故障的磁盤數(shù)量占所有正常磁盤的比。
準確率Ra:預測狀態(tài)正確的磁盤數(shù)量和全部磁盤數(shù)量的比。
提前時間Ta:對于故障磁盤而言,正確預測磁盤故障狀態(tài)時間和磁盤實際故障時間之間的時間長度。
執(zhí)行時間Te:指機器學習方法完成一項故障預測所需要的時間。
假定整個測試集中共有N個磁盤,其中正常磁盤No個,故障磁盤Nf個,滿足No+Nf=N。在預測過程中,共有M個磁盤被預測為故障,其中實際故障磁盤數(shù)為Mf,實際正常磁盤數(shù)為Mo,滿足Mo+Mf=M。在預測過程中,共有L個磁盤被預測為正常,其中實際故障磁盤數(shù)為Lf,實際正常磁盤數(shù)為Lo。則有以下關(guān)系成立:
對于實際存儲系統(tǒng)而言,磁盤故障預測的主要目的在于在磁盤故障出現(xiàn)之前,提前對相關(guān)的磁盤進行處理,執(zhí)行包括數(shù)據(jù)備份、數(shù)據(jù)遷移在內(nèi)的各項措施,避免產(chǎn)生數(shù)據(jù)丟失。在上述指標中,提前時間Ta刻畫了機器學習方法所產(chǎn)生的故障預測提前量,這個值越大,意味著留給用戶采取措施的時間越長,完成數(shù)據(jù)可靠性操作的概率也就越大。
執(zhí)行時間Te是機器學習方法完成一項故障預測的時間,刻畫了該方法的執(zhí)行效率,時間越短,效率越高。盡管在實際系統(tǒng)中,留給故障預測的時間可能會比較長,在上面的數(shù)據(jù)集中,每隔一個小時采樣一次,意味著故障預測可以在這一個小時之內(nèi)完成。但是,當系統(tǒng)規(guī)模很龐大時,大量的預測任務(wù)會給機器學習方法帶來較大的壓力。提高執(zhí)行效率,依然具有其內(nèi)在的現(xiàn)實意義。
4.2.2 預測率結(jié)果比較
預測率刻畫了機器學習方法發(fā)現(xiàn)磁盤故障的能力。圖1給出了四種方法在預測率的結(jié)果比較。其中,橫坐標為時間窗口的大小,分別為12h、24h、48h、96h。時間窗口越大,意味著輸入數(shù)據(jù)集中故障磁盤SMART數(shù)據(jù)越多。BPNN方法、決策樹和貝葉斯方法在不同的時間窗口條件下,預測率保持相對穩(wěn)定。其中,BPNN方法的預測率穩(wěn)定在93%左右,貝葉斯方法的預測率穩(wěn)定在96%左右,而決策樹方法穩(wěn)定在98%。對于支持向量機方法,隨著時間窗口的增大,預測率由67%增加到97.3%。支持向量機方法的預測率對時間窗口大小變化所引發(fā)的輸入數(shù)據(jù)集的變化比較敏感,當時間窗口增加大于24h后,預測率的結(jié)果趨于穩(wěn)定。
Figure 1 Prediction rate comparison圖1 預測率結(jié)果比較
4.2.3 誤報率結(jié)果比較
誤報率刻畫了機器學習方法出現(xiàn)錯誤預測結(jié)果的可能性。圖2給出了四種方法的誤報率結(jié)果比較。誤報率越低,證明方法的有效性越好。在四種方法中,支持向量機的效果最好,誤報率最低值僅有0.05%,最高值也只有0.1%。決策樹方法和簡單貝葉斯方法的誤報率比較穩(wěn)定,分別穩(wěn)定在0.3%和0.8%。相比而言,BPNN方法的誤報率變化浮動較大,最低值為0.1%,最高值可以到1%。
4.2.4 準確率結(jié)果比較
準確率刻畫了機器學習方法獲得正確預測結(jié)果的能力,其值越高,則意味著方法的預測效果越好。圖3給出了四種方法的準確率結(jié)果比較。從圖3中可以看出,四種方法都保持了較高的預測準確率。除了簡單貝葉斯方法,另外三種方法大都保持了99%以上的預測準確率。決策樹方法的準確率較為穩(wěn)定。當時間窗口大于24h后,支持向量機方法的預測準確率也穩(wěn)定在99%以上。相比較而言,貝葉斯方法隨著時間窗口的增加,預測準確率有所下降。BPNN方法在時間窗口大小為48h,最高準確率為99.5%;當時間窗口大小為96h,出現(xiàn)了最低準確率為97.4%。這些數(shù)據(jù)表明,上述四種預測方法具有較高的正確預測能力。
Figure 2 Comparison of false alarm rates圖2 誤報率結(jié)果比較
Figure 3 Comparison of accurate rates圖3 準確率結(jié)果比較
4.2.5 提前時間比較
提前時間定義了機器學習方法在實際故障出現(xiàn)前,完成故障預測的時間提前量。這個值越大,表明用戶有更充足的時間完成數(shù)據(jù)備份操作,數(shù)據(jù)的可靠性、可用性也就越高。圖4給出了四種方法的提前時間比較。從圖4中看出,除了BPNN方法外,其他三種方法都保持了相對穩(wěn)定的提前時間。其中,支持向量機和貝葉斯方法的提前時間穩(wěn)定在300h左右,決策樹方法的提前時間穩(wěn)定在290h。隨著時間窗口的增加,BPNN方法的提前時間由270h逐步提升到300h。
Figure 4 Comparison of the time ahead of schedule圖4 提前時間比較
4.2.6 其他結(jié)果
除了上述四個指標,我們還對比了四種方法在對測試集進行預測時所需要的時間。圖5給出了歸一化處理后的時間對比結(jié)果。在四種方法中,決策樹的預測時間最短,BPNN和簡單貝葉斯的預測時間稍長,分別是決策樹方法的2.8倍和1.3倍。支持向量機的預測時間最長,是決策樹方法的715倍。從時間絕對值看,四種方法的執(zhí)行時間都是可以接受的。
Figure 5 Comparison of prediction time圖5 預測所需時間對比
在前文中,我們給出了訓練集的構(gòu)造方法,并說明,每個正常磁盤選擇一條SMART信息,可以改善故障磁盤的SMART信息在整個訓練集中的比例,從而改善預測效果。圖6a和圖6b分別給出了兩種不同條件下、四種不同方法的預測率和準確率對比,它們的時間窗口大小均為12h。其中,Train-1表示在構(gòu)造訓練集數(shù)據(jù)時,每個正常磁盤選取一條SMART信息;Train-2表示構(gòu)造訓練集數(shù)據(jù)時,每個正常磁盤選取四條SMART信息。
Figure 6 Prediction comparison under different constructions of training sets圖6 不同訓練集構(gòu)造方法下的預測結(jié)果對比
從圖6a可以看出,在兩種條件下,決策樹和簡單貝葉斯方法的預測率沒有出現(xiàn)大的變化,但是BPNN和支持向量機方法在選擇Train-1時,預測率有明顯改善,分別提高了15%和17%。從圖6b可以看出,在兩種條件下,預測的準確率并沒有出現(xiàn)大的變化。
數(shù)據(jù)是信息系統(tǒng)的核心組成部分。作為保存數(shù)據(jù)的主要部件,提高磁盤的可靠性對信息系統(tǒng)具有重要意義。SMART數(shù)據(jù)描述了磁盤的多種屬性,是磁盤管理的標準接口?;赟MART數(shù)據(jù),采用機器學習方法對磁盤故障進行預測,可以有效預測可能出現(xiàn)的磁盤故障,有利于提高磁盤的可用性,并增強存儲系統(tǒng)的可靠性。本文基于LibEDM,采用四種典型的機器學習方法,利用SMART數(shù)據(jù),實現(xiàn)對磁盤的故障預測,并使用源自于實際系統(tǒng)的磁盤SMART信息進行故障預測驗證。實驗結(jié)果表明,使用機器學習方法可以有效預測磁盤故障。同時,對不同方法的實驗結(jié)果進行了對比與分析。
[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)
附中文參考文獻:
[6] 蔣艷凰,趙強利.機器學習方法[M].北京:電子工業(yè)出版社,2009.
[18] 劉景寧,饒國林,馮丹.一種基于S.M.A.R.T的保障RAID數(shù)據(jù)高可靠性的方法[J].計算機工程與科學,2007,29(5):21-23.
[19] 張超.高性能磁盤陣列自修復技術(shù)研究[D].長沙:國防科學技術(shù)大學,2008.
[20] 胡維.基于智能預警和自修復的高可靠磁盤陣列關(guān)鍵技術(shù)研究[D].長沙:國防科學技術(shù)大學,2010.