摘要:由于集群節點通常只有局部IP地址,集群通過主節點對外通信,無法滿足工程應用和科學計算的要求;另外在網格應用中,常見的集群資源監控組件提供的信息量和信息種類還不夠滿足應用需求。為此提出并實現了擴展Globus MDS的解決方案。在曙光集群上的測試以及在面向多學科應用的模擬與可視化網格環境(MASSIVE)中的應用證明了該解決方案是可行的。
關鍵詞:集群;網格信息服務;資源發現;資源監控;網格
中圖分類號:TP39文獻標志碼:A
文章編號:1001-3695(2007)07-0276-03
網格計算將大量、分布、動態、異構的資源組織起來整合在統一的框架中,為用戶提供高效低價的計算和信息服務,以協同解決復雜的科學計算與工程應用問題。
MASSIVE(Multidisciplinary ApplicationS-oriented Simulation and Visualization Environment,面向多學科應用的模擬與可視化環境)[1]是浙江大學工程與科學計算研究中心(CESC)承擔開發的網格項目。它將網格技術用于支持跨管理域的工程協作和科學計算。MASSIVE網格中,一個典型的應用過程為:用戶在PC機上控制任務;CAD建模的模型數據通過網絡傳輸到SGI Onyx 3900超級計算機進行幾何網格劃分;劃分后的數據傳輸到曙光TC4000L微機集群完成并行求解計算,計算結果的可視化通過立體顯示墻實現。在整個過程中,用到了多個分布的、異構的資源。這些資源包括PC機、工作站、集群、超級計算機、顯示設備等。MASSIVE網格中的信息服務模塊MEMDS[2]為網格應用和網格用戶提供準確、方便、實時、高效的資源發現和監控服務。MASSIVE網格平臺基于網格中間件GT2.4構建。在部署MASSIVE網格環境時,集群系統是一個難題。計算機集群是通過軟件和硬件把多個計算節點連接起來的計算機系統,對用戶而言,使用一個集群系統就像使用一臺計算機一樣。因此,在網格環境中將集群視為一個計算資源是合理的。MASSIVE環境中使用的曙光TC4000L集群為主從結構,從安全管理和易用性等方面考慮,集群只有首節點一個對外的IP地址,其余節點均為Local IP。針對這樣的體系結構,在集群上配置網格環境時,將集群首節點配置成網格服務節點,集群其他節點則作為計算節點,并通過首節點來管理和調度。這種部署方式雖然符合集群作為一個計算資源的思想,方便了網格任務的執行,但在程序并行化、任務調度、資源監控等方面給網格應用帶來了挑戰。在MASSIVE中,本文通過對網格中間件的一系列修改、擴展來解決這些問題,介紹通過擴展Globus MDS的方法來實現集群中的網格信息服務。
1集群環境中網格信息服務的分析
要想實現網格任務在集群中的執行,在任務調度之前,信息服務必須提供集群整體的資源信息以及各個節點本身的詳細信息;在任務執行過程中,信息服務也必須實時地提供資源變化和計算節點環境的各項信息。目前,很多集群的資源管理系統都能根據需要收集集群節點的信息,如PBS[3]、SGE[4]和Ganglia[5]等。然而,當集群作為一個網格計算資源時,這些軟件并不能很好地滿足計算網格中工程與科學計算的需求。原因主要有以下兩點:
(1)這些軟件提供的資源信息不夠全面。不同的應用需要不同的資源信息,對網格環境有不同的要求。在MASSIVE網格應用中,除了通用資源發現服務提供的基本計算能力信息外,用戶還必須獲得應用程序運行和結果回收的其他相關信息,如網絡信息、映射用戶信息、可用目錄信息、任務調度器信息、虛擬組織信息、可視化設備相關信息等。這些信息的提供需要定制的信息提供程序,并且這些程序應當符合原有的信息服務規范。因而,無論采用哪種集群資源監控方式都需要靈活易用的信息服務定制方式。在MASSIVE網格的信息服務MEMDS中,可通過用戶自定義的信息服務組件來解決這個問題。
(2)與網格環境中其他管理域、其他類型的信息服務進行協作時實現困難。網格要求處于不同管理域的異構節點形成虛擬組織(VO)共同完成任務。網格信息服務必須為此提供統一、可兼容、一致的接口,使網格中的任一節點能獲得所需的網格信息。無論集群利用何種信息服務工具,都必須能夠與其他網格節點的信息服務協作。因而,筆者希望曙光集群的信息服務能與超級計算機、PC機、工作站上部署的MEMDS作為一個整體視圖來提供信息。
基于以上兩點考慮,同時考慮到MASSIVE中其他網格節點的信息服務工具為MEMDS(基于MDS實現),為了使集群信息服務與MEMDS具有一致的信息表示和訪問方式,且能完整合理表述集群本身的信息,本文基于MDS部署集群信息服務。要實現這一目標,有如下兩種可能的方式:
(1)在集群的每個節點上安裝Globus工具包,啟動MDS服務。將首節點配置為GIIS(Grid Index Information Ser-vice,網格目錄信息服務)服務器,其余節點作為GRIS(Grid Resource Information Service,網格資源信息服務)提供本地資源信息。將整個集群視為一個VO,統一對外提供VO中各節點的信息。這種方法的出發點是將集群的每個節點看做是一臺微機, 只需在每個節點上安裝Globus并進行基本的配置即可。但是,在集群的每個節點上都安裝Globus工具包工作煩瑣,造成了不必要的浪費,給集群管理帶來了負擔,并造成集群對外顯示信息邏輯性差,不能很好地體現集群的特點,有悖于集群作為一個整體資源的思想。
(2)針對集群特點,修改Globus工具包中MDS的實現代碼,使其首節點通過對外通信能夠提供集群所有節點的資源信息,并根據各節點信息進行分析整合,計算出集群整體的資源和性能信息。從邏輯上看,該方法將集群視為一個整體,對外提供集群整體的負載、性能等信息;同時又可以根據用戶要求靈活地添加新的信息服務程序,提供多層次、詳細的集群各節點的信息。網格用戶可以通過集群對外IP獲得所需要的信息。采用該方法時,集群的信息組織形式如圖1所示。
這種方法的出發點是將集群作為一個整體提供服務,而且是提供了一個系統映像,首節點是集群的管理節點。它需要修改Globus MDS的源碼,難度較大,但提供的信息符合網格任務的需求和集群的體系結構及管理模式;同時,它也可以用于其他體系結構的集群(如由PC機搭建的集群,各節點異構)的網格信息服務。因此,從集群體系結構的功能和系統擴展性的角度考慮,本文采用了方法(2)。
2集群環境中網格信息服務的實現
Globus中的信息服務模塊MDS[6]面向網格計算環境中數據巨大、地理上分布且具有動態性的各種資源和服務。其內容包括資源(服務)發現、資源(服務)描述和資源(服務)監控與更新。它遵從輕量級目錄訪問協議LDAP模型實現資源信息的組織和檢索。MDS由客戶端和服務器端組件構成,在集群環境中對MDS的修改也包括客戶端和服務器端兩部分。
2.1MDS客戶端的修改
用戶如果需要在網格內查找資源信息,只要運行MDS客戶端命令即可。客戶端是通過LDAP的客戶端命令行ldapsearch來實現的。MDS客戶端由shell腳本作為入口,封裝了標準的ldapsearch命令。Shell腳本的功能及客戶端進行信息查詢的過程如圖2所示。
對于客戶端的修改主要集中在修改相關配置文件信息和shell腳本上。修改配置文件的目的是提供GRIS的配置信息,包括主機名、默認端口、basedn等;修改shell腳本的目的是改變各種環境變量、ldapsearch的參數分析等。修改之后,配置文件和腳本入口反映了需要的集群視圖信息,而ldapsearch命令的執行方式不更改。
2.2MDS服務器端的修改
MDS的服務器端組件由三部分構成:
(1)信息的提供者。MDS的信息由信息提供者提供。他把本地資源的屬性和當前狀態轉變成規定的格式,然后把相關數據提交給GRIS服務器。
(2)GRIS。它將信息提供者提供的本地資源信息匯集過濾,向GIIS服務器進行動態注冊更新。當一個信息查詢請求被接收后,根據請求信息的類型把查詢請求分發給一個或多個本地信息提供者;然后GRIS把信息提供者提供的信息匯總,返回給信息查詢請求者。
(3)GIIS。它包含了GRIS或其他GIIS登記的資源信息索引。GIIS將各GRIS服務結合起來,提供一個統一連貫的系統映像。客戶端用戶通過直接指定GIIS的入口就可以檢索需要的信息。由于集群作為一個計算節點提供資源,集群內部不涉及GIIS。從服務器端的構成和查詢處理過程可以看出,服務器端的修改主要針對GRIS、IP的配置和實現。GRIS的修改主要是配置文件的修改,包括schema和lDIF文件。修改后,資源信息組織的框架形式得以改變,同時規定了后端調用IP的特性。具體信息提供則通過修改IP來實現,IP的實現主要是由Shell腳本以及部分C程序完成的。因此,在原MDS腳本文件的基礎上進行修改,同時根據需要加入了部分新的腳本,以實現自定義的信息提供。將集群系統視為一個整體,根據網格任務需要,提供的核心信息包括集群的性能信息和用戶自定義信息。其中用戶自定義信息提供MASSIVE網格應用需要的特殊信息,如映射用戶信息、任務調度器信息等。
下面分別介紹兩類信息提供的實現:
(1) 集群基本性能信息
筆者認為,針對網格計算任務,用戶需要的相關計算資源信息包括: ①節點總數及空閑數;②CPU個數及空閑率;③內存和虛擬內存的總量及空閑量;④文件系統總量及空閑量;⑤網絡帶寬與延遲。這些信息由集群整體性能信息和各節點詳細信息兩個層次構成,作為核心資源信息提供給用戶。集群性能信息是集群各節點相應信息經分析計算得到的。信息的查詢和整合過程如圖3所示。
系統通常都提供了標準命令可以獲取節點的相關信息,集群整體的性能信息通過各節點信息進行計算獲得。這里以CPU信息為例說明集群性能信息的計算方法。
通過Linux命令Uptime查詢CPU負載信息。Uptime命令的輸出結果格式為:當前時間、系統正常運行時長、當前登錄用戶數、平均負載。計算CPU空閑率的公式為
CPU空閑= (CPU數-平均負載)×100
其中,平均負載可以根據需要,以1、5、15min計。
這樣的計算方法與MDS對CPU空閑率的表述方式一致,可以使集群的CPU與其他網格節點的CPU性能具有可比性。從計算公式可以看出,在只有一個CPU時,空閑率小于100。當計算節點的CPU數大于1時,CPU空閑通常大于100。所用的曙光集群的CPU總數為48,某次檢索結果發現CPU在15min內的空閑率是4 609。這說明目前集群大約有46個CPU是完全空閑的,CPU當前具有很高的空閑率。
(2)自定義信息服務
在曙光集群中,根據MASSIVE的需要加入了如下自定義的信息服務:網絡信息、集群映射用戶信息、可用目錄信息、調度器信息、安全認證信息。一個IP,無論是MDS已有的或是用戶自定義的,從本質上來說,都是一段程序,程序的輸入與輸出符合GRIS后端的要求。每個IP的輸入是一個LDIF記錄項,描述了操作類型;輸出是LDIF對象流,描述了目錄樹中某個節點的相關信息。GRIS后端是slapd服務器的一部分,它通過fork和exec調用來啟動IP,接收IP的輸出進行緩存,用于向上層GIIS注冊信息或響應用戶檢索。MDS工具包為用戶自定義IP預留了命名空間,開發人員可以根據需要定制編寫新的信息服務程序[7]。在MASSIVE網格的自定義信息服務程序的設計實現中,考慮的問題主要包括以下幾個方面:①程序實現遵循LDAP,信息的組織方式與LDAP前端一致,符合LDAP要求的LDIF格式。所有自定義IP都采用C或標準C++實現,具有良好的跨平臺性。因而在實際部署中,集群環境中所需的自定義IP與其他網格節點的部署完全一樣。②與網格環境融合,充分利用網格中間件提供的功能,程序實現符合網格環境的要求。③與網格中已存在的信息提供者不沖突。在Globus MDS中有許多已經存在的信息提供者,而在擴展實現中,必須保證新加入的信息提供者不與之沖突,否則MDS將無法正常工作。在實現中,利用模式文件(schema文件)、配置文件和時間相關的OID來保證這點。④提供靈活、方便、可選的信息提供方式。信息如何加入MASSIVE網格、加入哪些信息、如何檢索,均允許用戶選擇定義。
經過修改后,某次信息查詢的結果在MEMDS中顯示如圖4所示。其中,cesc12是曙光集群,cesc11是超級計算機,其他為PC節點。可以看到,無論計算節點類型是什么,MEMDS對外都以統一的方式顯示計算節點的資源信息。
3結束語
本文分析了集群環境對網格信息服務的要求和實現策略。針對只有一個對外IP的集群環境,在分析各種集群任務監控系統的基礎上,提出并實踐了基于Globus MDS的可行解決方案。在MASSIVE網格環境中,通過修改和擴展MDS實現了集群環境中的網格信息服務。經過測試,該解決方案可以為用戶提供合理、準確的集群信息,從而很好地支持網格任務的運行。
當前的集群信息服務能滿足MASSIVE網格的需求,但對于超級計算機和集群的性能、服務如何組織、如何評價、如何使其提供的服務更為靈活高效,還有待進一步的研究。
參考文獻:
[1]WEI Guiyi,SONG Guanghua,ZHENG Yao,et al.MASSIVE:a multidisciplinary applications-oriented simulation and visualization environment[C]//Proc of the 2004 IEEE International Conference on Services Computing.Los Alamitos:IEEE Computer Society,2004:583-587.
[2]WANG Wei,ZHENG Yao,SONG Guanghua.The design and implementation of scalable information services in a grid environment[C]//Proc of the 2005 IEEE International Conference on Services Computing.[S.l.]:[s.n.],2005:265-267.
[3]Portable batch system[EB/OL].[2006-04-25].http://www.openpbs.org/.
[4]Grid engine project[EB/OL].[2006-04-25].http://gridengine.sunsource.net.
[5]Ganglia[EB/OL].[2006-04-25]. http://ganglia.sourceforge.net/.
[6]CZAJKOWSKI K,FITZGERALD S,FOSTER I,et al.Grid information services for distributed resource sharing[C]//Proc of the 10th IEEE International Symposium on High-Performance Distributed Computing.Los Alamitos:IEEE Computer Society,2001:181-194.
[7]MDS 2.2 user’s guide[EB/OL].[2006-04-25].http://www.globus.org/toolkit/docs/2.4/mds/mdsusersguide.pdf.
注:“本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文”