摘要:為網格提供一種可擴展的機制去監控網格中的資源信息是至關重要的,文章介紹了網格的監控對象、監控事件及數據的產生,分析討論了GMA和MDS這兩種常用的網格監控體系結構,前者是一個理論上的模型,后者則是已獲得廣泛應用的Globus工具集中的一個重要的信息服務監控組件。
關鍵詞:網格;監控;GMA;MDS
中圖分類號:TP393文獻標識碼:A文章編號:1009-3044(2008)31-0825-02
Research on Monitoring Technology for Grid
ZHOU Yu
(Information Science and Engineering Technology Institute of Xinjiang UniversityUlmq, Xinjiang 830046, China)
Abstract: The extensible monitoring system is very critical to monitor information resource in Grid. The paper gives a detailed presentation of object, event, data of a Grid monitoring system and analysis two kinds of monitoring architecture: GMA and MDS, one is model on theory and other is information component in Globus.
Key words: grid; monitoring; GMA; MDS
網格是以資源共享為目的的,通過網絡將不同地理位置上的資源連接起來的高性能計算和信息服務環境,具有可擴展性、異構性、多級管理域、動態性等特征。由于資源位于不同的地理位置、不同的管理域,資源可能隨時的加入、退出或失效,因此需要對各個節點的資源狀況進行監控,同時,在系統出現問題時,亦能夠準確的檢測到系統中發生了什么問題。如何在動態、異構虛擬組織間對網格組件進行有效的監控和檢測是正常、高效的應用網格計算的一個決定性問題。
本文首先介紹網格的監控對象、監控數據的產生、發布,然后介紹網格的監控體系結構,并重點闡述網格系統Globus Toolkit中的MDS(Monitoring and Discovery System,網格監控服務)的相關技術及其發展變化。
1 網格監控對象,監控數據的產生、發布
網格監控用來度量和顯示網格組件在某一時刻的狀態,為了保證有效監控,監控必須是“端到端”的,也就是說,在應用端的所有組件都必須監控,包括軟件(如應用程序、服務、中間件和操作系統)、終端主機的硬件(如CPU、磁盤、內存和網絡接口)和網絡(如路由器、交換機或端到端的路徑)。
為了檢測網格組件的狀態,需要在軟件或硬件中放置探測程序(這些探測程序一般被稱為傳感器),當這些對象的狀態發生變化,或者超過一些預定的閥值時,傳感器程序就發出通知,產生相應的監控事件,并在監控事件中收集相關數據,這些數據構成該對象的監控數據,用戶可以通過這些數據了解相關組件的狀態,分析網格的性能。對于歷史數據,還可以與當前性能做比較。因此,監控數據的產生是網格監控的基礎。
程序檢測技術從純手工方式(程序員加入指令)到全自動方式(不需要用戶直接參與的)都有,目前有一些成熟的檢測系統,如NetLogger、Ganglia、Hawkeye等。NetLogger是Lawrence Berkeley國家實驗室的研究人員開發出的一套檢測分布式工具集,它提供產生應用級事件日志的API和函數庫,用戶可以在程序的關鍵點插入對API的調用,并將應用與函數庫進行鏈接。Ganglia是一個分布式的監視系統,主要用來監視高性能系統,如集群。Ganglia 信息包括主機屬性,例如主機名、處理器、內存、操作系統以及文件系統,還有負載信息。Hawkeye 是一個監視系統,它使用 Condor 工具和 ClassAd 機制來收集有關分布式資源的信息。
在網格環境中,由于網格架構和應用的分布性使得監控數據也是分布的,因此要使用這些監控事件數據,用戶必須通過一種監控數據發布服務來定位合適的數據提供者(資源)。監控數據發布服務用于發布和解釋監控事件數據,應具有可靠、及時、可擴展和安全的特點,目前有很多研究針對這一要求展開,如CIM、GMA、R-GMA、MDS等,下面介紹GMA和MDS,并主要闡述MDS。
2 GMA(Grid Monitoring Architecture, 網格監控體系結構)
GMA是全球網格論壇(Global Grid Forum, GGF)提倡并致力于標準化的網格監控體系結構。在GMA中,監控數據的基本單位是一個事件。事件是一個經命名的、有時間戳的結構。此結構可以包含一個或多個數據條目。這些數據關聯到一種或多種資源,如內存或網絡的使用率、或應用特定的數據。GMA中有生產者、消費者以及目錄服務三種組件。其中產生可用事件數據的組件叫生產者,請求或接受事件數據的叫消費者。目錄服務用于事件的發布和發現,出于性能的考慮,目錄服務只包含監控事件的元數據以及這些數據相關聯的生產者和消費者的映射,并不存儲監控事件數據本身。三者關系如圖1所示。
生產者通常在目錄服務中注冊它所能提供的監控事件數據,消費者通過搜索目錄服務來發現自己所需的事件數據的生產者,并向生產者提出請求,生產者響應請求,并發送監控數據給消費者。消費者也可以向目錄服務注冊自己所需的事件數據,這樣相應的生產者可以通過搜索目錄服務發現它并向它提供數據。生產者和消費者可以結合起來構成一種生產者/消費者管道,這種管道可以用來過濾和聚合數據。比如,一個消費者可以從幾個生產者收集事件數據,然后產生一個新的派生數據類型,并提供給其他消費者使用。通過連接多個生產者/消費者管道,可以實現更多的精確過濾、發送和緩存操作。
GMA只是一個規范,并沒有規定具體的實現細節,目前很多工作組正在開發基于GMA的網格監控系統,如R-GMA(數據的存儲和發布是基于關系數據庫的,而不是目錄服務),Remos,TOPOMON等。
3 MDS(Monitoring and Discovery System,監控和發現服務)
MDS是Globus工具集中的信息服務組件,主要是用于發現、刻畫和監控網格中的資源、服務和計算等,提供有關資源的一切信息,包括資源的靜態信息和動態信息。
隨著Globus工具集發展,MDS目前已發展到MDS4,即基于WSRF(Web Service Reaource FrameWork)規范實現的。MDS4被定義為一組 Web 服務,亦稱為WS-MDS, 它對不同的檢測工具和信息源提供標準的WEB服務接口,還定義了標準的信息表示格式和協議用于信息的訪問和傳送。
3.1 MDS4的“沙漏模型”
可以將MDS4理解為“沙漏”型的,如圖2所示。
在沙漏下部,MDS4對不同的信息源提供接口,信息源可以是Ganglia、Hawkeye這樣的檢測系統,也可以是Globus工具集中的一些服務,如GRAM、RFT、CAS等,還提供聚集器的服務來搜集已注冊信息源的狀態信息,并將從信息源傳送過來的數據轉換為通用的XML格式(一般是標準格式,如GLUE格式);在沙漏上部,可利用統一的WEB查詢、訂閱以及通知接口,構建不同的工具和應用,如用戶可采用命令行、瀏覽器和Web服務接口三種方式來查詢和獲取已搜集到的信息。
MDS4的查詢、訂閱以及發布的協議和接口是基于WSRF和WS-Notification的規范實現的,這也是GT4中WEB服務的核心。
3.2 MDS4的服務
MDS4中提供2個高級服務:Index Service:該服務從不同的信息源中搜集并對這些數據提供查詢/訂閱接口;Trigger Service:該服務從網格資源中搜集數據,并在某一確定的條件滿足時執行各種操作。例如,當一個計算資源的隊列長度達到一個特定的閾值時,系統就可能給管理員發送一封電子郵件。
Index Service 的工作方式與UDDI中的注冊相似,但更為靈活一些。它搜集信息,然后將其作為資源屬性發布。客戶機可以向 MDS 查詢信息,或者訂閱所感興趣的資源屬性,即表明如果這些屬性的值發生了變化,客戶機將被及時通知。
Index Service 可以按照一種層次化的方式進行配置,上層可以從底層的 Index Service 中提取信息。Index Service 中保存的所有服務都有一個相關的生命周期。如果在這個生命周期指定的時間內沒有更新,數據就過期了。這種方法可以通過只在相關的資源屬性進行更新時維護這些資源的配置和狀態,從而對臨時資源進行處理。當資源不再可用時,資源屬性就不會更新了,這些信息就會超時并被刪除。
Trigger Service與 Index Service 類似,都要從資源中搜集數據,但是它同時還要對所搜集的數據進行監視,這樣就可以在數據到達某個極限值時執行某些預定的操作。Trigger Service 通過 Web 服務提供此功能。客戶機使用這個 Web 服務來注冊觸發器事件。
3.3 Aggregator框架
Aggregator框架是一個軟件架構,用來建立收集和聚集數據的服務,建立在Aggregator框架上的服務稱為Aggregator服務(如Index Service和Trigger Service),它們具有如下一些共同特點:
① Aggregator服務通過Aggregator源收集信息,一個Aggregator源就是一個Java類,該類實現一個接口(該接口的定義是Aggregator框架的一部分)來收集格式化的XML數據。
② Aggregator服務使用統一的配置機制來保持信息,該信息確定使用哪一個Aggregator源及其相關參數(如從哪兒獲取什么數據)。
③ Aggregator服務都有一個相關的生命周期。如果在這個生命周期指定的時間內沒有更新,數據就過期了。這種方法可以通過只在相關的資源屬性進行更新時維護這些資源的配置和狀態,從而對臨時資源進行處理。當資源不再可用時,資源屬性就不會更新了,這些信息就會超時并被刪除。
④ 都是構建在通用的Aggregator框架基礎上的。Aggregator 框架負責對 aggregator 源中的數據進行搜集、管理和編索引,并將這些數據發送給一個 aggregator 接收器進行處理。使用 Globus Toolkit 進行分布的 aggregator 源包括:查詢服務數據的模塊、通過訂閱/通知來獲取數據的模塊以及執行程序來生成數據的模塊。aggregator接收器包括用來實現 Index service 接口和 Trigger service 接口的模塊。
由于Globus工具集被眾多的網格項目采用作為基礎,已經成為事實上的工業標準,因此MDS也獲得了廣泛的應用。GMA是對構筑一個可擴展的監控系統的組件的抽象描述,并沒有規定具體的實現細節,它是在許多工作的基礎上發展而來的,這其中也包括MDS。MDS與GMA在信息的發現和監控數據的傳輸方面有不同的地方,而一些專家(如IanFoster等)認為可以使用MDS獲取相對靜態的信息而使用GMA來獲取高度動態的信息,當前的網格監控系統,有可能采用兩者的結合,即在MDS的基礎上構筑GMA模式的監控系統。
4 結論
監控系統對于網格來說是非常重要的,通過監控系統可以進行錯誤監測和分析,性能分析和調整。本文對網格監控的對象、監控數據的產生、發布做了介紹,并詳細闡述了GMA、MDS的工作機制,并指出了它們各自的特點和優勢。
參考文獻:
[1] Ian Foster.A Globus Primer[M].http://www.globus.org/toolkit/docs/,2005.
[2] MDS4 and Project Deployments[M].http://www-unix.mcs.anl.gov/%7Eschopf/Pubs/mds4.sc.pdf,2005.
[3] Babu Sundaram,注冊 Globus Toolkit 4 網格服務[N].http://www.ibm.com/developerworks/cn/grid/gr-mdsgt4/,2005.
[4] Jeff Mausolf. 在SOA/Web服務環境中監視和發現網格服務[N].http://www.ibm.com/developerworks/cn/grid/gr-gt4mds/.
[5] 黃達明,李國東,張德富.網格監控系統研究[J].計算機科學,2003(9):146-149,153.
[6] 都志輝,陳渝,劉鵬,李立三.網格計算[M].北京:清華大學出版社,2002.