Globus是1996年由美國Argonne國家實驗室與南加州大學信息科學學院合作開發的技術,是一種研究網格環境中互操作的中間件技術,是一種基于開放結構、開發源碼的社團服務的集合。Globus Toolkit是網格計算領域著名的網格軟件系統,為科學和工程上的網格計算應用程序提供基本的支撐環境。Globus Toolkit定義了構建計算網格的一組基本服務和功能,包括安全、資源管理、通信、目錄管理等基本服務,被許多網格項目所采用。
Globus開發項目組于2002年2月提出了框架模型OGSA,OGSA是Globus Toolkit 2.2的自然進化。OGSA不僅滿足科學計算的需要,而且滿足電子商務的需要。其中的許多基本概念,服務生成、注冊及可靠安全的請求等在Globus Toolkit 2.2中都存在,OGSA進一步抽象了這些單元,以便能被用于任何級別的虛擬資源中。
Globus項目以提供工具包的形式支持基于網格的應用。Globus提供的工具包包括:資源管理、信息服務、數據管理3個主要模塊,以及網格安全架構(GSI)、通信、故障檢測等功能。下面簡單介紹資源管理、信息服務和數據管理等模塊。
1)資源管理
Globus中,如何由信息服務來管理可用資源,如何按照應用程序和用戶的要求找到可用資源,如何使用這些資源,是資源管理關心的問題。Globus的資源管理主要側重解決在異構網每個資源提供者自治的環境下,支持多資源管理策略、多個資源的聯合分配和對資源的動態在線控制。其他資源管理軟件如Condor、Legion、Gallop都只能提供5大功能中的部分功能。
資源規格說明語言(RSL)描述資源管理各個成員之間交換的資源申請,它的句法是基于輕量目錄訪問協議(LDAP)和元計算目錄服務(MDS)的過濾句法。句法的主要構成是一些關系表達式,描述資源的某個參數和需要的條件。參數表示與信息服務MDS統一。
資源管理成員包括:應用程序和資源代理單元、資源協作分配單元、資源管理單元。它們之間的關系如圖1所示。
圖1:資源管理成員間關系示意圖
資源代理單元接收高層(應用程序或用戶)的請求,如抽象資源規格請求,并翻譯成更具體的、資源管理成員能識別的規格。資源代理使用的抽象資源信息有3個來源:從MDS獲得、本地維護和由規格帶來。資源代理把抽象資源信息映射到一個包含更多信息的內部資源申請中。多個代理可能參與處理一個請求,其中特定應用代理單元把應用程序的需求轉換成具體的資源需求,其他資源中介被用來定位需求的資源。資源中介提供的結果是包括資源所在地點的詳細申請,這個申請被傳送給協作分配單元。
資源代理的處理結果是包括所需資源所在地點的RSL表達式,資源協作分配單元和資源管理單元能夠直接理解。如果表達式只包含對一個資源的申請,則直接提交給該資源管理單元;如果表達式同時要申請幾個資源,由協作分配來處理。資源協作分配把這類申請拆分成幾個組成部分,每個部分發給相應的資源管理單元,提供一個對一組資源進行控制的方法。
本地資源管理單元主要負責處理代表資源申請的RSL規格(處理的方法是拒絕申請或創建滿足申請要求的一個/多個進程或作業),允許遠程監視和管理這些作業。根據所管理資源的情況,本地資源管理單元定時修改MDS的相關信息。
本地資源管理單元可以設置成管理一個或幾個計算資源。本地資源管理單元的實現方式可以是自己調度資源,也可以與現有的本地資源分配機制(如Condor、EASY、Fork、LL、LSF、NQE)映射,把資源映射到相應的申請上。
2)信息服務
信息服務負責資源信息的管理。Globus Toolkit中的信息服務MDS主要由兩類基本元素:信息提供者(Information Provider)和聚合目錄服務(Aggregate Directory Services)構成,它們之間的通信采用網格注冊協議(GRRP)和網格信息協議(GRIP)。
信息服務體系結構中包括多個分布的IP,每個IP提供本地資源的一般性的、與虛擬組織(VO)無關的信息,它可以是關于一個或多個實體的信息。信息的組織采用LDAP結構,每個實體由一組對象描述。實體信息不需要存儲,可以動態生成,只有在收到對某個實體的查詢后,信息服務體系才訪問相應的實體,獲取實體信息,提供給查詢者,這樣實體的個數是可變的。目前已實現的信息源有:靜態主機信息(操作系統版本、CPU類型、進程數等)、動態主機信息(平均負載、隊列項等)、存儲系統信息(可用磁盤空間、總磁盤空間等)、網絡信息(通過網絡氣象服務獲得,包括已測得的和預計的網絡帶寬和延遲)。
聚合目錄服務(ADS)是更高層的服務,負責收集、管理、對一個或多個IP提供的信息建立索引或提供應答。該服務與VO有關,提供對資源的綜合使用。ADS把IP和其他ADS提供的信息合并到一個統一的信息空間,提供給用戶訪問。一個ADS包括3部分:通用GRRP句柄、索引結構和搜索處理,后兩者可選GRRP和GRIP。
信息服務各成員間交換信息采用這兩個協議。這兩個協議主要把查詢和發現分開,根據不同的發現策略,構造不同的ADS。每個ADS通過不同的方式使用GRRP和GRIP。
GRRP是一個通知,信息服務成員采用它向其他成員推(PUSH)簡單信息。如IP通過該協議通知ADS可用,ADS邀請某IP加入某虛擬組織。GRRP是一個軟狀態注冊協議。這意味著在遠處創建的狀態必須被不斷更新才能存活。
GRIP是一個查詢協議,可用于用戶或ADS向IP索取更詳細的實體信息。該協議同時支持發現:一種向IP查詢,尋找滿足某個條件的實體的操作。GRIP中采用了LDAP定義的數據模型(層次結構)、查詢語言(查詢、查找等)和在線協議。
GRRP和GRIP可以用來構造層次化的ADS,還可以構造其他服務和應用,比如代理、監視、對應用程序的適應、故障解決、性能診斷等。這些應用主要與監視實體有關。
3)數據管理
數據管理是對數據的傳輸和存儲進行管理。它主要包括兩個基本的數據管理服務:網格文件傳輸協議(GridFTP)和數據復制管理。
網格文件傳輸協議是一個安全、可靠、高效的數據傳輸協議,主要面對廣域環境下的數據傳輸。該協議的使用包括兩方面:存儲系統間傳送大量數據,應用程序/用戶訪問大量數據。目前,GridFTP使用的存儲系統包括:分布式并行存儲系統(DPSS)、高性能存儲系統(HPSS)、分布式文件系統(DFS)、存儲資源代理(SRB)等。GridFTP擴展了FTP標準,是以上及其他多個存儲系統的超集,主要支持GSI和Kerberos,提供數據傳輸的第三方控制,采用多個TCP流支持并行數據傳輸,支持一個源和多個目的間的條帶(Striped)數據傳輸,支持部分文件傳輸,可協調傳輸控制協議緩沖/窗口(TCP Buffer/Window)大小,從容錯方面考慮支持可靠和可重新開始的數據傳輸。
數據復制管理提供注冊并查找同一數據集的多個拷貝的能力。包括創建數據集的全部/部分拷貝,在復制目錄中注冊新拷貝,提供用戶/應用程序查詢復制目錄來找到所有拷貝,根據存儲和信息服務提供的網絡性能預測選擇最好的數據復制。數據復制管理是一個分層次的結構,下層的復制目錄維護文件名到存儲位置(一個/多個)的映射;上層的復制管理在存儲系統中創建/刪除復制,并調用復制目錄,修改相應的項。
資源管理、信息服務和數據管理模塊是Globus的核心,也是其他服務的基礎。為了適應廣域的異構環境,該項目在安全傳輸、安全存儲和安全認證方面提供了一整套方法,在通信方面設計了多方法通信策略,以保證對不同服務提供不同的通信保證,同時設計了故障檢測等方法來實時監視高層應用的底層支持是否正常。各種努力的目標是為網格上不同的用戶提供不同的服務質量保證。目前公布的2.2版本的Globus主要服務對象還是科學計算,但對于真正的科學計算工作者來講,Globus的結構過于復雜,對很多具體的計算要求,如對每次計算的完成時間控制在一定的時間范圍等具體要求不提供支持。