鄭明玲 蔣句平 袁遠 李寶峰
摘 要:隨著超級計算機系統(tǒng)性能的提升,系統(tǒng)規(guī)模越來越大,如何高效管理這些系統(tǒng)成為高性能計算機亟待解決的關(guān)鍵問題之一.本文提出了一種針對大規(guī)模計算機的監(jiān)控管理系統(tǒng)——MMS(Monitoring and Management System).MMS采用分布式系統(tǒng)結(jié)構(gòu)來提高監(jiān)控管理系統(tǒng)的效率;監(jiān)控信息的精細化處理降低了監(jiān)控系統(tǒng)對計算網(wǎng)絡(luò)的影響同時提高了基于web的客戶端的反應(yīng)速度;兩級異步通信機制提高了MMS系統(tǒng)數(shù)據(jù)采集效率.理論分析與實驗結(jié)果表明MMS運行效率高、可靠性好.
關(guān)鍵詞:大規(guī)模計算機系統(tǒng);計算機資源管理;帶外管理;分布式系統(tǒng)結(jié)構(gòu)
中圖分類號:TP302 文獻標識碼:A
隨著科學(xué)技術(shù)的進步與發(fā)展,高性能計算的應(yīng)用領(lǐng)域越來越廣泛.復(fù)雜科學(xué)計算、天氣預(yù)報、核模擬與核應(yīng)用、基因工程、石油勘探等應(yīng)用對計算能力的需求越來越大.為了滿足這些應(yīng)用需求,高性能計算機系統(tǒng)規(guī)模不斷擴大,性能不斷提高.隨著系統(tǒng)規(guī)模的擴大,系統(tǒng)的可靠性、可用性面臨著越來越大的挑戰(zhàn)\[1\].監(jiān)控管理系統(tǒng)可以提高系統(tǒng)的可靠性和可用性,其基本功能是對大規(guī)模系統(tǒng)進行管理與監(jiān)控,通過監(jiān)控管理系統(tǒng)可以快速了解系統(tǒng)配置、各結(jié)點運行狀態(tài)、系統(tǒng)資源使用情況以及系統(tǒng)各部件的健康狀態(tài)等信息,管理員能夠根據(jù)這些信息預(yù)測、發(fā)現(xiàn)并定位故障,提高系統(tǒng)的可靠性和可用性.
隨著計算機系統(tǒng)規(guī)模的擴大,監(jiān)控管理系統(tǒng)需要監(jiān)管的結(jié)點數(shù)目達到幾千甚至上萬,如何實現(xiàn)監(jiān)控管理系統(tǒng)的高效、穩(wěn)定與可擴展是大規(guī)模計算機的監(jiān)控管理系統(tǒng)面臨的難題.本文提出了一種基于分布式的監(jiān)控管理系統(tǒng),通過雙機熱備的管理結(jié)點實現(xiàn)了分布式系統(tǒng)中中間代理的管理以及數(shù)據(jù)視圖的一致性維護,獨特的數(shù)據(jù)采集以及傳輸機制實現(xiàn)了對上層web服務(wù)的支持,進一步提高了監(jiān)控管理系統(tǒng)的效率.
湖南大學(xué)學(xué)報(自然科學(xué)版)2015年
第4期鄭明玲等:一種面向大規(guī)模計算機的監(jiān)控管理系統(tǒng)
1 相關(guān)技術(shù)
大規(guī)模計算機系統(tǒng)結(jié)構(gòu)不同,其監(jiān)控管理軟件架構(gòu)也不盡相同.目前比較典型的集群管理軟件包括ganglia,nagios,supermon和parmon.
Ganglia\[2\]是UC Berkeley發(fā)起的一個開源監(jiān)控項目.Ganglia是目前應(yīng)用最為廣泛的集群監(jiān)控軟件之一\[3-5\].Ganglia能夠得到廣泛的應(yīng)用主要得益于以下三點:1)Ganglia是一個開源項目.2)Ganglia采用分級的樹狀體系結(jié)構(gòu),該結(jié)構(gòu)使得Ganglia具有良好的可擴展性,可支持不同規(guī)模的集群系統(tǒng).3)Ganglia采用基于XML技術(shù)的數(shù)據(jù)傳輸機制,因此監(jiān)控信息可以跨越不同的平臺進行交互.Ganglia將結(jié)點劃分成不同的區(qū)域,區(qū)域內(nèi)的結(jié)點通過多播進行信息交互,因此每個結(jié)點都維護了一張本區(qū)域內(nèi)所有結(jié)點狀態(tài)的列表.這種組織方式使得Ganglia在不進行任何配置的情況下進行結(jié)點的刪除與添加,但是其帶來的代價很大.首先多播導(dǎo)致監(jiān)控數(shù)據(jù)占用了系統(tǒng)網(wǎng)絡(luò)帶寬,其次每個結(jié)點都維護了一張本區(qū)域內(nèi)的結(jié)點狀態(tài)表,當區(qū)域較大時,這些全局冗余的數(shù)據(jù)的更新效率低下.
Nagios\[6\]是由Ethan Galstad開發(fā)的一款基于GPLv2的開源軟件,用于對系統(tǒng)運行狀態(tài)和網(wǎng)絡(luò)信息進行監(jiān)控,也是當前使用廣泛的監(jiān)控軟件之一\[7\].其主要功能包括:網(wǎng)絡(luò)服務(wù)監(jiān)控(SMTP, POP3, HTTP, NNTP, ICMP,SNMP等)和主機資源監(jiān)控(CPU負載、硬盤利用率和系統(tǒng)日志).Nagios與Ganglia都可用于高性能計算環(huán)境中,但是這兩者對監(jiān)控的側(cè)重點不同.Ganglia更多地收集監(jiān)控數(shù)據(jù)并隨時跟蹤這些數(shù)據(jù)而Nagios則致力于成為一種報警機制.
Supermon\[8\]是美國洛斯阿拉莫斯國家高級計算實驗室開發(fā)的一套面向linux集群的監(jiān)控系統(tǒng).集群中的每個結(jié)點上都運行一個定制的內(nèi)核模塊mon,因此其信息采集效率高.Supermon依次與所有的mon進行通信來獲取監(jiān)控信息.Supermon是監(jiān)控系統(tǒng)中的單一失效點,同時Supermon由于需要串行訪問所有結(jié)點上的mon模塊導(dǎo)致在大規(guī)模系統(tǒng)中監(jiān)控效率下降.
Parmon\[9\]是由印度高性能計算中心為PARMON集群開發(fā)的監(jiān)控軟件.該軟件采用c/s結(jié)構(gòu),每個結(jié)點上運行一個server程序負責本地信息收集,Client負責集中管理與信息顯示.當系統(tǒng)規(guī)模較大時Client收集全系統(tǒng)信息需要的時間較長從而導(dǎo)致監(jiān)控軟件的實時性差.
上述管理軟件在一定規(guī)模的集群系統(tǒng)上可以高效運行,但是當系統(tǒng)規(guī)摸不斷擴大時,這些管理軟件面臨如下問題,這也是大規(guī)模計算機系統(tǒng)的監(jiān)控管理所面臨的問題.
1)實時性.當計算機系統(tǒng)規(guī)模擴大時,監(jiān)控管理系統(tǒng)是否能夠繼續(xù)高效對系統(tǒng)進行管理與監(jiān)控.隨著應(yīng)用需求的增長,系統(tǒng)規(guī)模擴大、性能提高是計算機系統(tǒng)的發(fā)展趨勢.根據(jù)top500統(tǒng)計結(jié)果\[10\],2012年11月發(fā)布的top500中排名第一的系統(tǒng)理論峰值27112TFlops,包括560 640個CPU核,一年后排名第一的系統(tǒng)性能提升到54902TFlops,規(guī)模擴展到3 120 000個CPU核.系統(tǒng)性能翻了一翻,系統(tǒng)規(guī)模擴大了5倍多.傳統(tǒng)的集中式監(jiān)控已經(jīng)無法適用于如此大規(guī)模的計算機系統(tǒng).因此如何提高監(jiān)控管理系統(tǒng)的實時性是大規(guī)模計算機系統(tǒng)監(jiān)控管理軟件面臨的問題之一.
2)可靠性.監(jiān)控管理軟件是大規(guī)模計算機系統(tǒng)可靠性運行的保障之一,因此監(jiān)控管理系統(tǒng)自身的可靠性是首先要解決的問題.
3)完備性.目前的監(jiān)控管理軟件基本上側(cè)重于某個功能.例如Ganglia,Supermon和Permon都側(cè)重于系統(tǒng)資源的監(jiān)控,而Nagios則是側(cè)重于對異常狀態(tài)的管理.監(jiān)控管理軟件是提高大規(guī)模計算機系統(tǒng)可靠性和可用性的關(guān)鍵,因此功能完備的監(jiān)控管理軟件才能更好實現(xiàn)對大規(guī)模計算機系統(tǒng)的管理.
2 MMS系統(tǒng)組成
大規(guī)模計算機系統(tǒng)規(guī)模龐大,結(jié)點數(shù)目成千上萬個,系統(tǒng)設(shè)備復(fù)雜,系統(tǒng)中除了計算結(jié)點外還包括存儲設(shè)備、互連設(shè)備和基礎(chǔ)架構(gòu)(包括供電和制冷)等,因此監(jiān)控管理系統(tǒng)需要在對系統(tǒng)軟件資源管理的同時,對這些硬件設(shè)備進行監(jiān)測與控制,實現(xiàn)一個功能完備的監(jiān)控管理系統(tǒng).
2.1 MMS系統(tǒng)功能
MMS提供了基于web的用戶訪問界面,管理員可以在遠程或本地訪問MMS.MMS實現(xiàn)了對系統(tǒng)資源管理,告警信息管理和系統(tǒng)配置信息的管理,其主要功能如圖1所示.
圖1 MMS功能示意圖
Fig.1 Function of the MMS
2.1.1 系統(tǒng)配置與物理布局
監(jiān)控管理系統(tǒng)提供了一個用戶接口,通過該接口用戶可以修改系統(tǒng)配置,調(diào)整物理布局.監(jiān)控管理軟件根據(jù)用戶提供的配置信息進行信息的獲取與查詢,同時根據(jù)用戶提供的物理布局進行系統(tǒng)整體狀態(tài)顯示.
2.1.2 資源管理
資源管理是MMS的主要功能之一.資源管理包括軟件資源信息和硬件信息.軟件資源主要包括系統(tǒng)資源、結(jié)點狀態(tài)和全局存儲信息.系統(tǒng)資源主要包括系統(tǒng)所有結(jié)點的狀態(tài)和作業(yè)信息,包括結(jié)點是否空閑和可用、作業(yè)的運行狀態(tài)、排隊狀態(tài)等.結(jié)點狀態(tài)包括單個結(jié)點上的可用資源例如CPU、內(nèi)存等的利用率等.全局存儲信息主要顯示全局存儲資源的使用和健康狀態(tài).硬件信息主要包括電壓、溫度、風(fēng)扇等信息、運行環(huán)境相關(guān)信息和系統(tǒng)功耗管理.系統(tǒng)管理員通過監(jiān)控管理軟件可以了解系統(tǒng)當前的健康狀況、使用情況和功耗及運行環(huán)境狀態(tài).
2.1.3 告警信息
告警信息收集了全系統(tǒng)的告警信息包括軟件資源和硬件模塊的告警信息.
2.2 MMS系統(tǒng)結(jié)構(gòu)
MMS采用分布式系統(tǒng)結(jié)構(gòu),如圖2所示.MMS系統(tǒng)分為3個層次.底層結(jié)點由所有的被管理設(shè)備組成,中間層包括多個中間代理,最頂層是兩個管理結(jié)點.最底層的每個結(jié)點上運行一個信息采集模塊daemon,負責采集結(jié)點的資源信息,包括結(jié)點配置、結(jié)點資源(CPU、內(nèi)存、網(wǎng)絡(luò)、本地存儲等)使用情況,結(jié)點負載,結(jié)點的用戶及進程等相關(guān)信息.OOBmon是結(jié)點的帶外監(jiān)控程序,負責一個或多個結(jié)點的硬件狀態(tài)監(jiān)控.OOBmon和daemon采集到的信息發(fā)送到對應(yīng)的client.在圖2中,帶箭頭的實線表示數(shù)據(jù)通過計算網(wǎng)絡(luò)進行傳輸,帶箭頭的虛線表示數(shù)據(jù)通過監(jiān)控管理網(wǎng)絡(luò)進行傳輸.從圖2可以看出daemon與client之間的通信需要經(jīng)過計算網(wǎng)絡(luò),對計算網(wǎng)絡(luò)帶來一定的影響.而OOBmon與client之間通過專用的監(jiān)控管理網(wǎng)絡(luò)進行互連,因此帶外管理對系統(tǒng)性能沒有影響.Client是中間代理模塊,負責接收來自所管轄范圍內(nèi)結(jié)點信息采集模塊發(fā)送的信息.雙機熱備的兩個管理結(jié)點負責管理中間代理同時向用戶提供基于web的人機交互界面.中間代理和管理結(jié)點上都使用mysql數(shù)據(jù)庫來存儲信息.
2.2.1 結(jié)點信息采集模塊
結(jié)點信息采集模塊包括帶內(nèi)daemon和帶外OOBmon模塊.Daemon運行在結(jié)點上,負責采集本地信息.Daemon將采集到的信息分成兩類.其中一類是靜態(tài)信息,主要是系統(tǒng)配置信息,例如:CPU的型號、內(nèi)存的型號及容量,網(wǎng)絡(luò)理論帶寬和本地存儲容量等信息.另一類是動態(tài)信息,包括CPU、內(nèi)存和網(wǎng)絡(luò)利用率,作業(yè)負載等動態(tài)變化的信息.因為改變結(jié)點配置時通常情況下需要重新啟動結(jié)點才能生效,此時daemon程序也將被重啟,所以只有在daemon程序每次重啟之后進行一次靜態(tài)信息采集.Daemon工作流程如圖3所示.Daemon啟動后,等待接收來自中間代理的信息,然后開始查詢.將查詢的靜態(tài)信息和首次查詢(包括daemon啟動后的第一次和中間代理發(fā)生變化后的第一次查詢)的動態(tài)信息發(fā)送到中間代理,后續(xù)的查詢只針對動態(tài)信息.動態(tài)信息查詢的結(jié)果與上次的狀態(tài)進行比較,標記發(fā)生了變化的信息,將信息采集結(jié)果以及比較結(jié)果存放到公共數(shù)據(jù)區(qū).中間代理在查詢過程中只需要訪問公共數(shù)據(jù)區(qū)即可.中間代理和結(jié)點之間只傳輸發(fā)生了變化的數(shù)據(jù).這種策略減少了計算網(wǎng)絡(luò)上傳輸?shù)谋O(jiān)控管理數(shù)據(jù)量,從而降低對計算網(wǎng)絡(luò)的影響.
圖2 監(jiān)控系統(tǒng)結(jié)構(gòu)
Fig.2 The architectureof the MMS
圖3 Daemon工作流程
Fig.3 Work flow of the daemon
Daemon首次傳輸?shù)臄?shù)據(jù)結(jié)構(gòu)如圖4所示,數(shù)據(jù)包括了所有的信息以及心跳標志位.后續(xù)的數(shù)據(jù)格式與圖4中的相同,只是totalnum<=n,因為沒有變化的狀態(tài)數(shù)據(jù)不需要傳輸.Heartbit位是每次傳輸?shù)臄?shù)據(jù)中必須包含的,其取值范圍是0或1.Heartbit位由daemon程序進行更新,daemon在比較數(shù)據(jù)時,將上次的heartbit位取反作為本次查詢的heartbit值.中間代理通過heartbit位來判斷daemon的狀態(tài).
OOBmon是帶外監(jiān)控模塊.硬件監(jiān)控一般由結(jié)點上的嵌入式系統(tǒng)來實現(xiàn).大規(guī)模計算機系統(tǒng)結(jié)構(gòu)不同,硬件監(jiān)控的實現(xiàn)方式有所不同.在松散耦合的機群系統(tǒng)中,通常情況下每個結(jié)點上都會有一個監(jiān)控模塊.該監(jiān)控模塊上運行嵌入式系統(tǒng),硬件監(jiān)控信息的采集以及對硬件的控制都是通過監(jiān)控模塊來實現(xiàn)的.在緊耦合系統(tǒng)中,通常多個緊耦合的結(jié)點共用一個監(jiān)控模塊.OOBmon運行在監(jiān)控模塊上,實現(xiàn)了對單個或多個結(jié)點的監(jiān)控與管理,通過專用的監(jiān)控管理網(wǎng)絡(luò)將信息傳輸?shù)街虚g代理模塊.OOBmon對結(jié)點和系統(tǒng)網(wǎng)絡(luò)性能沒有任何影響.通過帶內(nèi)和帶外兩種方式都可以采集到的信息例如CPU溫度、結(jié)點溫度等全部由帶外渠道進行采集與傳輸.
圖4 Daemon與中間代里之間傳輸?shù)臄?shù)據(jù)結(jié)構(gòu)
Fig.4 Data structure transferred between daemon and client
2.2.2 中間代理
中間代理層由多個中間代理組成.每個中間代理負責所屬分區(qū)內(nèi)結(jié)點的監(jiān)控.如圖5所示,中間代理包括4個功能模塊.結(jié)點監(jiān)聽模塊負責接收來自結(jié)點的靜態(tài)信息和首次查詢的動態(tài)信息.信息組播模塊定時向所屬分區(qū)內(nèi)的結(jié)點發(fā)送中間代理的相關(guān)信息,保證故障結(jié)點恢復(fù)后知道自己所在分區(qū).查詢模塊定時對所屬結(jié)點進行動態(tài)信息查詢,將查詢的信息存儲到本地數(shù)據(jù)庫.在數(shù)據(jù)存儲之前判斷本次讀取的數(shù)據(jù)中的heartbit位是否與數(shù)據(jù)庫中的相同.如果相同表示結(jié)點上的daemon程序沒有更新動態(tài)信息,從而判斷daemon故障,需要重啟結(jié)點上的daemon程序.中間代理采用在本地數(shù)據(jù)庫中設(shè)置一個heartbit位,heartbit位的取值為0或1,查詢模塊在對所管轄范圍內(nèi)的結(jié)點查詢結(jié)束后將heartbit位取反并存儲到數(shù)據(jù)庫中.管理結(jié)點通過該位來判斷中間代理的狀態(tài).管理結(jié)點訪問接口監(jiān)聽來自管理結(jié)點的查詢,接收到查詢請求后從數(shù)據(jù)庫讀取信息并發(fā)送到管理結(jié)點.
圖5 中間代理的組織結(jié)構(gòu)
Fig.5 The structure of the client
2.2.3 管理結(jié)點
管理結(jié)點主要功能包括:向用戶提供基于web的監(jiān)控界面,報警信息的接收、處理和轉(zhuǎn)發(fā)以及中間代理管理.
管理結(jié)點提供了基于web的監(jiān)控服務(wù),用戶通過瀏覽器可以實現(xiàn)系統(tǒng)的遠程和本地監(jiān)控.管理結(jié)點上的報警信息處理模塊負責接收系統(tǒng)內(nèi)所有的報警消息,對報警消息進行解析并存儲到數(shù)據(jù)庫,同時將報警消息發(fā)送到客戶端.
管理結(jié)點上的狀態(tài)查詢服務(wù)定時從中間代理讀取狀態(tài)信息和中間代理上的heartbit位,并根據(jù)查詢結(jié)果判斷中間代理的健康狀態(tài).查詢失敗或者查詢到數(shù)據(jù)庫中的heartbit位沒有變化,進行重試,超過設(shè)定的重試次數(shù)后判定代理故障.管理結(jié)點對系統(tǒng)重新進行分區(qū)劃分,并通知所有代理.中間代理向所屬區(qū)域的結(jié)點進行組播通知結(jié)點所在區(qū)域的中間代理發(fā)生了變化,從而實現(xiàn)故障代理的無縫屏蔽.管理結(jié)點通過查詢將所有代理上的本地數(shù)據(jù)讀取到管理結(jié)點進行集中式管理,并形成統(tǒng)一的用戶視圖.遠程用戶只需要訪問管理結(jié)點即可獲取全系統(tǒng)的狀態(tài),因此中間代理對用戶是透明的.
系統(tǒng)中的兩個管理結(jié)點利用結(jié)點心跳(heartbeat)機制來實現(xiàn)雙機熱備.兩個管理結(jié)點采用masterslave模式,運行時master管理結(jié)點負責監(jiān)控管理功能,當slave管理結(jié)點檢測到master故障后,啟動本地的監(jiān)控服務(wù).而兩臺管理結(jié)點上的數(shù)據(jù)庫的備份利用mysql數(shù)據(jù)庫的replication功能實現(xiàn)dualmaster模式復(fù)制架構(gòu).Dualmaster模式保證兩個管理點之間的mysql數(shù)據(jù)庫迅速完成切換,減少停機時間.當slave檢測到master恢復(fù)正常后,將功能移交給master.
3 監(jiān)控系統(tǒng)性能分析
MMS實現(xiàn)了針對大規(guī)模計算機系統(tǒng)全面的監(jiān)控與管理,包括系統(tǒng)配置、系統(tǒng)軟件資源、系統(tǒng)硬件狀態(tài)和系統(tǒng)異常狀態(tài)的實時監(jiān)測,同時還實現(xiàn)了進一步的能耗控制與指導(dǎo).
3.1 功能完備性
MMS具備了ganglia和nagios二者兼有的功能,實現(xiàn)了對系統(tǒng)的監(jiān)控與管理和系統(tǒng)異常信息管理.MMS還集成了對運行環(huán)境的監(jiān)控包括電源和制冷系統(tǒng),從而支持系統(tǒng)功耗的深度控制.系統(tǒng)功耗控制可以在計算結(jié)點級進行也可以在資源管理一級進行.結(jié)點級的功耗控制主要是在系統(tǒng)空閑時CPU降頻或者關(guān)閉某些部件.資源管理級的功耗控制可以根據(jù)系統(tǒng)負載以及作業(yè)的排隊信息來指導(dǎo)哪些結(jié)點可以運行在省電模式甚至休眠模式.這兩級的功耗控制是目前大部分監(jiān)控管理系統(tǒng)都實現(xiàn)了的.MMS可以根據(jù)當前結(jié)點的狀態(tài)進行運行環(huán)境的控制從而進一步達到節(jié)能目的.資源管理指導(dǎo)部分結(jié)點進入省電模式后,MMS根據(jù)區(qū)域內(nèi)的溫度信息逐步調(diào)整該區(qū)域的制冷設(shè)備,從而實現(xiàn)進一步的系統(tǒng)能耗調(diào)控.
3.2 實時性
集中式監(jiān)控實現(xiàn)過程簡單,而其在小規(guī)模系統(tǒng)上運行高效\[11\],但是在大規(guī)模系統(tǒng)中,無論是實時性還是可靠性上都存在缺陷.在集中式監(jiān)控系統(tǒng)中,管理結(jié)點獲取信息的方式有兩種:輪詢或被管理設(shè)備主動上報.隨著系統(tǒng)規(guī)模的擴大,采用輪詢獲取結(jié)點信息會導(dǎo)致查詢時間過長.如果采用被管理設(shè)備主動上報,則管理結(jié)點同時接收來自幾千甚至上萬個設(shè)備的信息,會導(dǎo)致丟包現(xiàn)象嚴重.因此集中式監(jiān)控系統(tǒng)不適于大規(guī)模計算機系統(tǒng).MMS采用分布式結(jié)構(gòu)將大規(guī)模計算機系統(tǒng)分而治之,從而提高了監(jiān)控效率.在分布式系統(tǒng)中,信息的整合和中間代理的管理成為分布式系統(tǒng)的難點.易昭華等人\[12\]提出了一種冗余的代理機制,并采用異步通信方式實現(xiàn)了監(jiān)控管理的高效運行,該監(jiān)控系統(tǒng)將中間代理的選擇交給了唯一的控制臺,因此控制臺是單一失效點.文獻\[13\]增加了一個LDAP目錄服務(wù)器來實現(xiàn)對分布式數(shù)據(jù)的管理,使得監(jiān)控系統(tǒng)具有良好的可擴展性,但是沒有考慮系統(tǒng)的實時性.文獻\[14\]采用了基于聯(lián)邦的數(shù)據(jù)公告來管理這些分布式數(shù)據(jù),管理協(xié)議復(fù)雜而其管理的只是臨時性的數(shù)據(jù).在MMS中,中間代理將收集到的信息存儲在本地,代理之間是獨立的.管理結(jié)點通過查詢將代理上的本地數(shù)據(jù)集中存儲到管理結(jié)點,同時在查詢過程中通過heartbit位實現(xiàn)代理的管理,與文獻\[12-14\]相比,其實現(xiàn)復(fù)雜度低、效率高.
在監(jiān)控系統(tǒng)運行過程中,通過減小傳輸?shù)臄?shù)據(jù)量來提高監(jiān)控系統(tǒng)的實時性.結(jié)點上的信息采集模塊將數(shù)據(jù)分為靜態(tài)數(shù)據(jù)和動態(tài)數(shù)據(jù).靜態(tài)數(shù)據(jù)的采樣頻率低,動態(tài)數(shù)據(jù)采樣頻率高.對采集到的動態(tài)數(shù)據(jù)與前一次的進行比較,如果數(shù)據(jù)沒有變換則不需要進行數(shù)據(jù)傳輸.因此中間代理大部分時間只需要查詢發(fā)生相對變化的信息.監(jiān)控系統(tǒng)中的這種數(shù)據(jù)傳輸模式不僅減少了系統(tǒng)計算網(wǎng)絡(luò)上的監(jiān)控報文量而且還提高了web服務(wù)中客戶端的反應(yīng)速度.在大規(guī)模系統(tǒng)中,系統(tǒng)級的顯示界面上包含的信息大,如果采用傳統(tǒng)的方式,把所有狀態(tài)更新一遍,用戶感知到的延遲很大.如果只是更新發(fā)生了變化的狀態(tài),其延遲將會大大降低.因此MMS采用的數(shù)據(jù)采集及傳輸機制為用戶界面的實時刷新提供了支撐.
本文對動態(tài)數(shù)據(jù)的處理方式是根據(jù)大規(guī)模計算機系統(tǒng)的使用統(tǒng)計提出的.表1給出了運行在天津超算中心的天河系統(tǒng)上的作業(yè)運行統(tǒng)計信息.表1統(tǒng)計的是3個月內(nèi)天河系統(tǒng)上的作業(yè)運行時長及所占比例.從表1可以看出作業(yè)的平均運行時間低于5小時的作業(yè)占所有作業(yè)的8.9%,而且這些作業(yè)中最短運行時間為40分鐘.系統(tǒng)負載變化頻率較低,所以軟件資源利用率變化頻率較低.因此監(jiān)控系統(tǒng)對動態(tài)數(shù)據(jù)采用處理方式可以提高監(jiān)控系統(tǒng)的運行效率,降低對計算網(wǎng)絡(luò)的影響.
在MMS中,監(jiān)控信息的采集是通過兩級異步通信來實現(xiàn)的.在結(jié)點上daemon負責將查詢的信息存放到公共數(shù)據(jù)區(qū),client直接從公共數(shù)據(jù)區(qū)讀取數(shù)據(jù),這是第一級異步傳輸.Client將從結(jié)點查詢到的數(shù)據(jù)存放到本地數(shù)據(jù)庫,管理結(jié)點從client本地數(shù)據(jù)庫讀取最新的信息,這是第二級異步傳輸.與同步通信相比,第一級異步傳輸隱藏了daemon的查詢時間,第二級異步傳輸則是隱藏了client對所有結(jié)點的查詢過程.MMS采用的異步通信機制的效率要遠遠高于同步通信機制.圖6給出了在天河系統(tǒng)上MMS數(shù)據(jù)采集效率與采用同步通信機制時的數(shù)據(jù)采集效率的比較.在實驗驗證過程中設(shè)置了6個中間代理.MMS數(shù)據(jù)采集效率具有明顯的優(yōu)勢.理想情況下MMS的數(shù)據(jù)采集時間與系統(tǒng)規(guī)模成線性關(guān)系,但是實驗結(jié)果表明,隨著系統(tǒng)規(guī)模的擴大,MMS數(shù)據(jù)采集需要的時間越來越長.這主要是由于隨著規(guī)模的擴大,代理數(shù)目不變,client對所有結(jié)點的查詢時間無法在第二級異步傳輸過程中完全隱藏.
3.3 可靠性
分布式監(jiān)控系統(tǒng)提高了監(jiān)控系統(tǒng)的實時性,但是分布式監(jiān)控系統(tǒng)中代理的管理是保證監(jiān)控系統(tǒng)可靠性的關(guān)鍵.在MMS中,中間代理由管理結(jié)點進行管理的,避免了傳統(tǒng)分布式系統(tǒng)中通過復(fù)雜協(xié)議來保證各代理上信息的一致性.兩個管理結(jié)點之間的熱備避免了分布式系統(tǒng)中的單點故障,從而保證MMS自身的可靠性.
4 結(jié)束語
本文提出了一種針對大規(guī)模計算機的高效和高可靠的監(jiān)控管理系統(tǒng).監(jiān)控管理系統(tǒng)采用分布式結(jié)構(gòu),雙機熱備的管理結(jié)點實現(xiàn)了多個中間代理之間的數(shù)據(jù)與視圖的一致性,避免了傳統(tǒng)分布式系統(tǒng)中各種復(fù)雜通信協(xié)議.特殊的動態(tài)數(shù)據(jù)處理機制降低了監(jiān)控管理信息對計算網(wǎng)絡(luò)帶來的影響同時提高了遠程客戶端的反應(yīng)速度.
參考文獻
[1] 黃偉, 詹劍鋒, 樊建平. DCFTKernel:一種基于組服務(wù)的機群容錯管理系統(tǒng)的設(shè)計與實現(xiàn)[J]. 計算機研究與發(fā)展, 2005, 42(6):993-999.
HUANG Wei, ZHAN Jianfeng, FAN Jianping. DCFTKernel: afaulttolerant cluster middleware based on group service[J]. Journal of Computer Research and Development, 2005, 42(6):993-999.(In Chinese)
[2] MATTHEW L M, BRENT N C, DAVID E C. The ganglia distributed monitoring system: design, implementation and experience[J].Parallel Computing,2004,30(7):817-840.
[3] WEI Wenguo, DONG Shoubin, ZHANG Ling, et al. An improved ganglialike clusters monitoring system[C]//The 2th International Workshop on Grid and Cooperative Computing.2004:89-96.
[4] SACERDOTI F D, KATZ M J, MASSIE M L, et al. Wide area cluster monitoring with ganglia[C]//Proceedings of the IEEE Cluster Conference.2003:289-298.
[5] LIU Qingkun, SUN Aiting. Faulttolerant cluster monitoring system[J]. Computer Engineering and Design, 2010, 32(21):4599-4602.
[6] NAGIOS. http://www.nagios.org/
[7] EMIR I, DOBRISA D.Grid infrastructure monitoring system based on nagios[C]//Proceedings of the 2007 Workshop on Grid Monitoring. 2007:23-28.
[8] MATTHEW J S, RONALD G M. Supermon: a highspeed cluster monitoring system[C]//Proceedings of the International Conference on Cluster Computing. 2002:39-46.
[9] BUYYA R. PARMON: a portable and scalable monitoring system for clusters[J]. Software Practice and Experience Journal, 2000, 30(7):723-739.
[10]TOP500. http://www.top500.org/
[11]LI Min, ZHANG Yisheng. HPC cluster monitoring system architecture design and implement[C]//The Second International Conference on Intelligent Computation Technology and Automation. 2009:325-327.
[12]易昭華, 金正操, 杜曉黎.大規(guī)模機群監(jiān)控系統(tǒng)數(shù)據(jù)采集通信模型和通信協(xié)議的研究[J]. 計算機工程與應(yīng)用, 2004, 35:116-118
YI Zhaohua, JIN Zhengcao, DU Xiaoli. Research into large scale cluster monitoring system data gathering communication model and communication protocol[J]. Computer Engineering and Applications, 2004, 35:116-118.(In Chinese)
[13]范勇, 馬梅, 楊大鑒.可擴展機群資源監(jiān)控系統(tǒng)的設(shè)計與實現(xiàn)[J].計算機工程與應(yīng)用, 2003, 26:150-152.
FAN Yong, MA Mei, YANG Dajian. Design and implementation of a scalable cluster monitoring system[J]. Computer Engineering and Applications, 2003, 26:150-152. (In Chinese)
[14]陳熠,孟丹,詹劍鋒,等. 基于聯(lián)邦的數(shù)據(jù)公告的設(shè)計與實現(xiàn)[J]. 計算機工程與應(yīng)用, 2004, 25:107-110.
CHEN Yi, MENG Dan, ZHAN Jianfeng, et al. The design and implementation of federated data bulletin service[J]. Computer Engineering and Applications, 2004, 25:107-110. (In Chinese)