胡 維,蔣艷凰,劉光明,董文睿,崔新武
(1.國防科技大學(xué) 計算機學(xué)院, 湖南 長沙 410073; 2.國家超級計算天津中心, 天津 300457;
3.中國人民解放軍95942部隊, 湖北 武漢 430313)
?
E級超級計算機故障預(yù)測的數(shù)據(jù)采集方法*
胡維1,2,蔣艷凰1,劉光明1,2,董文睿1,2,崔新武3
(1.國防科技大學(xué) 計算機學(xué)院, 湖南 長沙410073; 2.國家超級計算天津中心, 天津300457;
3.中國人民解放軍95942部隊, 湖北 武漢430313)
摘要:面向未來E級超級計算機,提出用于故障預(yù)測的數(shù)據(jù)采集框架,能夠全面采集與計算結(jié)點故障相關(guān)的狀態(tài)數(shù)據(jù)。采用自適應(yīng)多層分組數(shù)據(jù)匯集方法,有效解決隨著系統(tǒng)規(guī)模增長數(shù)據(jù)匯集過程開銷過大的問題。在TH-1A超級計算機上的實現(xiàn)和測試表明,該數(shù)據(jù)采集框架具有開銷小、擴展性好的優(yōu)點,能夠滿足未來大規(guī)模系統(tǒng)故障預(yù)測數(shù)據(jù)采集的需求。
關(guān)鍵詞:超級計算機;故障預(yù)測;數(shù)據(jù)采集方法;數(shù)據(jù)匯集
超級計算機的飛速發(fā)展面臨許多挑戰(zhàn),可靠性問題成為影響系統(tǒng)性能發(fā)展的重要挑戰(zhàn)之一。未來E級超級計算機由數(shù)十萬個部件組成,系統(tǒng)平均無故障時間(Mean Time Between Failure, MTBF)將從小時級到分鐘級[1]。消息傳遞接口(Message Passing Interface,MPI)是超級計算機應(yīng)用的主要并行方式,若有一個進程出現(xiàn)故障,則整個應(yīng)用都被迫停止并從頭開始。檢查點技術(shù)是目前超級計算機系統(tǒng)中最常用的容錯方法。隨著超級計算機規(guī)模不斷擴大,MTBF時間逐漸縮短,保存檢查點的時間間隔越來越短;而超級計算機I/O系統(tǒng)性能發(fā)展緩慢,保存和恢復(fù)檢查點的開銷越來越大,檢查點技術(shù)將無法滿足系統(tǒng)可靠性的需求。
高性能計算容錯方式通常分為被動容錯和主動容錯兩種。被動容錯是在故障發(fā)生后再實施容錯,典型的就是檢查點技術(shù)。主動容錯通過故障預(yù)測的方法提前預(yù)知故障的發(fā)生,在故障發(fā)生前預(yù)先采取進程遷移、進程復(fù)制等低開銷保護性技術(shù),保障并行應(yīng)用持續(xù)運行。主動容錯技術(shù)因開銷小,成為解決未來E級超級計算機可靠性挑戰(zhàn)最有希望的技術(shù)之一,其中故障預(yù)測的準確率直接決定著主動容錯的有效性?,F(xiàn)有用于主動容錯的故障預(yù)測方法主要包括基于模型的故障預(yù)測和數(shù)據(jù)驅(qū)動的故障預(yù)測兩類。
基于模型的故障預(yù)測方法將系統(tǒng)實際執(zhí)行行為與模型描述的預(yù)期行為進行比較,通過發(fā)現(xiàn)明顯行為差異來預(yù)測系統(tǒng)故障。該方法僅適用于小規(guī)模系統(tǒng)中某些類型的故障,對于復(fù)雜的大規(guī)模系統(tǒng),難以用模型準確描述系統(tǒng)的故障特征。數(shù)據(jù)驅(qū)動的故障預(yù)測方法利用數(shù)據(jù)挖掘、機器學(xué)習(xí)等技術(shù)對歷史數(shù)據(jù)進行學(xué)習(xí),獲取故障發(fā)生的規(guī)律,并利用學(xué)習(xí)結(jié)果對系統(tǒng)進行實時狀態(tài)數(shù)據(jù)分析,預(yù)測是否有故障發(fā)生。這類方法的重要基礎(chǔ)是獲取與系統(tǒng)故障相關(guān)的運行狀態(tài)數(shù)據(jù),這些數(shù)據(jù)直接影響著故障預(yù)測的準確性。
目前超級計算機系統(tǒng)故障預(yù)測研究中采用的數(shù)據(jù)主要包括兩種:一種是可靠、可用和可維護性(Reliability, Availability, and Serviceability, RAS)日志數(shù)據(jù);一種是硬件環(huán)境和結(jié)點運行狀態(tài)數(shù)據(jù)。
RAS數(shù)據(jù)通常是超級計算機監(jiān)控系統(tǒng)定時對系統(tǒng)中各部件的運行狀態(tài)進行掃描監(jiān)測,將可能有用的數(shù)據(jù)(如異常事件)保存在日志中,其通常作用是在系統(tǒng)發(fā)生故障后,管理員通過查詢?nèi)罩緝?nèi)容,對故障進行人工診斷,現(xiàn)有的故障預(yù)測研究大多是基于RAS日志數(shù)據(jù)展開的[2-6]。由于RAS日志數(shù)據(jù)本身是對軟硬件事件的記錄,一方面信息記錄不完全,只記錄事件發(fā)生信息而沒有軟硬件隨時間變化的狀態(tài)信息,容易使故障預(yù)測出現(xiàn)漏報;另一方面,由于系統(tǒng)運行狀態(tài)復(fù)雜,日志事件定義不可能完全準確,容易使預(yù)測產(chǎn)生誤報。因此,基于RAS數(shù)據(jù)進行的故障預(yù)測研究,預(yù)測精度較低,學(xué)習(xí)結(jié)果的可理解性較低。
硬件環(huán)境狀態(tài)數(shù)據(jù)包括系統(tǒng)硬件各部件的溫度、電壓、風扇和電源狀態(tài)等信息。研究者[7-9]通過智能平臺管理界面(Intelligent Platform Management Interface, IPMI)獲取數(shù)據(jù),進行故障預(yù)測研究。結(jié)點運行狀態(tài)數(shù)據(jù)通常指超級計算機計算結(jié)點運行過程中,結(jié)點CPU、內(nèi)存、網(wǎng)絡(luò)和I/O等系統(tǒng)的運行狀態(tài)數(shù)據(jù)。由于大部分超級計算機計算結(jié)點具有同構(gòu)性,運行應(yīng)用具有相似性,所以結(jié)點運行過程中的系統(tǒng)狀態(tài)信息能夠反映結(jié)點的健康狀況。Sahoo等[10]結(jié)合日志記錄和狀態(tài)數(shù)據(jù)進行故障預(yù)測的研究。使用結(jié)點運行狀態(tài)數(shù)據(jù)進行故障預(yù)測的研究較少,主要原因是數(shù)據(jù)采集困難。雖然現(xiàn)有集群系統(tǒng)監(jiān)控工具PARMON[11]、Ganglia[12]和Ovis-2[13]等同時具備數(shù)據(jù)采集功能,但采集數(shù)據(jù)屬性少、開銷大,無法滿足故障預(yù)測的實際需要。
從上面可以看出,現(xiàn)有數(shù)據(jù)獲取方法具有如下缺陷:一是所采集數(shù)據(jù)的屬性少,無法反映出系統(tǒng)運行狀態(tài)的變化;二是所采集數(shù)據(jù)的時間連續(xù)性差,不能滿足故障預(yù)測精度的要求。針對以上不足,提出用于故障預(yù)測的數(shù)據(jù)采集框架(Failure Prediction Data Collection Framework, FPDC),以解決數(shù)據(jù)采集的全面性和有效性問題。由于文章篇幅限制,主要介紹面向故障預(yù)測數(shù)據(jù)采集面臨的挑戰(zhàn)和解決方法,對故障預(yù)測方法的研究另行論述。
1FPDC數(shù)據(jù)采集框架
超級計算機主動容錯系統(tǒng)的核心是故障預(yù)測,而數(shù)據(jù)采集是故障預(yù)測的基礎(chǔ),故障預(yù)測的準確性不僅與故障預(yù)測模型有關(guān),還與用于預(yù)測的數(shù)據(jù)密切相關(guān)。
FPDC數(shù)據(jù)采集框架具有兩方面功能:一是在初始故障學(xué)習(xí)階段,累積一定時間段的數(shù)據(jù)形成初始訓(xùn)練集,用于學(xué)習(xí)產(chǎn)生初始的故障預(yù)測分類器;二是在故障預(yù)測階段,實時獲取系統(tǒng)狀態(tài)數(shù)據(jù)用于實時故障預(yù)測,并對故障預(yù)測分類器進行在線學(xué)習(xí)更新。
1.1FPDC框架及其功能
圖1為FPDC數(shù)據(jù)采集框架體系結(jié)構(gòu),F(xiàn)PDC框架采用分布式結(jié)構(gòu),獲取數(shù)據(jù)過程分為數(shù)據(jù)采集和匯集兩個部分。
圖1 FPDC數(shù)據(jù)采集框架體系結(jié)構(gòu)Fig.1 FPDC architecture
數(shù)據(jù)采集部分將數(shù)據(jù)采集任務(wù)分布到每個計算結(jié)點上,結(jié)點運行輕量級數(shù)據(jù)采集進程,按照一定的系統(tǒng)配置要求,周期性采集結(jié)點狀態(tài)數(shù)據(jù),這種分布式采集方式能夠全面獲取與計算結(jié)點故障相關(guān)的狀態(tài)數(shù)據(jù),而采集開銷較小。
數(shù)據(jù)匯集時,采用自適應(yīng)多層分組數(shù)據(jù)匯集方法,結(jié)點通過分組形成層次式樹形結(jié)構(gòu),數(shù)據(jù)獲取后采用Push協(xié)議,結(jié)點主動向上一級發(fā)送數(shù)據(jù)。采用層次式分組的方法,能夠減少頻繁小數(shù)據(jù)傳輸,從而減少通信和存儲資源消耗,同時能夠避免數(shù)據(jù)直接匯集時的單點瓶頸,有效利用高速互連帶寬,減少共享存儲系統(tǒng)I/O開銷,提高數(shù)據(jù)匯集的可擴展性。FPDC在每個結(jié)點上以一定頻率進行周期性數(shù)據(jù)采集,數(shù)據(jù)獲得后匯集到最終匯集點。其中,結(jié)點上數(shù)據(jù)采集進程的開銷是固定的,數(shù)據(jù)匯集開銷對整個數(shù)據(jù)采集的可擴展性起到?jīng)Q定性作用,而自適應(yīng)多層分組數(shù)據(jù)匯集方法能夠有效減少開銷,提高可擴展性。
通過采集獲取的結(jié)點狀態(tài)數(shù)據(jù)具有空間性和時間性??臻g性是指采集的數(shù)據(jù)內(nèi)容能否覆蓋所有可能發(fā)生的故障。計算結(jié)點出現(xiàn)故障可能由計算結(jié)點的硬件部件引起,也可能由軟件錯誤引起。FPDC數(shù)據(jù)采集的內(nèi)容從硬件和軟件兩個方面出發(fā),獲取不同硬件部件和不同軟件層次的各方面狀態(tài)數(shù)據(jù),提高對所有故障的覆蓋率。時間性是指所采集的數(shù)據(jù)能否有效體現(xiàn)結(jié)點狀態(tài)隨時間變化的全過程,并滿足故障預(yù)測提前性的要求。FPDC采用分布式架構(gòu)和自適應(yīng)多層分組數(shù)據(jù)匯集方法,開銷小,對大規(guī)模系統(tǒng)擴展性高,保證了數(shù)據(jù)采集時間性的需求。FPDC框架采集數(shù)據(jù)的空間性和時間性是提高故障預(yù)測精度的基礎(chǔ)。
對計算結(jié)點硬件和軟件采集的數(shù)據(jù)分別對應(yīng)結(jié)點硬件環(huán)境狀態(tài)數(shù)據(jù)和系統(tǒng)運行狀態(tài)數(shù)據(jù)。如圖2所示,F(xiàn)PDC主要由硬件環(huán)境數(shù)據(jù)采集模塊、運行狀態(tài)數(shù)據(jù)采集模塊和數(shù)據(jù)匯集模塊組成。
圖2 FPDC組成模塊和功能Fig.2 FPDC modules and functions
硬件環(huán)境數(shù)據(jù)采集模塊用于采集與計算結(jié)點硬件環(huán)境狀態(tài)相關(guān)的數(shù)據(jù),主要包括結(jié)點硬件各個部件的溫度、電壓,風扇和電源狀態(tài)等數(shù)據(jù),能夠反映硬件部件的實時物理狀態(tài)。運行狀態(tài)數(shù)據(jù)采集模塊用于采集與結(jié)點系統(tǒng)運行相關(guān)的狀態(tài)數(shù)據(jù),即結(jié)點操作系統(tǒng)活動報告(System Activity Report, SAR)數(shù)據(jù),這些數(shù)據(jù)包括CPU、內(nèi)存、網(wǎng)絡(luò)和I/O等系統(tǒng)的狀態(tài)數(shù)據(jù)和統(tǒng)計數(shù)據(jù)。數(shù)據(jù)匯集模塊用于完成數(shù)據(jù)采集后向最終匯集點的數(shù)據(jù)傳輸工作。
1.2自適應(yīng)多層分組數(shù)據(jù)匯集方法
現(xiàn)有數(shù)據(jù)匯集方法主要包括直接匯集法和分組匯集法,這些方法存在數(shù)據(jù)匯集開銷大[12]、結(jié)點發(fā)生故障時關(guān)鍵狀態(tài)數(shù)據(jù)丟失的問題。自適應(yīng)多層分組數(shù)據(jù)匯集方法,能保證關(guān)鍵狀態(tài)數(shù)據(jù)不丟失,并有效降低傳輸開銷,提供良好可擴展性。
設(shè)計思想:如圖1所示,自適應(yīng)多層分組數(shù)據(jù)匯集方法借鑒多叉樹結(jié)構(gòu),根結(jié)點是最終匯集點(管理結(jié)點或共享存儲),其余的每個結(jié)點代表一個計算結(jié)點,非葉子結(jié)點代表代理結(jié)點。其本質(zhì)是利用計算結(jié)點間的高速互連帶寬優(yōu)勢,通過分組將數(shù)據(jù)分層收集和壓縮,對于最終匯集點是管理結(jié)點的結(jié)構(gòu),能夠有效緩解多對一匯集時的單點瓶頸,對于最終匯集點是共享存儲的結(jié)構(gòu),可以有效節(jié)省共享存儲系統(tǒng)的I/O資源,減少并行文件系統(tǒng)開銷。后續(xù)論述匯集點以共享存儲為例。
通過對結(jié)點本身計算和網(wǎng)絡(luò)負載的分析,選擇低負載結(jié)點作為代理結(jié)點,并針對結(jié)點負載的變化,定期自適應(yīng)地改變代理結(jié)點和備份結(jié)點,能夠減少對結(jié)點上應(yīng)用的影響。同時,備份代理結(jié)點能夠在主代理結(jié)點故障時,保存其狀態(tài)數(shù)據(jù),保證重要狀態(tài)數(shù)據(jù)不丟失。
算法描述:自適應(yīng)多層分組數(shù)據(jù)匯集方法類似于多叉樹結(jié)構(gòu),根結(jié)點是共享存儲,其余每個結(jié)點代表一個計算結(jié)點,分為兩類:一是葉子結(jié)點,僅采集自身數(shù)據(jù),并將數(shù)據(jù)發(fā)送給父主代理結(jié)點和父備份代理結(jié)點;二是非葉子結(jié)點,即代理結(jié)點,在每個組中,均包含一個主代理結(jié)點和一個備份代理結(jié)點,代理結(jié)點不僅要獲取本結(jié)點數(shù)據(jù)還要匯總子結(jié)點數(shù)據(jù),而后向父結(jié)點傳輸。計算結(jié)點簡稱cn(compute node),每組中選出主代理結(jié)點cna(compute node agent)和備份代理結(jié)點bcna(backup of compute node agent),bcna用于存儲組內(nèi)cn和cna數(shù)據(jù)的備份,收集和壓縮數(shù)據(jù)后并不向父結(jié)點傳輸,只有在cna出現(xiàn)故障時接替cna將數(shù)據(jù)向父結(jié)點傳輸。各組根據(jù)結(jié)點負載選舉cna和bcna流程如下:
1)每個分組中cn計算自身總空閑率(總空閑率idle%=cpu空閑率+內(nèi)存空閑率+網(wǎng)絡(luò)帶寬空閑率+I/O帶寬空閑率),而后向組中廣播由自身結(jié)點名和空閑率組成的二元組(name,idle%);
2)每個cn收到其他結(jié)點廣播的結(jié)點名和空閑率二元組,依據(jù)空閑率對二元組進行降序排序,確定排在第1位的cn為cna,排在第2位cn為bcna,空閑率相等的以結(jié)點編號數(shù)字小的排在前面,并依次向cna和bcna進行投票,即向排序位于1和2的結(jié)點發(fā)送cna和bcna投票信息;
3)收到cna和bcna投票信息的結(jié)點各自進行計數(shù),若結(jié)點獲得投票數(shù)達到組內(nèi)結(jié)點數(shù)一半以上,向所有組員和管理結(jié)點注冊cna和bcna;
設(shè)選舉間隔時間計數(shù)器為Te,采樣間隔時間為Tcol,則自適應(yīng)多層分組數(shù)據(jù)匯集算法流程見圖3。
圖3 自適應(yīng)多層分組數(shù)據(jù)匯集流程圖Fig.3 Flow chart of adaptive multi-layer data aggregation algorithm
算法分析:自適應(yīng)多層分組數(shù)據(jù)匯集方法,能夠有效利用超級計算機高速互連的優(yōu)勢,將大量分散的小數(shù)據(jù)整合壓縮,以通信資源換I/O資源,減少I/O開銷,提高效率。但隨著系統(tǒng)規(guī)模增大,如果數(shù)據(jù)匯集過程中層次太多,會造成數(shù)據(jù)多次重復(fù)傳輸,增加數(shù)據(jù)傳輸開銷,所以需要針對系統(tǒng)規(guī)模具體實際,有效平衡多叉樹的深度和寬度,以較小開銷獲得較好的數(shù)據(jù)采集性能。同時,可利用超級計算機自身的網(wǎng)絡(luò)拓撲特點進行分組,能夠顯著減少網(wǎng)絡(luò)開銷。
從上述分析得出,自適應(yīng)多層分組數(shù)據(jù)匯集方法具有一定優(yōu)勢:1)數(shù)據(jù)匯集路徑?jīng)]有交叉,可同步進行;2)數(shù)據(jù)網(wǎng)絡(luò)傳輸趨于分散平衡,能夠減少網(wǎng)絡(luò)擁塞;3)數(shù)據(jù)分組傳輸過程中設(shè)置備份代理結(jié)點,能夠保證故障結(jié)點關(guān)鍵狀態(tài)數(shù)據(jù)不丟失;4)能夠自適應(yīng)選擇代理和備份結(jié)點,減少對負載較重計算結(jié)點上應(yīng)用的影響;5)對采集數(shù)據(jù)進行壓縮,能夠減少網(wǎng)絡(luò)傳輸開銷。
2基于TH-1A系統(tǒng)的數(shù)據(jù)采集設(shè)計與實現(xiàn)
2.1TH-1A超級計算機及其數(shù)據(jù)采集框架
圖4為國防科學(xué)技術(shù)大學(xué)研制的TH-1A系統(tǒng),采用CPU和GPU結(jié)合的異構(gòu)融合體系結(jié)構(gòu),全系統(tǒng)包含7168個計算結(jié)點,每個計算結(jié)點含2路英特爾CPU和1路英偉達GPU。采用自主設(shè)計互連通信系統(tǒng),實現(xiàn)光電混合胖樹結(jié)構(gòu)高階路由網(wǎng)絡(luò)[14],采用麒麟Linux系統(tǒng)。FPDC-TH數(shù)據(jù)采集框架是FPDC在TH-1A上的具體實現(xiàn)。FPDC-TH包括硬件環(huán)境數(shù)據(jù)采集模塊SMCcolmanager、運行狀態(tài)數(shù)據(jù)采集模塊noderuninfomanager和數(shù)據(jù)匯集模塊dataaggregation。
圖4 TH-1A系統(tǒng)結(jié)構(gòu)Fig.4 TH-1A architecture
2.2硬件環(huán)境數(shù)據(jù)采集
TH-1A計算機系統(tǒng)每個計算機柜包括4個計算機框,分別由4塊系統(tǒng)管理控制器(System Management Controller, SMC)進行監(jiān)控;通信機柜包括2個通信機框,分別由2塊SMC板進行監(jiān)控,如圖4所示。由于計算結(jié)點沒有單獨映射SMC,不能通過計算結(jié)點操作系統(tǒng)訪問SMC接口,但SMC提供了網(wǎng)絡(luò)訪問接口,可通過提供IP地址實現(xiàn)遠程監(jiān)測控制1個機框的16個計算結(jié)點?;诰S護控制網(wǎng)絡(luò)和SMC系統(tǒng),設(shè)計實現(xiàn)了SMCcolmanager硬件環(huán)境數(shù)據(jù)采集模塊。
SMCcolmanager采用Client-Server的結(jié)構(gòu),可一次獲取每個機框SMC板服務(wù)器維護的機框內(nèi)16個計算結(jié)點的硬件環(huán)境狀態(tài)數(shù)據(jù)記錄。利用TCP/IP 套接字,采用多線程的方式并行采集多機框SMC數(shù)據(jù),減少在多結(jié)點數(shù)據(jù)采集時對管理結(jié)點的資源占用,避免了管理結(jié)點瓶頸問題。由于維護控制網(wǎng)絡(luò)是專用以太網(wǎng)絡(luò),這種遠程訪問SMC采集數(shù)據(jù)的方式對結(jié)點應(yīng)用性能沒有影響。
SMCcolmanager模塊能夠全面采集結(jié)點硬件環(huán)境狀態(tài)數(shù)據(jù)。表1為該模塊在TH-1A上獲得與計算結(jié)點相關(guān)的硬件環(huán)境狀態(tài)數(shù)據(jù),包括機框內(nèi)風扇轉(zhuǎn)速、網(wǎng)絡(luò)路由芯片(Network Pouting, NR)狀態(tài)、網(wǎng)絡(luò)接口芯片(Network Interface, NI)狀態(tài)、計算結(jié)點電源狀態(tài)、SMC監(jiān)控板狀態(tài)和計算結(jié)點狀態(tài)數(shù)據(jù)。
表1 硬件環(huán)境狀態(tài)數(shù)據(jù)
2.3運行狀態(tài)數(shù)據(jù)采集
FPDC-TH采用分布式結(jié)構(gòu)采集運行狀態(tài)數(shù)據(jù),每個計算結(jié)點運行數(shù)據(jù)采集進程,通過多層分組數(shù)據(jù)匯集方法將數(shù)據(jù)匯集至代理結(jié)點。
noderuninfomanager數(shù)據(jù)采集模塊,采用分析/proc文件系統(tǒng)的方法獲取結(jié)點運行狀態(tài)數(shù)據(jù)。/proc虛擬文件系統(tǒng)是linux內(nèi)核的一部分,提供用戶動態(tài)查看內(nèi)核運行狀態(tài)的接口,包括當前系統(tǒng)中進程、硬件、內(nèi)存等相關(guān)信息。通過分析/proc中cpuinfo、meminfo、slabinfo、uptime、net/、sys/、scsi/等文件或文件夾中相關(guān)文件,能夠獲得包括CPU、內(nèi)存、網(wǎng)絡(luò)和I/O等系統(tǒng)運行的信息。為了提高數(shù)據(jù)分析和采集的效率,采用先并行讀取/proc相關(guān)文件,后整合結(jié)點運行狀態(tài)數(shù)據(jù)的方法,這種方式開銷小,采樣間隔可達到毫秒級。
noderuninfomanager模塊通過對TH-1A中/proc文件系統(tǒng)的分析,選擇采集與結(jié)點運行狀態(tài)密切相關(guān)的136個數(shù)據(jù),見表2,主要包括下面四部分。
1)CPU相關(guān):CPU使用負載情況,任務(wù)創(chuàng)建和系統(tǒng)切換活動,中斷統(tǒng)計,隊列深度等;
2)內(nèi)存相關(guān):內(nèi)存使用情況,包括內(nèi)存的利用率,內(nèi)存頁替換和緩存的速率等;
3)網(wǎng)絡(luò)相關(guān):網(wǎng)絡(luò)參數(shù)統(tǒng)計,包括包速率、帶寬、網(wǎng)絡(luò)設(shè)備錯誤、socket統(tǒng)計、IP網(wǎng)絡(luò)通信量和錯誤統(tǒng)計、ICMP網(wǎng)絡(luò)通信量和錯誤統(tǒng)計、TCP網(wǎng)絡(luò)通信量和錯誤統(tǒng)計、UDP網(wǎng)絡(luò)通信量等;
4)I/O相關(guān):詳細的物理設(shè)備傳輸速率統(tǒng)計,文件系統(tǒng)統(tǒng)計和Lustre客戶端訪問速率統(tǒng)計等。
表2 結(jié)點運行狀態(tài)數(shù)據(jù)
2.4數(shù)據(jù)匯集
結(jié)合TH-1A計算機系統(tǒng)的實際結(jié)構(gòu),自適應(yīng)多層分組數(shù)據(jù)匯集方法適用于結(jié)點運行狀態(tài)數(shù)據(jù)的匯集。首先將最終匯集點確定為TH-1A共享存儲系統(tǒng)Lustre,然后根據(jù)計算結(jié)點規(guī)模和高速互連拓撲結(jié)構(gòu)特點確定具體的分組方法。
數(shù)據(jù)匯集模塊dataaggregation在TH-1A上實現(xiàn)時,分組層次選擇為3層,從下至上依次為葉結(jié)點層、代理層和Lustre存儲層,如圖5所示。以機框為單位(16個結(jié)點),每個機框選出主代理結(jié)點cna和備份代理結(jié)點bcna,其中葉子結(jié)點(14個結(jié)點)為葉結(jié)點層,代理結(jié)點cna和bcna為葉結(jié)點的父結(jié)點,系統(tǒng)中所有的這些代理結(jié)點組成代理層,最終數(shù)據(jù)匯集到Lustre共享存儲。
由于最終匯集點是Lustre共享存儲,該層不再設(shè)置備份結(jié)點。
圖5 FPDC-TH數(shù)據(jù)匯集示意圖Fig.5 Data aggregation workflow of FPDC-TH
dataaggregation模塊采用如圖5所示的3層分組數(shù)據(jù)匯集方法基于如下考慮:
1)TH-1A超級計算機全系統(tǒng)共有7168個計算結(jié)點,計算結(jié)點數(shù)不超過104,采用3層的分組方式,能夠有效縮減單位時間內(nèi)計算結(jié)點直接訪問共享存儲的訪問數(shù),使存儲系統(tǒng)開銷減少到較小的程度。
2)利用機框進行分組可以有效利用超級計算機互連網(wǎng)絡(luò)拓撲結(jié)構(gòu)的優(yōu)勢。TH-1A互連網(wǎng)絡(luò)為光電混合層次式胖樹結(jié)構(gòu),第一層為機框內(nèi)部電互連,機框通信交換板和16個結(jié)點之間通過背板電互連;第二層為機柜內(nèi)部機框之間的光連接,采用Mesh結(jié)構(gòu);第三層由11個384口交換機組成,機框交換板和384口交換機采用光互連,組成胖樹結(jié)構(gòu)。這種層次式胖樹結(jié)構(gòu)結(jié)點之間互連傳輸速度決定于點對點之間的跳步數(shù)和通信距離。同一機框內(nèi)部結(jié)點之間通信跳步數(shù)為1或3;而在機框之間,不同機柜間的結(jié)點跳步數(shù)逐漸增多,最多為11跳,同時,傳輸距離不斷增加。因此,以一個機框為基本分組單位,結(jié)點間數(shù)據(jù)傳輸速度最快、開銷最小。
3性能測試與分析
基于TH-1A超級計算機對FPDC-TH數(shù)據(jù)采集系統(tǒng)進行測試,該系統(tǒng)計算結(jié)點包括2個英特爾至強X5670處理器(2.93GHz,6核),24G內(nèi)存,Linux內(nèi)核版本為2.6.32。實驗過程中默認數(shù)據(jù)采集間隔為10 s。
3.1硬件環(huán)境數(shù)據(jù)采集開銷分析
SMCcolmanager模塊通過專用以太網(wǎng)訪問SMC獲取數(shù)據(jù),對計算結(jié)點性能沒有影響,僅測試對管理結(jié)點性能影響。通過多次運行ps命令和vmstat命令求平均值的方法獲得數(shù)據(jù)采集開銷。圖6所示為管理結(jié)點分別從112,224,336和448個SMC服務(wù)器(全系統(tǒng)共448個SMC)獲取數(shù)據(jù)開銷的比較。從測試可知,虛擬內(nèi)存和物理內(nèi)存的使用隨著采集SMC服務(wù)器數(shù)目的增加而增加,主要是由于SMCcolmanager模塊訪問每個SMC服務(wù)器需要一個線程。但實際內(nèi)存開銷不大,小于總內(nèi)存的0.02%。同時處理器開銷較小,低于0.4%;I/O開銷低于3.8 MB/s。另外,從圖6可知,隨著數(shù)據(jù)采集規(guī)模成倍增加,采集開銷增長緩慢,具有良好的擴展性,為后續(xù)部署到TH-2或更大規(guī)模系統(tǒng)提供了較好的依據(jù)??傮w來看,硬件環(huán)境數(shù)據(jù)采集對管理結(jié)點開銷較小,同時并不影響系統(tǒng)實際應(yīng)用的性能。
圖6 硬件環(huán)境數(shù)據(jù)采集模塊可擴展性測試圖Fig.6 Scalability test of SMCcolmanager
3.2結(jié)點運行狀態(tài)數(shù)據(jù)采集開銷分析
表3所示為noderuninfomanager模塊在單一葉計算結(jié)點上采集運行狀態(tài)數(shù)據(jù)的開銷。Valgrind是Linux環(huán)境下對應(yīng)用程序的內(nèi)存分析工具集。其包含的Massif內(nèi)存剖析工具能夠檢測程序運行過程中堆內(nèi)存(heap memory)和全部占用內(nèi)存。利用/usr/bin/time命令多次測試求平均值的方法獲得時間和CPU開銷,利用Massif工具多次測試求平均值的方法獲取內(nèi)存占用開銷。從數(shù)據(jù)可知,計算結(jié)點上的數(shù)據(jù)采集進程占用的CPU、內(nèi)存和帶寬等開銷較小。葉子結(jié)點將數(shù)據(jù)傳輸?shù)街鞔斫Y(jié)點和備份代理結(jié)點時,并不產(chǎn)生I/O開銷,數(shù)據(jù)傳輸時間小于1 ms。將傳輸數(shù)據(jù)量除以數(shù)據(jù)采集間隔(10 s)作為數(shù)據(jù)傳輸?shù)膸?,則占用數(shù)據(jù)帶寬為0.14 KB/s,該帶寬值忽略了傳輸協(xié)議的開銷,可以認為是占用帶寬的最小值,可以反映帶寬開銷水平。
表3 noderuninfomanager在葉結(jié)點上的數(shù)據(jù)采集開銷
3.3自適應(yīng)分組數(shù)據(jù)匯集開銷分析
dataaggregation數(shù)據(jù)匯集模塊采用自適應(yīng)3層分組數(shù)據(jù)匯集方法,以機框為基本分組單位,利用TH-1A互連網(wǎng)絡(luò)光電混合層次式胖樹拓撲結(jié)構(gòu)特點,使得較多的數(shù)據(jù)傳輸發(fā)生在跳數(shù)較少和距離較近的結(jié)點之間,有效減少了數(shù)據(jù)分組傳輸過程中的通信開銷。如圖7所示,利用Glex接口編程采用乒乓(ping-pong)測試方法,在機框內(nèi)部、機柜內(nèi)部和機柜之間分別選擇跳步數(shù)為1,5和10的結(jié)點對,傳輸數(shù)據(jù)從8 B增加到4 KB。由圖7中測試結(jié)果可知,隨著通信跳步數(shù)的增多和通信距離的增加,通信延遲變長,帶寬變小。因此,將較頻繁的數(shù)據(jù)傳輸控制在機框內(nèi),數(shù)據(jù)可通過背板直接傳輸,傳輸速率高、開銷小。
圖7 數(shù)據(jù)匯集網(wǎng)絡(luò)測試Fig.7 Network test of data aggregation
表4和表5分別是dataaggregation模塊在主代理結(jié)點數(shù)據(jù)壓縮和數(shù)據(jù)傳輸?shù)拈_銷,壓縮采用zlib庫,實驗采用/usr/bin/time和Massif多次測試求平均值的方法分別獲得時間、CPU和內(nèi)存開銷。表4分別列出了主代理結(jié)點收集16,8和4個結(jié)點的數(shù)據(jù)進行壓縮時的開銷,可知3種情況下壓縮開銷差別很小,但以16個結(jié)點進行分組,能夠有效減少I/O和通信開銷。表4中16結(jié)點組CPU開銷小是因為這里CPU開銷指壓縮操作耗時內(nèi)的CPU開銷,由于16個結(jié)點數(shù)據(jù)壓縮耗時相對較長,所以CPU占用率相對較低。同時觀察到,壓縮過程具有一定的內(nèi)存開銷,但內(nèi)存開銷僅存在壓縮操作運行的這個較短時間內(nèi)(<4 ms),從時間角度來看,開銷也不大。
表4 主代理結(jié)點數(shù)據(jù)壓縮開銷
表5中分別列出了不同分組方式數(shù)據(jù)壓縮后向Lustre存儲系統(tǒng)傳輸時主代理結(jié)點的開銷,由于采集數(shù)據(jù)本身的特點,具有較高壓縮比,單一結(jié)點采集數(shù)據(jù)原始大小約700~750 B。以16,8和4個結(jié)點進行分組壓縮數(shù)據(jù)后,數(shù)據(jù)傳輸時間僅相差0.000 7 s。在數(shù)據(jù)傳輸過程的時間段內(nèi)16個結(jié)點組壓縮數(shù)據(jù)的CPU開銷最大,是由于傳輸時間增長不多的情況下,傳輸較多數(shù)據(jù)占用了相對較多的CPU時間;但對于較短的傳輸時間,這個開銷是可以接受的。對于不壓縮的情況,數(shù)據(jù)傳輸時間明顯增加,從表5中可知,由于壓縮時間加上傳輸時間仍明顯小于不壓縮傳輸?shù)臅r間,因此數(shù)據(jù)傳輸采用壓縮方式有明顯的時間收益。
圖8為采用不同的分組方式對共享存儲系統(tǒng)的開銷情況。從圖8可得,通過分組層次式匯集數(shù)據(jù),能夠迅速減緩數(shù)據(jù)匯集過程中的I/O請求數(shù)隨結(jié)點規(guī)模增長的速度,可有效提高數(shù)據(jù)采集系統(tǒng)的可擴展性。數(shù)據(jù)存儲到共享存儲系統(tǒng)后,針對實際需求,進行數(shù)據(jù)處理工作,保存有效數(shù)據(jù),降低存儲空間開銷。
圖8 分組數(shù)據(jù)匯集I/O操作比較Fig.8 Comparison of I/O operation in data aggregation
分組數(shù)據(jù)壓縮后大小/B壓縮比代理結(jié)點 向Lustre傳輸時間/s壓縮時間/s+傳輸時間/s傳輸數(shù)據(jù)時間段內(nèi)CPU開銷/%使用最大堆內(nèi)存量/KB占用最大內(nèi)存/MB16個結(jié)點為一組壓縮27554.210.00630.01033.4105.8758個結(jié)點為一組壓縮14573.980.00560.00861.9305.8754個結(jié)點為一組壓縮7753.750.00560.00861.4805.87516個結(jié)點為一組未壓縮1161010.0660.0661.3305.875
4總結(jié)
基于高性能計算故障預(yù)測數(shù)據(jù)采集的需要,提出數(shù)據(jù)采集框架FPDC,能夠獲取與故障相關(guān)的結(jié)點軟硬件狀態(tài)數(shù)據(jù),其分布式架構(gòu)和自適應(yīng)多層分組數(shù)據(jù)匯集方法有效解決了隨著系統(tǒng)規(guī)模增長數(shù)據(jù)采集開銷過大的問題。在TH-1A超級計算機上完成FPDC的實現(xiàn),實驗結(jié)果顯示,F(xiàn)PDC開銷小,擴展性好,能夠適應(yīng)未來大規(guī)模系統(tǒng)故障預(yù)測數(shù)據(jù)采集的需要。
參考文獻(References)
[1]Philp I R. Software failures and the road to a petaflop machine[C]// Proceedings of the 11th International Symposium on High Performance Computer Architecture,San Francisco, CA, USA, IEEE Computer Society, 2005.
[2]Liang Y, Zhang Y, Xiong H, et al. Failure prediction in IBM BlueGene/L event logs[C]//Proceedings of Seventh IEEE International Conference on Data Mining Omaha, Nebraska, USA,IEEE Computer Society, 2007:583-588 .
[3]Lan Z L, Gu J X, Zheng Z M, et al. A study of dynamic meta-learning for failure prediction in large-scale systems[J]. Journal of Parallel and Distributed Computing, 2010, 70(6): 630-643.
[4]Oliner A, Ganapathi A, Xu W. Advances and challenges in log analysis[J]. Communications of the ACM , 2012, 55(2): 55-61.
[5]Xu W, Huang L, Fox A, et al. Detecting large-scale system problems by mining console logs[C]//Proceedings of the ACM SIGOPS 22nd Symposium on Operating Systems Principles,New York, NY, USA: ACM, 2009.
[6]Gainaru A, Cappello F, Snir M, et al. Fault prediction under the microscope: a closer look into HPC systems[C]//Proceedings of the International Conference on High Performance Computing, Networking, Storage and Analysis,Los Alamitos, CA, USA, IEEE Computer Society Press, 2012.
[7]Scott S L, Engelmann C, Vallée G R, et al. A tunable holistic resiliency approach for high-performance computing systems[C]//Proceedings of the 14th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming,New York, NY, USA,ACM, 2009.
[8]Nagarajan A B, Mueller F, Engelmann C, et al. Proactive fault tolerance for HPC with Xen virtualization[C]//Proceedings of the 21st Annual International Conference on Supercomputing,New York, NY, USA, ACM, 2007: 23-32.
[9]Rajachandrasekar R, Besseron X, Panda D K. Monitoring and predicting hardware failures in HPC clusters with FTB-IPMI[C]//Proceedings of the 2012 IEEE 26th International Parallel and Distributed Processing Symposium Workshops & PhD Forum, 2012: 1136-1143.
[10]Sahoo R K, Oliner A J, Rish I, et al. Critical event prediction for proactive management in large-scale computer clusters[C]//Proceedings of the Ninth ACM SIGKDD International Conference on Knowledge Discovery and Data Mining,New York, NY, USA, ACM, 2003:426-435.
[11]Buyya R. PARMON: a portable and scalable monitoring system for clusters[J]. Software-Practice Experience, 2000, 30(7): 723-739.
[12]Massie M L, Chun B N, Culler D E. The ganglia distributed monitoring system: design, implementation, and experience[J]. Parallel Computing. 2004, 30(7): 817-840.
[13]Brandt J M, Debusschere B J, Gentile A C, et al. Ovis-2: a robust distributed architecture for scalable RAS[C]//Proceedings of IEEE International Symposium on Parallel & Distributed Processing,IEEE Computer Society, 2008:1-8.
[14]Xie M, Lu Y T, Wang K F, et al. Tianhe-1A interconnect and message-passing services[J].IEEE Micro, 2012, 32(1): 8-20.
Data collection for failure prediction toward exascale supercomputers
HUWei1,2,JIANGYanhuang1,LIUGuangming1,2,DONGWenrui1,2,CUIXinwu3
(1. College of Computer, National University of Defense Technology, Changsha 410073, China;2. National Supercomputer Centre in Tianjin, Tianjin 300457, China; 3. The PLA Unit 95942, Wuhan 430313, China)
Abstract:Aimed at an exascale supercomputer, an FPDC (failure prediction data collection framework) was introduced to fully collect the data related to the state of compute nodes’ health. An adaptive multi-layer data aggregation method was presented for data aggregation with less overhead. Extensive experiments, by implementing FPDC on TH-1A,indicate that the FPDC has the advantage of high efficiency and good scalability.
Key words:supercomputer; failure prediction; data collection method; data aggregation
中圖分類號:TP311
文獻標志碼:A
文章編號:1001-2486(2016)01-093-08
作者簡介:胡維(1982—),男,江西南昌人,博士研究生,E-mail:huwei@nscc-tj.gov.cn;劉光明(通信作者),男,教授,碩士,博士生導(dǎo)師,E-mail:liugm@nscc-tj.gov.cn
基金項目:國家自然科學(xué)基金資助項目(61272141,61120106005);國家863計劃資助項目(2012AA01A301)
*收稿日期:2015-04-09
doi:10.11887/j.cn.201601016
http://journal.nudt.edu.cn