程瑩 邵清
摘要:為了解決傳統(tǒng)服務(wù)器故障檢測方法大多針對已經(jīng)注入的故障類型進(jìn)行檢測,無法獲取未知故障類型,并且檢測速度較慢的問題,提出一種基于自適應(yīng)監(jiān)測過程與決策樹算法的故障檢測方法ASFD。該算法利用自適應(yīng)監(jiān)測方法獲取服務(wù)器數(shù)據(jù),并引入信息熵與鄰居協(xié)作算法對故障檢測點進(jìn)行檢測,然后將SVM與CART相結(jié)合進(jìn)行故障類型判斷。實驗結(jié)果表明,該算法能夠有效實現(xiàn)故障類型判斷,提高了故障檢測速度。
關(guān)鍵詞:云計算;自適應(yīng);故障診斷;數(shù)據(jù)監(jiān)測;決策樹;SVM算法
DOIDOI:10.11907/rjdk.181088
中圖分類號:TP312
文獻(xiàn)標(biāo)識碼:A文章編號文章編號:16727800(2018)009007205
英文標(biāo)題Research on Adaptive Fault Diagnosis Algorithm for Server Fault in Cloud Environment
--副標(biāo)題
英文作者CHENG Ying, SHAO Qing
英文作者單位(School of OpticalElectrical and Computer Engineering,University of Shanghai for Science and Technology,Shanghai 210093,China)
英文摘要Abstract:Most of the traditional server fault detection methods only detect the injected fault types,fail to get the unknown fault types,and the detection speed is slow.In order to solve this problem,a fault detection method based on adaptive monitoring process and decision tree algorithm is proposed ASFD in this paper.The algorithm uses adaptive monitoring method to get server data,and introduces information entropy and neighbor cooperation algorithm to detect the fault detection points.Then SVM and CART are combined to decide the fault type.The experimental results show that the algorithm proposed in this paper can effectively judge the fault type and enhance the fault diagnosis speed.
英文關(guān)鍵詞Key Words:cloud computing;selfadaptive;fault diagnosis;data monitoring;decision tree;SVM algorithm
0引言
隨著云計算發(fā)展不斷完善,用戶量增加導(dǎo)致服務(wù)器任務(wù)數(shù)量增加,且任務(wù)復(fù)雜性提高。云計算服務(wù)器負(fù)載增加及任務(wù)處理難度的提升使得服務(wù)器故障頻發(fā),易致系統(tǒng)崩潰[14]。
針對上述問題,眾多學(xué)者相繼提出了一系列算法用于云計算服務(wù)器故障診斷。文獻(xiàn)[5]將日志類型特征向量應(yīng)用于主故障與伴隨故障,提出基于伴隨狀態(tài)追蹤的持續(xù)故障定位框架CST,實現(xiàn)了注入故障類型檢測,該算法對已存在故障可以有效地判斷分析,但缺少對未知故障的分析。文獻(xiàn)[6]提出基于執(zhí)行軌跡監(jiān)測的故障診斷方式,采用代碼插樁監(jiān)測,然后利用主成分分析抽取關(guān)鍵方式診斷故障類型,該算法缺點主要是由于監(jiān)測方式與插樁方法數(shù)量成正比,因此性能消耗較大,不利于后續(xù)發(fā)展。文獻(xiàn)[7]采用Petri網(wǎng)解決服務(wù)組合的問題,然后基于CTL描述相關(guān)性質(zhì)并提出驗證服務(wù)組合故障分析的實施算法,該算法在處理服務(wù)組合故障時具有一定的優(yōu)越性,但是可靠性較差,并且未考慮QoS問題。
基于此,提出一種云計算環(huán)境下服務(wù)器自適應(yīng)故障診斷算法(Adaptive Fault Diagnosis Method for Server,ASFD)。采取自適應(yīng)監(jiān)測方式實時監(jiān)控服務(wù)器數(shù)據(jù),當(dāng)出現(xiàn)可疑節(jié)點時采取信息熵方式判斷該節(jié)點,若為可疑點則利用鄰居協(xié)作方式判斷其是否為故障節(jié)點。確認(rèn)故障節(jié)點后,為防止進(jìn)一步傳播,利用決策樹算法診斷出該故障具體類型。經(jīng)實驗驗證,該算法能準(zhǔn)確隔離故障節(jié)點,有效判斷故障類型,防止故障節(jié)點造成進(jìn)一步危害。
1基本概念與過程
云服務(wù)依靠服務(wù)器集群的整體工作,可以將服務(wù)器模型抽象為二元組(I,S)。I是指所有服務(wù)器節(jié)點共享的具有帶寬的內(nèi)部通信網(wǎng)絡(luò),負(fù)責(zé)節(jié)點之間的信息交換;S={Si},Si表示編號為i的服務(wù)器節(jié)點,其中i=1,2,3,4…,N。每個節(jié)點都駐留一個內(nèi)部通信系統(tǒng)Ci,專門負(fù)責(zé)本服務(wù)器節(jié)點與其它服務(wù)器節(jié)點之間的消息傳遞。若節(jié)點Si出現(xiàn)故障,表明Si不能正常工作,即Ci將不能正常發(fā)送信息到Si,同時Ci不能從Si獲取信息(見圖1)[8]。
全文分為3部分:自適應(yīng)監(jiān)測、監(jiān)測數(shù)據(jù)管理、故障診斷,具體功能介紹如下:
(1)自適應(yīng)監(jiān)測。使用第三方工具,采取周期性拉模式與事件驅(qū)動推模式對數(shù)據(jù)進(jìn)行監(jiān)測。
(2)監(jiān)測數(shù)據(jù)管理。根據(jù)鄰居節(jié)點協(xié)作、SVM遞歸特征提取監(jiān)測數(shù)據(jù),對歷史數(shù)據(jù)進(jìn)行處理。
(3)故障診斷。通過CART算法建立判斷樹,判斷出故障類型。
2服務(wù)器數(shù)據(jù)監(jiān)測
對服務(wù)器數(shù)據(jù)監(jiān)測模式和監(jiān)測過程進(jìn)行介紹,用于判斷故障類型。
2.1監(jiān)測模式
數(shù)據(jù)監(jiān)測模式是利用監(jiān)測器監(jiān)測各服務(wù)器節(jié)點的資源信息和負(fù)載情況,而后分析監(jiān)測數(shù)據(jù),進(jìn)行故障診斷。監(jiān)測組件是構(gòu)成監(jiān)測服務(wù)組合的基本單元(見圖2)。其中:①采樣器,周期性對所駐留節(jié)點的資源性能和負(fù)載信息進(jìn)行采樣;②通告器,被監(jiān)測器用來將所收集的系統(tǒng)資源性能和負(fù)載信息通告給系統(tǒng)中其它構(gòu)件;③激發(fā)器,對監(jiān)測器和節(jié)點分別進(jìn)行“拉”或者“推”的采樣動作;④推模式,是節(jié)點用來主動將采樣信息“推”給監(jiān)測器的通信接口;⑤拉模式,是監(jiān)測器用來從各節(jié)點“拉”采樣信息的通信接口;⑥庫,是對監(jiān)測器功能進(jìn)行封裝的輕量級庫。
根據(jù)交互過程將負(fù)載監(jiān)測分為周期性和事件驅(qū)動兩種。周期性指被監(jiān)測節(jié)點定期將資源性能和負(fù)載信息主動給監(jiān)測構(gòu)件,或者監(jiān)測構(gòu)件周期性地從其監(jiān)測節(jié)點獲取監(jiān)測數(shù)據(jù)。事件驅(qū)動指只有在特定事件發(fā)生之后被監(jiān)測對象才將自己的資源性能和負(fù)載信息交給監(jiān)測構(gòu)件,或者監(jiān)測構(gòu)件從被監(jiān)測對象獲取數(shù)據(jù)。將其兩兩組合:周期性推模式、周期性拉模式、事件驅(qū)動推模式、事件驅(qū)動拉模式,如表1所示[9]。
2.2監(jiān)測過程
根據(jù)上述監(jiān)測模式,將周期性拉模式與事件驅(qū)動推模式結(jié)合起來,能夠根據(jù)運行環(huán)境和系統(tǒng)資源負(fù)載的變化,適應(yīng)性地發(fā)布獲取資源性能和負(fù)載信息。流程如圖4所示。
其中,周期性拉模式是指在監(jiān)測周期內(nèi)監(jiān)測器主動從被監(jiān)測節(jié)點的采樣器中獲取數(shù)據(jù);事件驅(qū)動推模式是指被監(jiān)測節(jié)點超過濾閾值以后主動將采樣器數(shù)據(jù)推給監(jiān)測器。結(jié)合兩種監(jiān)測模式,以獲取數(shù)據(jù)為故障類型診斷作準(zhǔn)備。
3自適應(yīng)故障診斷算法
針對收集數(shù)據(jù)進(jìn)行分析判斷,使其相對已有故障診斷算法具備更好的診斷效果。在第一次故障點判斷時,采取鄰居協(xié)作方式進(jìn)行初步判斷,避免造成誤判而影響正常的服務(wù)器節(jié)點。在創(chuàng)建決策樹之前,將采集數(shù)據(jù)進(jìn)行篩選,保留能診斷出故障類型的數(shù)據(jù),節(jié)省計算時間與降低空間復(fù)雜度。
3.1決策樹模型改進(jìn)
根據(jù)傳統(tǒng)分類算法CART進(jìn)行改良,建立決策樹之前,將上文介紹的周期性拉模式與事件驅(qū)動推模式結(jié)合對節(jié)點進(jìn)行實時監(jiān)測。發(fā)現(xiàn)有可能故障時,對該節(jié)點進(jìn)行隔離判斷,進(jìn)一步確認(rèn)故障節(jié)點。若為故障點,則將監(jiān)測數(shù)據(jù)進(jìn)行篩選,最后使用篩選數(shù)據(jù)建立決策樹得到故障類型,如圖5所示。
(1)可疑點判斷。與上個監(jiān)測周期內(nèi)監(jiān)測數(shù)據(jù)進(jìn)行比較,采取信息熵的思想進(jìn)行數(shù)據(jù)預(yù)判斷。信息熵表示某信息出現(xiàn)的概率,該信息越是確定,則信息熵越低,反之亦然。所以,信息熵可以用來確定信息不確定性程度。
定義1:設(shè)IS=(U,A,V,f)為信息系統(tǒng)[10]。其中:U表示非空有限集,稱為論域;A為有限屬性集;V=∪a∈AVa,Va為屬性a的值域;f:U×A→V為信息函數(shù)。即對于x∈U,a∈A,有f(x,a)∈Va,任意屬性子集B屬于A決定一個二元補課區(qū)分關(guān)系IND(B),有:
IND(B)={(x,y)∈U×U|a∈B,f(x,a)=f(y,a)}(1)
U/IND(B)構(gòu)成了U的一個劃分,稱為U上的一個知識,其中每個等價類稱為一個知識粒。
定義2:設(shè)IS=(U,A,V,f)為信息系統(tǒng),U/A={X1,X2,…Xm},則A的信息熵[11]定義為:
H(A)=-∑mi=1p(Xi)logp(Xi)(2)
其中,p(Xi)=|Xi|/|U|,i=1,2,3…m,|E|為合集E的基數(shù)。
信息熵的計算與特征值數(shù)量和具體數(shù)值沒有關(guān)系,只需要得到每個分類類別對應(yīng)的概率,用最大似然估計就可以求出當(dāng)前狀態(tài)下的信息熵[1214]。
(2)故障點確認(rèn)。將信息熵較大點定義為可疑節(jié)點,并進(jìn)行進(jìn)一步判斷。由于故障會隨著服務(wù)器節(jié)點信息傳遞而傳播,需要將可疑點進(jìn)行隔離處理。云計算環(huán)境由服務(wù)器集群構(gòu)成,若在監(jiān)測過程中將每個可疑節(jié)點立即隔離,則易造成服務(wù)器集群癱瘓。因此,利用鄰居協(xié)作的方式對可疑節(jié)點進(jìn)一步確認(rèn)。所謂鄰居協(xié)作,是指將可疑點作為圓心,在R為半徑的圓范圍內(nèi)進(jìn)行基于鄰居協(xié)作的預(yù)判斷。原理在于服務(wù)器之間通信是信息的交換,此范圍內(nèi)的所有其它點都將與可疑點進(jìn)行信息交換,如圖7所示。鄰居節(jié)點作為信息發(fā)出者,將發(fā)送信息給可疑點。如果可疑點在相應(yīng)時間范圍內(nèi)將信息反饋給對應(yīng)發(fā)出者,則該可疑點是誤判點,釋放誤判點;反之則是故障點。當(dāng)可疑點定義為故障點時,進(jìn)行隔離,以防故障進(jìn)一步擴(kuò)大,造成更大損失。接下來對故障點的監(jiān)測數(shù)據(jù)進(jìn)行處理,用以診斷故障類型。
(3)故障診斷。針對已確定的故障點,進(jìn)行決策樹訓(xùn)練得到具體故障類型。
用數(shù)據(jù)預(yù)處理器處理監(jiān)測數(shù)據(jù),必須除去不需要和重復(fù)的數(shù)據(jù),此時采取SVMREF算法。假定訓(xùn)練樣本為(xi,yi),(i=1,…,l),最簡單的SVM回歸使用線性函數(shù)對樣本點進(jìn)行擬合。對于無法用線性函數(shù)擬合的問題,則將樣本點映射到高維特征空間,在高維特征空間中建立線性模型f(x,k)=(k·O(x))+b,其中O(x)是將樣本點映射到高維空間的非線性變換。SVM可以表示為:
max12‖ω‖2+C∑ii-1(ζi+ζi*)(3)
s.tyi-f(xi,ω)≤ε+ξi,i=1,…,l;
f(xi,k)-yi≤ε+ξi*,i=1,…,l;
ξi≥0,ξ*i≥0,i=1,…,l。
式(3)中:‖ω‖2代表與模型復(fù)雜度相關(guān)的因素;C>0為懲罰系數(shù),控制對超出誤差樣本的懲罰程度;ε為不敏感函數(shù),其取值大小影響支持向量的數(shù)目;ζi、ζi*為松弛變量,表示樣本偏離ε不敏感區(qū)域的程度。
通過求解上述模型的拉格拉日對偶問題,得原問題的最優(yōu)解:
f(x)=∑l[]i=1(αi-α*i)K(xi,xj)+b(4)
式(4)中:K(xi,xj)稱為核函數(shù),滿足Mercer條件且K(xi,xj)=(φ(xi)φ(xj))。
經(jīng)SVMREF算法計算,最終選擇出6個特征,對于訓(xùn)練集和測試集的擬合效果相對較好,
4仿真實驗與分析
4.1實驗設(shè)計及數(shù)據(jù)
在cloudsim模擬器上初始化GridSim庫,創(chuàng)建兩個數(shù)據(jù)中心,分別用于保存正常數(shù)據(jù)和故障數(shù)據(jù)。創(chuàng)建虛擬機(jī)500個模擬服務(wù)器,并通過一個可以向服務(wù)器隨機(jī)注入故障的軟件注入故障,使用第三方監(jiān)測工具進(jìn)行實時監(jiān)測。最后將500組數(shù)據(jù)隨機(jī)分割成訓(xùn)練集(75%)和驗證集(25%),訓(xùn)練集用來訓(xùn)練決策樹,再用驗證集驗證決策樹的準(zhǔn)確率。通過大量數(shù)據(jù)訓(xùn)練,得到最后的故障類型判斷樹以及部分訓(xùn)練數(shù)據(jù)。
4.2實驗結(jié)果與分析
根據(jù)實驗數(shù)據(jù)訓(xùn)練得到判斷樹,如圖8所示。
由圖8可得,在確認(rèn)為故障點之后,對采集到的數(shù)據(jù)進(jìn)行決策判斷,然后進(jìn)行決策樹訓(xùn)練,就可以得到該故障點的故障類型,方便故障處理后續(xù)工作。實驗結(jié)果表明,本次實驗可以有效判斷故障節(jié)點并作出相應(yīng)的故障類型判斷。
4.3評價指標(biāo)
算法意在提高故障診斷的及時性,因此,評價指標(biāo)是從發(fā)現(xiàn)故障到診斷出故障結(jié)果的耗時。將文獻(xiàn)[15]、[16]提出的故障診斷方式進(jìn)行對比實驗。實驗環(huán)境相同,主要針對服務(wù)器無法啟動、服務(wù)器頻繁啟動和服務(wù)器死機(jī)3種故障進(jìn)行故障診斷,3種故障的注入次數(shù)和成功數(shù)量見表4。
可知,在實驗數(shù)據(jù)增大的情況下,ASFD算法更具及時性。FTPS算法以數(shù)據(jù)傳輸開銷換時間開銷,增加了數(shù)據(jù)傳輸量,使得算法在數(shù)據(jù)集規(guī)模上更大?;诠收夏P偷墓收显\斷方式,在數(shù)據(jù)量小的情況下比較及時,定義了故障與故障特征的關(guān)系,將云計算環(huán)境中出現(xiàn)的故障與故障特征關(guān)聯(lián)起來,但是當(dāng)數(shù)據(jù)量不斷增大時,算法計算過程和判斷過程就較為復(fù)雜,相應(yīng)地會增加故障診斷時間。
5結(jié)語
算法首先采用鄰居節(jié)點作為預(yù)判斷,將自適應(yīng)監(jiān)測方式加入研究內(nèi)容中,更加貼近實際操作環(huán)境。其次,在診斷故障類型前進(jìn)行兩次初步判斷,節(jié)省計算時間成本。在判斷故障類型時,CART算法做了二次遞歸分割,構(gòu)造出所需要的決策判斷樹。對比實驗證明,在數(shù)據(jù)量不斷增大的情況下,該故障檢測方式可以更快地檢測故障。但是,使用第三方監(jiān)測導(dǎo)致故障檢測成本增加,且監(jiān)測節(jié)點增加導(dǎo)致數(shù)據(jù)量計算相應(yīng)增加,會提高后續(xù)的檢測工作難度,解決該問題是以后的研究目標(biāo)。
參考文獻(xiàn)參考文獻(xiàn):
[1]BAROLLI L,CHEN X,XHAFA F.Advances on cloud services and cloud computing[J].Concurrency & Computation Practice & Experience,2015,27(8):19851987.
[2]KHARI M, KUMAR M, VAISHAL I.Comprehensive study of cloud computing and related security issues[J].Big Data Analytics,2018(1):699707.
[3]劉永.云計算技術(shù)研究綜述[J].軟件導(dǎo)刊,2015,14(9):46.
[4]胡瑩.云計算及其關(guān)鍵技術(shù)研究[J].軟件導(dǎo)刊,2016,15(8):159161.
[5]饒翔,王懷民,陳振邦,等.云計算系統(tǒng)中基于伴隨狀態(tài)追蹤的故障檢測機(jī)制[J].計算機(jī)學(xué)報,2012,35(5):856870.
[6]王子勇,王燾,張文博,等.一種基于執(zhí)行軌跡監(jiān)測的微服務(wù)故障診斷方法[J].軟件學(xué)報,2017,28(6):14351454.
[7]范貴生,虞慧群,陳麗瓊,等.基于Petri網(wǎng)的服務(wù)組合故障診斷與處理[J].軟件學(xué)報,2010,21(2):231247.
[8]左朝樹.一種分布式并行服務(wù)器節(jié)點故障檢測算法[J].電子科技大學(xué)學(xué)報,2007,36:119125.
[9]楊剛,隨玉磊.面向云計算平臺自適應(yīng)資源監(jiān)測方法[J].計算機(jī)工程與應(yīng)用,2009,45(29):1417.
[10]WANG G Y.Granular computing based data mining in the views of rough set and fuzzy set[C].IEEE International Conference on Granular Computing,2010:401416.
[11]周薇,李筱菁.基于信息熵理論的綜合評價方法[J].科學(xué)技術(shù)與工程,2010,10(23):58395843.
[12]嚴(yán)化寧,孫超.無線傳感器網(wǎng)絡(luò)中改進(jìn)的最大似然估計定位算法[C].西安:上海聲學(xué)學(xué)術(shù)會議,2009.
[13]敬明旻,肖莉,楊傳書,等.基于最大似然估計與樸素貝葉斯的WSN故障檢測[J].電子技術(shù)應(yīng)用,2015,41(7):114117.
[14]馬賢同,羅景青,劉興華.基于最大似然估計的不可區(qū)分多目標(biāo)定位法[J].計算機(jī)應(yīng)用研究,2016,33(3):741743.
[15]王媛,王意潔,鄧瑞鵬,等.云計算環(huán)境下的容錯并行Skyline查詢算法研究[J].計算機(jī)科學(xué)與探索,2011,5(9):804814.
[16]黃婕.基于云計算的故障檢測方法研究與實現(xiàn)[D].昆明:昆明理工大學(xué),2014.
責(zé)任編輯(責(zé)任編輯:何麗)