高 劍,于 康,卿 鵬,尉紅梅
(江南計算技術(shù)研究所,江蘇 無錫 214083)(*通信作者電子郵箱gaojian_whu@163.com)
高性能計算系統(tǒng)廣泛應(yīng)用于國防建設(shè)、科學(xué)研究以及國民金融等重要領(lǐng)域,隨著系統(tǒng)規(guī)模的擴(kuò)大,系統(tǒng)的平均無故障時間(Mean Time Between Failures, MTBF)逐漸降低,為系統(tǒng)可靠性帶來了嚴(yán)峻挑戰(zhàn)[1]。根據(jù)可靠性理論的論述,若系統(tǒng)組件的故障(fault)在運行時被激活,將導(dǎo)致系統(tǒng)內(nèi)部出現(xiàn)錯誤狀態(tài)(error),錯誤狀態(tài)會在組件間不斷地傳播,最終引發(fā)系統(tǒng)的失效(failure),即系統(tǒng)失效是一個由故障引起錯誤狀態(tài)并逐漸積累的漸進(jìn)過程[2]。
故障管理是維護(hù)高性能計算系統(tǒng)可靠性的重要基礎(chǔ),故障定位作為故障管理的核心功能,發(fā)揮著關(guān)鍵作用。故障定位主要包括檢測和分析兩個主要步驟:故障檢測負(fù)責(zé)及時發(fā)現(xiàn)由故障引起的異常表現(xiàn),也稱作癥狀(symptom);故障分析負(fù)責(zé)根據(jù)檢測到的癥狀快速、準(zhǔn)確地推理得出故障,縮短故障響應(yīng)時間。高效的故障定位有利于系統(tǒng)在失效前采取相應(yīng)的處理策略以避免故障的擴(kuò)散,從而提高系統(tǒng)利用率。
目前,從計算機(jī)科學(xué)的不同領(lǐng)域派生出的故障定位方法主要分為事件關(guān)聯(lián)[3]與主動探測[4]兩類。
事件關(guān)聯(lián)是應(yīng)用最為廣泛的故障定位技術(shù),要求被管設(shè)備在自身狀態(tài)出現(xiàn)異常時,能夠向外發(fā)出癥狀告警,由中央管理器負(fù)責(zé)收集并分析被管設(shè)備發(fā)出的告警事件。文獻(xiàn)[5]對事件關(guān)聯(lián)進(jìn)行了較為全面的綜述,包括基于規(guī)則、模型以及案例等具體的實現(xiàn)方式。
基于故障傳播模型(Fault Propagation Model, FPM)[6],也稱作“癥狀-故障”模型的事件關(guān)聯(lián)是高性能計算系統(tǒng)中常用的故障定位方式,該方式通過挖掘歷史故障經(jīng)驗建立“癥狀-故障”之間的映射關(guān)系。當(dāng)故障發(fā)生時,以系統(tǒng)日志中的監(jiān)控狀態(tài)作為“癥狀-故障”模型的癥狀輸入,并利用不同的分析算法進(jìn)行推理和調(diào)試。這種方式的不足在于:1)定位不及時,由于故障具備傳播性,滯后性可能引發(fā)更多的故障;2)隨著系統(tǒng)規(guī)模的不斷擴(kuò)大,事件數(shù)量劇增,構(gòu)建“癥狀-故障”模型的復(fù)雜度大幅提高;3)事件在傳播過程中不可避免地出現(xiàn)延遲、丟失等情況,容易造成故障的誤報或漏報;4)管理員的干預(yù)調(diào)試影響系統(tǒng)的正常運行。
主動探測是近年來的研究熱點,這種方式基于系統(tǒng)的拓?fù)浣Y(jié)構(gòu)在運行時主動地執(zhí)行不同的探針,根據(jù)探針的探測結(jié)果實現(xiàn)故障的檢測和分析。探針是指執(zhí)行在特定機(jī)器也稱作探測站上的一類特殊程序,它通過發(fā)送命令或請求到系統(tǒng)組件實現(xiàn)端到端的探測,例如ping和traceroute命令可視作檢測網(wǎng)絡(luò)可用性的探針。文獻(xiàn)[7]指出探測站與探針集的選擇是影響主動探測效率的關(guān)鍵因素;文獻(xiàn)[8]對目前常用的探測站和探針集選擇算法進(jìn)行了總結(jié)與對比。
由于能夠自適應(yīng)地選擇執(zhí)行的探針集,主動探測與事件關(guān)聯(lián)相比,具有較強(qiáng)的主動性、實時性以及針對性,能夠避免癥狀延遲或丟失對故障定位準(zhǔn)確性的影響,但將主動探測直接應(yīng)用于高性能計算系統(tǒng)的缺陷[9]在于:1)系統(tǒng)的規(guī)模不斷增長,所需探針的數(shù)目也隨之劇增,且探針的設(shè)計復(fù)雜度高;2)具備強(qiáng)探測能力的探針是有限的,部署探測站的能力也是有限的;3)探測站和探針集的選擇已被證明是NP問題,相關(guān)選擇算法的執(zhí)行時間隨系統(tǒng)規(guī)模的增加呈指數(shù)級增長;4)大量探針的執(zhí)行將加劇網(wǎng)絡(luò)的負(fù)載,占用系統(tǒng)寶貴的計算資源。
針對事件關(guān)聯(lián)和主動探測技術(shù)應(yīng)用于高性能計算系統(tǒng)的問題,本文提出了一種基于消息傳遞的故障定位(Message-Passing based Fault Localization, MPFL)框架,MPFL框架首次將消息庫與故障定位問題聯(lián)系起來,并采用分布式的設(shè)計思想,將故障定位任務(wù)分配給計算節(jié)點,能夠在系統(tǒng)運行時實現(xiàn)異常狀態(tài)的檢測,并且將事件關(guān)聯(lián)與主動探測的優(yōu)勢相結(jié)合,提高了故障分析的準(zhǔn)確性。
高性能計算系統(tǒng)的節(jié)點通過特定的硬件以及高速網(wǎng)絡(luò)互連,大部分節(jié)點具有同構(gòu)性且節(jié)點狀態(tài)在執(zhí)行計算任務(wù)時具備相似性。每個節(jié)點獨立運行,并與其他節(jié)點相互通信來協(xié)同完成計算任務(wù),節(jié)點的通信機(jī)制廣泛使用消息傳遞。
因此,MPFL框架的基本思路是充分利用節(jié)點間的消息傳遞在系統(tǒng)運行時獲取節(jié)點狀態(tài)。在此基礎(chǔ)上,設(shè)計基于樹形拓?fù)涞墓收蠙z測(Tree-based Fault Detection, TFD)和故障分析(Tree-based Fault Analysis, TFA)算法。
如圖1所示,MPFL框架主要包括故障檢測和故障分析兩個功能模塊,在系統(tǒng)軟件架構(gòu)中與消息庫位于同一層次,兩者相互協(xié)作為上層并行應(yīng)用程序提供故障定位服務(wù)。此外,作業(yè)管理、網(wǎng)絡(luò)管理、操作系統(tǒng)及文件系統(tǒng)等系統(tǒng)組件為故障定位提供支持,如提供故障信息和觸發(fā)故障定位等。
圖1 MPFL通用架構(gòu)
MPFL將故障定位任務(wù)與消息庫緊密聯(lián)系起來,能夠更好地適應(yīng)高性能計算系統(tǒng),主要原因包括:
1)受作業(yè)調(diào)度和節(jié)點分配策略等因素影響,高性能計算系統(tǒng)的部分故障往往只在特定的運行環(huán)境中被激活,故障難以重現(xiàn)和調(diào)試;若能在節(jié)點運行時獲取節(jié)點異常狀態(tài),有利于解決此類故障。
2)參與大規(guī)模計算的節(jié)點數(shù)巨大,且節(jié)點之間需要相互通信協(xié)作,部分節(jié)點的故障更易于在其他節(jié)點中體現(xiàn),此時需要基于消息傳遞協(xié)同多個節(jié)點進(jìn)行綜合分析。
3)通過與消息庫的緊耦合,能夠主動地獲取并行應(yīng)用程序運行時的內(nèi)部狀態(tài)信息,具備較強(qiáng)的實時性和針對性,能夠避免將極大的時間與計算成本消耗在海量系統(tǒng)日志的數(shù)據(jù)挖掘工作中。
4)故障定位可獨立于節(jié)點計算等工作進(jìn)程,節(jié)點在進(jìn)行故障檢測和分析時不影響系統(tǒng)的正常工作,并且整個過程對用戶是透明的,用戶只需要關(guān)心故障定位結(jié)果以采取相應(yīng)的處理策略。
5)作業(yè)管理等系統(tǒng)組件雖然能夠主動或被動地檢測到部分系統(tǒng)異常,但它們之間相互獨立,并不共享異常信息。MPFL將不同組件的異常信息進(jìn)行匯總分析,有利于提高故障定位的準(zhǔn)確性。
目前,高性能計算系統(tǒng)普遍采用全局的集中式故障管理,隨著系統(tǒng)規(guī)模擴(kuò)大,故障概率增加、故障關(guān)聯(lián)性增強(qiáng),并且故障類型更為復(fù)雜多樣,這種方式容易陷入性能瓶頸[10]。
2.2.1 故障定位樹
MPFL框架采用層次化和分布式的設(shè)計思想,將全局的故障定位任務(wù)分配給不同的節(jié)點,由各節(jié)點運行輕量級的故障定位進(jìn)程對局部范圍內(nèi)的多個節(jié)點進(jìn)行故障的檢測和分析。具體地,當(dāng)系統(tǒng)在對每個作業(yè)進(jìn)行初始化時,根據(jù)相關(guān)配置將所有參與計算的節(jié)點進(jìn)行邏輯上的樹形劃分,邏輯劃分得到的樹形拓?fù)浞Q作故障定位樹(Fault Localization Tree, FLT)。在系統(tǒng)中并行執(zhí)行的每個作業(yè)都擁有各自的FLT結(jié)構(gòu),參與多個作業(yè)的節(jié)點可以屬于不同的FLT,但在每個FLT中的位置可能并不相同。
在FLT中,除根節(jié)點外,每個節(jié)點的父節(jié)點是唯一的;除葉節(jié)點外,每個節(jié)點擁有若干個子節(jié)點。MPFL指定由父節(jié)點負(fù)責(zé)所有與子節(jié)點故障相關(guān)的癥狀信息收集與分析工作,即父節(jié)點是其所有子節(jié)點的故障定位節(jié)點(Fault Localization Node, FLN)。FLT的結(jié)構(gòu)在作業(yè)的生命周期內(nèi)不會改變,但由于父節(jié)點可能失效,同時考慮節(jié)點負(fù)載、性能開銷等因素,每個節(jié)點能夠根據(jù)相關(guān)參數(shù)及其閾值(如帶寬、CPU利用率等)選擇替代的故障定位節(jié)點(Substitute of Fault Localization Node, SFLN)。顯然,同一子樹內(nèi)的節(jié)點狀態(tài)與存儲的癥狀信息往往具備更強(qiáng)的關(guān)聯(lián)性,失去FLN的節(jié)點通常選擇同一子樹的更高層節(jié)點作為SFLN。
在FLT中,雖然每個節(jié)點的FLN是唯一的,但SFLN可以有多個。此外,MPFL指定根節(jié)點負(fù)責(zé)接收不同節(jié)點上報的故障定位結(jié)果并向用戶報告,同時提供接口使得用戶能夠?qū)收隙ㄎ贿^程進(jìn)行管理。
故障定位樹的優(yōu)勢在于邏輯層次清晰,具備較強(qiáng)的可擴(kuò)展性,系統(tǒng)可自適應(yīng)地增加或刪減節(jié)點;此外,各節(jié)點獨立工作,能夠同時處理多個并發(fā)性故障;同時,樹形拓?fù)淠軌蚱鹾辖^大多數(shù)高性能計算系統(tǒng)的物理拓?fù)?,同一子樹的?jié)點可獲得較高的通信效率,有利于提高故障定位的整體效率。
2.2.2 故障檢測算法——TFD
故障檢測的目標(biāo)是及時地發(fā)現(xiàn)由故障引起的癥狀,而癥狀的空間性和時間性將直接影響故障分析的準(zhǔn)確性??臻g性是指收集的癥狀能否覆蓋所有可能的故障,因此需要獲取不同硬件部件和不同軟件層次的狀態(tài),擴(kuò)大對故障的覆蓋范圍;時間性指的是癥狀的收集應(yīng)當(dāng)在系統(tǒng)失效之前,并且能夠體現(xiàn)節(jié)點狀態(tài)隨時間的變化過程。
為滿足癥狀收集的空間性和時間性,結(jié)合FLT的結(jié)構(gòu)及其工作機(jī)制,節(jié)點在運行時可利用消息庫、網(wǎng)絡(luò)管理以及操作系統(tǒng)等組件實現(xiàn)對癥狀的檢測。表1給出了各組件報告的主要癥狀模式。
表1 系統(tǒng)組件報告的主要癥狀模式
算法1描述了基于故障定位樹的故障檢測算法TFD,作業(yè)初始化后,節(jié)點正常工作,若系統(tǒng)組件發(fā)現(xiàn)可疑節(jié)點(Suspected Fault Node, SFN)出現(xiàn)異常癥狀,計算合適的癥狀接收節(jié)點并發(fā)送。
算法1 TFD算法。
對每個節(jié)點:
輸入:故障定位樹FLT;
WHILE (Job_Finished!=true) DO
IF Find_Symp(SFN) THEN
//檢測到故障癥狀
IF Available_FLN(SFN) THEN
//判斷可疑節(jié)點的FLN是否可用
Send theSymptomto SFN’s FLN;
ELSE
Select the SFN’s SFLN;
Send theSymptomto SFN’s SFLN;
END IF
END IF
IF (Recv_Symp==true) THEN
Store_ Symp (Symptom);
//將接收到的癥狀保存到癥狀集
END IF
END WHILE
TFD算法在一個作業(yè)中的示例如圖2所示,假設(shè)該作業(yè)在一個集群的9個計算節(jié)點上執(zhí)行,圖中的樹形拓?fù)錇檫壿嬐負(fù)?,與物理連接無關(guān),即為該作業(yè)的故障定位樹,序號表示了事件發(fā)生的順序:
1)節(jié)點n在與節(jié)點m通信時,發(fā)現(xiàn)來自節(jié)點m的消息錯誤,節(jié)點n將此癥狀報告給節(jié)點m的FLN;同時,當(dāng)節(jié)點y在給節(jié)點x發(fā)送點對點消息時,發(fā)現(xiàn)節(jié)點x響應(yīng)超時。
2)節(jié)點y試圖將節(jié)點x響應(yīng)超時的癥狀報告給其FLN,但通過可用性探測發(fā)現(xiàn)其FLN已經(jīng)過載,不再接收新癥狀;作業(yè)管理同樣對節(jié)點x的FLN進(jìn)行了探測并排除,為簡單起見,圖中并未標(biāo)出。
3)根據(jù)系統(tǒng)配置,節(jié)點y選擇根節(jié)點作為節(jié)點x的SFLN,并將其響應(yīng)超時癥狀發(fā)送到根節(jié)點;同時,作業(yè)管理向根節(jié)點報告節(jié)點x無心跳信息。
TFD算法的優(yōu)勢在于節(jié)點只需負(fù)責(zé)局部范圍內(nèi)的故障,并且能夠自適應(yīng)地選擇故障定位節(jié)點,有效緩解了單點瓶頸問題;同時,基于消息傳遞能夠獲取節(jié)點運行時的狀態(tài),并且支持并行處理多個癥狀報告,提高了故障定位的效率。
圖2 TFD算法的示例
當(dāng)節(jié)點接收到的癥狀集滿足用戶設(shè)定的觸發(fā)條件時,例如與某一節(jié)點相關(guān)的癥狀數(shù)量達(dá)到設(shè)定的閾值時,節(jié)點的故障定位進(jìn)程將進(jìn)入分析階段。
高性能計算系統(tǒng)規(guī)模龐大且結(jié)構(gòu)復(fù)雜,為故障分析帶來了許多挑戰(zhàn):1)相同的癥狀可能是由不同組件的故障引起;2)同一組件的故障也可能引發(fā)多種不同的癥狀;3)某些故障可能導(dǎo)致其余多個故障的發(fā)生,甚至引發(fā)事件風(fēng)暴[11],即將一個癥狀的發(fā)生稱作一個事件,由于故障的關(guān)聯(lián)性,同一時刻出現(xiàn)大量重復(fù)、冗余的事件導(dǎo)致系統(tǒng)性能嚴(yán)重下降。
為應(yīng)對上述挑戰(zhàn),本文將事件關(guān)聯(lián)與主動探測兩種方法的優(yōu)勢相結(jié)合,在TFD算法的基礎(chǔ)上,提出基于故障定位樹的分析(TFA)算法。圖3描述了TFA算法的結(jié)構(gòu),首先,故障定位節(jié)點使用基于規(guī)則的事件關(guān)聯(lián)對TFD算法檢測到的癥狀集進(jìn)行推理,獲得多個不同的候選故障集;然后,利用消息探測分別對不同的候選故障集進(jìn)一步地分析,最終得到若干個不同的故障。
1)基于規(guī)則的事件關(guān)聯(lián)。
基于規(guī)則的實現(xiàn)是事件關(guān)聯(lián)應(yīng)用最為廣泛的一種方式,這種方式預(yù)先建立規(guī)則庫,每條規(guī)則包含控制邏輯,規(guī)則形式為:IF condition A THEN action B,在進(jìn)行分析時,采用前向鏈推理機(jī)制,選擇滿足條件的規(guī)則并執(zhí)行相應(yīng)的動作。
根據(jù)文獻(xiàn)[12]對高性能計算系統(tǒng)的故障概率、故障位置、時間分布等特征的分析與論述,結(jié)合文獻(xiàn)[13]對事件壓縮、聚類以及泛化等規(guī)則的分類和總結(jié),TFA算法的事件關(guān)聯(lián)主要包括3個步驟:
a)排重。排除事件集合中大量重復(fù)、相似及冗余的事件,有效地減少事件的數(shù)量。
b)組合。將具備關(guān)聯(lián)性的不同事件歸并為同一事件組,事件集被劃分為互不相交的事件組,充分增強(qiáng)事件語義。
c)分析。對各事件組分別進(jìn)行推理,得到相應(yīng)的候選故障集,每個候選故障集中包含所有可能的事件原因。
圖3 TFA算法結(jié)構(gòu)
2)消息探測。
TFA算法中的消息探測借鑒了主動探測的思想,并結(jié)合高性能計算系統(tǒng)天然的節(jié)點通信優(yōu)勢,可以視作基于消息傳遞設(shè)計實現(xiàn)的輕量級主動探測。
消息探測的主要目標(biāo)是針對候選故障集主動獲取更多的節(jié)點狀態(tài)信息,以對多個故障假設(shè)進(jìn)行篩選,進(jìn)一步地確定故障。消息探測主要包括三類消息探針:
a)響應(yīng)探測。判斷與目標(biāo)節(jié)點是否能夠正常通信,即探測目標(biāo)節(jié)點的可用性。
b)狀態(tài)探測。負(fù)責(zé)獲取目標(biāo)節(jié)點的特定性能指標(biāo),如帶寬、CPU利用率等;狀態(tài)探測常用于節(jié)點的SFLN選擇。
c)日志探測。要求目標(biāo)節(jié)點返回某個時間范圍內(nèi)的消息日志[14],消息日志通常包含了消息的類型、標(biāo)記、時間戳以及完成狀態(tài)等信息。
在消息探測階段,故障定位節(jié)點需要針對候選故障集使用不同的探測策略,包括不同的消息探針組合及其執(zhí)行順序。消息探測的優(yōu)勢在于探針實現(xiàn)簡單,每個計算節(jié)點都可作為探測站發(fā)送探針,并且探針的執(zhí)行不會增加過大的網(wǎng)絡(luò)負(fù)載,也無需占用計算資源。
無論是基于規(guī)則的事件關(guān)聯(lián)中的三個分析步驟,還是消息探測中探針的組合及其執(zhí)行順序的選擇,都需要得到相關(guān)性規(guī)則庫的支持。相關(guān)性規(guī)則庫通常是根據(jù)系統(tǒng)歷史故障記錄中的關(guān)聯(lián)性建立的,與TFA算法的分析效率緊密相關(guān),可基于關(guān)聯(lián)規(guī)則、頻繁序列模式等算法充分挖掘事件記錄間的關(guān)聯(lián)性。同時,相關(guān)性規(guī)則庫也為用戶提供了接口,支持用戶動態(tài)部署和更新規(guī)則。以節(jié)點的停機(jī)故障為例,表2給出了部分相關(guān)規(guī)則。
TFA算法的描述見算法2。特別地,雖然針對不同的候選故障集,消息探測分別執(zhí)行相應(yīng)的探測策略并根據(jù)探測結(jié)果確定故障,但從不同候選故障集推導(dǎo)出的故障可能相同。
算法2 TFA算法。
輸入:癥狀集Symp_Set。
輸出:故障集Fault_Set。
Initialization:Fault_Set=?;
Purify_Set=Event_Purify(Symp_Set);
//排重
Grouping_Set=Event_Grouping(Purify_Set);
//組合
FORi=0 to |Grouping_Set| DO
//對每個事件組進(jìn)行分析,得到相應(yīng)候選故障集
Candidate_Faultsi=Event_Reasoning(Groupi);
AddCandidate_FaultsitoCandidate_Fault_Sets;
END FOR
FORi=0 to |Candidate_Fault_Sets| DO
//對每個候選故障集進(jìn)行消息探測
FORj=0 to |Candidate_Faultsi| DO
//對候選故障集中的多個故障假設(shè)進(jìn)行分析
IF Msg_Probing(Candidate_Faultsij) THEN
AddCandidate_FaultsijtoFault_Set;
break;
END IF
END FOR
END FOR
Return(Fault_Set);
TFA算法有效緩解了事件關(guān)聯(lián)的效率下降問題;同時,消息探測在高性能計算系統(tǒng)中適應(yīng)性強(qiáng),主動、及時且有針對性地獲取節(jié)點的運行時狀態(tài),能夠避免癥狀延遲或丟失對故障定位準(zhǔn)確度的影響。
表2 與節(jié)點停機(jī)故障相關(guān)的規(guī)則示例
本章通過模擬實驗對MPFL框架的故障定位能力及其對應(yīng)用程序的性能影響進(jìn)行評價。
本實驗的平臺是一個具有10個計算節(jié)點的典型集群,每個節(jié)點擁有64 GB內(nèi)存,2個8核心Intel Xeon處理器,節(jié)點使用InfiniBand高速網(wǎng)絡(luò)互連;操作系統(tǒng)為Red Hat Enterprise Linux Server release 6.3;消息庫的版本為MVAPICH2- 2.2。
高性能計算系統(tǒng)的故障模式主要有通信網(wǎng)絡(luò)故障、計算節(jié)點故障及存儲節(jié)點故障[15],其中計算節(jié)點的停機(jī)故障是影響并行程序運行穩(wěn)定性,甚至引發(fā)系統(tǒng)失效的主要原因[16],因此,本實驗以定位節(jié)點的停機(jī)故障為目標(biāo),以證明MPFL框架的故障定位能力。
為模擬節(jié)點的停機(jī)故障,本文對消息傳遞接口(Message Passing Interface, MPI)的典型開源實現(xiàn),即MVAPICH源碼進(jìn)行簡單的修改:在作業(yè)初始化時,所有進(jìn)程從配置文件獲取模擬節(jié)點停機(jī)故障的進(jìn)程號,并且進(jìn)程在執(zhí)行消息發(fā)送操作前需滿足要求:
1)若本進(jìn)程模擬故障,不執(zhí)行任何動作,直接結(jié)束。
2)若目標(biāo)進(jìn)程模擬故障,對于探測消息,默認(rèn)本次探測超時并結(jié)束發(fā)送操作;否則不執(zhí)行任何動作,結(jié)束操作。
3)本進(jìn)程與目標(biāo)進(jìn)程均正常,正常發(fā)送消息。
這些要求保證了模擬故障進(jìn)程不發(fā)送任何消息,也不可能接收到消息。此外,節(jié)點無心跳、帶寬下降、CPU利用率過高等多個癥狀在程序運行時被注入,以模擬其余系統(tǒng)組件的行為,從而達(dá)到模擬節(jié)點停機(jī)故障的效果。
通常,一個節(jié)點的停機(jī)故障將導(dǎo)致運行在該節(jié)點上的所有程序都終止,因此運行一個測試程序且僅有一個進(jìn)程模擬節(jié)點停機(jī)故障即可。同時,為滿足進(jìn)程間的通信量需求,測試程序需進(jìn)行多次全交換(all-to-all)通信,并且基于多線程實現(xiàn)癥狀信息的收集與分析。
假設(shè)程序的進(jìn)程規(guī)模為P,實驗分為N組,每組實驗的進(jìn)程規(guī)模不同,且重復(fù)測試M次,每次實驗隨機(jī)選擇1個進(jìn)程Pf模擬節(jié)點停機(jī)故障。本實驗的參數(shù)如表3所示。
表3 功能評價的實驗參數(shù)
實驗結(jié)果表明,進(jìn)程Pf總是在幾秒的時間內(nèi)被找到,與通常情況相比,不再需要提供冗長的運行狀態(tài)上下文給用戶進(jìn)行人工分析,用戶只需要關(guān)心故障定位的結(jié)果,這極大地減輕了用戶的負(fù)擔(dān),因此,可以認(rèn)為MPFL框架是有效的。
實際上,故障定位的準(zhǔn)確性與相關(guān)性規(guī)則緊密相關(guān),但規(guī)則庫往往無法覆蓋所有的系統(tǒng)異常,故障定位不可能做到100%正確。例如,表2的組合規(guī)則將時間窗口T內(nèi)的事件劃分為一個事件組,若T值過小,由于消息存在延遲性,某些癥狀可能在T之外到達(dá),導(dǎo)致故障信息不足;若T值過大,事件之間的關(guān)聯(lián)性將降低,影響故障分析的準(zhǔn)確性。
本節(jié)使用美國航空航天局在NAS(Numerical Aerodynamic Simulation)項目中開發(fā)的面向高性能計算的并行基準(zhǔn)測試集(NAS Parallel Benchmark, NPB)[17]中的兩個核心程序:快速傅里葉變換(NPB Fast Fourier Transformation, NPB-FT)與整數(shù)排序(NPB Integer Sort, NPB-IS)對MPFL的性能進(jìn)行測試:
1)NPB-FT利用快速傅里葉變換來解決三維的偏微分方程,其初始階段包含大量的迭代,每次迭代包含大量的all-to-all通信。
2)NPB-IS用于求解基于桶排序的二維大整數(shù)排序,同樣包含大量的all-to-all通信。
實驗分別對部署MPFL前后的NPB-FT、NPB-IS計算性能進(jìn)行比較。與3.1節(jié)類似,為了模擬各系統(tǒng)組件發(fā)布癥狀的行為,當(dāng)測試部署MPFL的NPB-FT和NPB-IS時,在運行時周期性地注入不同的癥狀。不同的是,本實驗注入的癥狀不會使得TFA算法推導(dǎo)出故障。
此外,NPB-FT要求進(jìn)程規(guī)模為2的冪次,本實驗將沿用表3所示的參數(shù)設(shè)置,Pf除外,即無需模擬故障。
實驗結(jié)果如圖4~5所示,本文進(jìn)行了4組對比實驗,測試程序規(guī)模(CLASS)選擇A規(guī)模,進(jìn)程規(guī)模依次為16,32,64以及128??梢钥闯觯琈PFL部署前后的NPB-FT、NPB-IS計算性能無明顯差距,在圖中用程序的每秒百萬次浮點運算(Million Floating-point Operations per Second, MFLOPS)進(jìn)行表示。究其原因,這是由于在正常程序的運行過程中不會觸發(fā)完整的故障分析過程。同時,測試程序的性能減速沒有隨著進(jìn)程規(guī)模的持續(xù)增加而呈上升趨勢。經(jīng)過統(tǒng)計分析,部署MPFL僅僅分別給NPB-FT和NPB-IS帶來了5.68%和2.12%的運行開銷,這說明MPFL對系統(tǒng)的性能影響較小,具備較強(qiáng)的可擴(kuò)展性。
圖4 NPB-FT測試結(jié)果(CLASS=A)
圖5 NPB-IS測試結(jié)果(CLASS=A)
故障定位作為故障管理的核心,對提高系統(tǒng)可靠性有重要意義,但當(dāng)前的故障定位技術(shù)難以有效地直接應(yīng)用于高性能計算系統(tǒng)。本文首次將故障定位問題與消息庫緊密聯(lián)系起來,且考慮充分利用各系統(tǒng)組件獨立獲取的異常信息,提出一種基于消息傳遞的故障定位框架MPFL,并設(shè)計實現(xiàn)基于故障定位樹的故障檢測與分析算法,能夠為高性能計算系統(tǒng)提供實時的輕量級分布式故障定位服務(wù)。本文通過定位模擬的節(jié)點停機(jī)故障對MPFL的功能進(jìn)行了原型實驗驗證,并分別利用NPB-FT與NPB-IS基準(zhǔn)測試程序?qū)PFL進(jìn)行了性能評價。實驗結(jié)果表明,MPFL框架是有效的,并且具備較強(qiáng)的可擴(kuò)展性。
下一步的工作重點包括:1)對歷史故障經(jīng)驗進(jìn)行更深度的挖掘以提高故障定位的準(zhǔn)確性;2)除消息庫外,開發(fā)網(wǎng)絡(luò)管理、操作系統(tǒng)等系統(tǒng)組件對MPFL框架的支持;3)針對MPFL框架的故障定位準(zhǔn)確率、性能開銷、可擴(kuò)展性等方面進(jìn)行更全面的評價。
References)
[1] ZHENG Z, LI Y, LAN Z. Anomaly localization in large-scale clusters [C]// Proceedings of the 2007 IEEE International Conference on Cluster Computing. Piscataway, NJ: IEEE, 2007: 322-330.
[2] AVIZIENIS A, LAPRIE J C, RANDELL B. Fundamental concepts of dependability [R]. Newcastle: LAAS-CNRS, 2001: 4.
[3] JORDAAN J F, PATEROK M. Event correlation in heterogeneous networks using the OSI management framework [C]// Proceedings of the IFIP TC6/WG6.6 Third International Symposium on Integrated Network Management with Participation of the IEEE Communications Society CNOM and with Support from the Institute for Educational Services. Amsterdam: North-Holland Publishing Co., 1993: 683-695.
[4] NATU M, SETHI A S. Active probing approach for fault localization in computer networks [C]// Proceedings of the 2006 4th IEEE/IFIP Workshop on End-to-End Monitoring Techniques and Services. Piscataway, NJ: IEEE, 2006: 25-33.
[5] LGORZATA STEINDER M, SETHI A S. A survey of fault localization techniques in computer networks [J]. Science of Computer Programming, 2004, 53(2): 165-194.
[6] KATKER S, PATEROK M. Fault isolation and event correlation for integrated fault management [C]// Proceedings of the 5th IFIP/IEEE International Symposium on Integrated Network Management. Berlin: Springer, 1997: 583-596.
[7] CHENG L, QIU X, MENG L, et al. Efficient active probing for fault diagnosis in large scale and noisy networks [C]// Proceedings of the 29th IEEE International Conference on Computer Communications. Washington, DC: IEEE Computer Society, 2010: 1-9.
[8] PATIL B M, PATHAK V K. Survey of probe set and probe station selection algorithms for fault detection and localization in computer networks [J]. IEEE Transactions on Networks and Communications, 2015, 3(4): 57.
[9] 孟洛明,黃婷,成璐,等.支持多故障定位的探測站點部署方法[J].北京郵電大學(xué)學(xué)報,2009,32(5):1-5.(MENG L M, HUANG T, CHENG L, et al. Probe station placement for multiple faults localization [J]. Journal of Beijing University of Posts and Telecommunications, 2009, 32(5): 1-5.)
[10] HUKERIKAR S, DINIZ P C, LUCAS R F, et al. Opportunistic application-level fault detection through adaptive redundant multithreading [C]// Proceedings of the 2014 International Conference on High Performance Computing & Simulation. Piscataway, NJ: IEEE, 2014: 243-250.
[11] GARDNER R D, HARLE D A. Network fault detection: a simplified approach to alarm correlation [C]// Proceedings of the 16th IEEE Global Telecommunications Conference. Washington, DC: IEEE Computer Society, 1997: 44-51.
[12] SCHROEDER B, GIBSON G. A large-scale study of failures in high-performance computing systems [J]. IEEE Transactions on Dependable and Secure Computing, 2010, 7(4): 337-350.
[13] JAKOBSON G, WEISSMAN M. Real-time telecommunication network management: extending event correlation with temporal constraints [C]// Proceedings of the Fourth International Symposium on Integrated Network Management IV. London: Chapman & Hall, 1995: 290-301.
[14] LEMARINIER P, BOUTEILLER A, KRAWEZIK G, et al. Coordinated checkpoint versus message log for fault tolerant MPI [J]. International Journal of High Performance Computing and Networking, 2004, 2(2/3/4): 146-155.
[15] SCHROEDER B, GIBSON G A. Understanding failures in petascale computers [C]// Proceedings of the 6th Scientific Discovery through Advanced Computing Conference. Bristol: IOP Publishing Ltd, 2007: 2022-2032.
[16] 武林平,孟丹,梁毅,等.LUNF——基于節(jié)點失效特征的機(jī)群作業(yè)調(diào)度策略[J].計算機(jī)研究與發(fā)展,2005,42(6):1000-1005.(WU L P, MENG D, LIANG Y, et al. LUNF—a cluster job schedule strategy using characterization of nodes’ failure [J]. Journal of Computer Research and Development, 2005, 42(6): 1000-1005.)
[17] BAILTY D, HARRIS T, SAPHIR W, et al. The NAS parallel benchmarks 2.0: NAS- 95- 020 [R]. Washington: NASA Ames Research Center, 1995: 12.
This work is partially supported by the National Key Research and Development Program of China (2016YFB0200502).
GAOJian, born in 1992, M. S. candidate. His research interests include parallel computing, runtime system.
YUKang, born in 1987, Ph. D., assistant engineer. His research interests include parallel computing.
QINGPeng, born in 1979, M. S., senior engineer. His research interests include parallel compilation, runtime system.
WEIHongmei, born in 1968, Ph. D., senior engineer. Her research interests include parallel computing, parallel compilation.