摘 要:中國國家網格作為國內最主要的網格為用戶提供了良好的計算服務。詳細討論了網格中間件系統軟件GOS的功能和結構,以及基于GOS的中國國家網格集成環境,給出了生物信息軟件MEME在國家網格環境下的集成實現,并提出了今后的工作方向。
關鍵詞:網格;網格中間件;GOS;中國國家網格;集成
中圖法分類號:TP311文獻標識碼:A
文章編號:1001—3695(2007)02—0196—03
隨著人們求解問題領域的不斷拓展以及問題規模和復雜性的逐步擴大,所需要的計算能力也在大幅度提高。在問題求解過程中,局部的計算資源已無法滿足需求,必須使用更廣泛的分布資源,集中起來協同解決問題。在此情況下,以更大范圍的資源共享為目的的計算方式——網格應運而生[1]。網格可分為計算網格、數據網格、信息網格和知識網格等。網格計算在科學計算領域中起著非常重要的作用,它被定義為一個廣域范圍內的、一體化的集成與協同計算環境,通過聚合網絡上分布的各種同構與異構的計算機、工作站、機群(NOW)、群集(COW)、數據庫、高級儀器和存儲設備等,形成對用戶相對透明的、虛擬的高性能計算環境,從而解決大規模的科學計算問題[2]。
1 GOS介紹
目前,國際上流行的網格中間件有Globus Toolkit和Legion[3,4]等。其中Globus 網格系統軟件對網格計算提供了最全面的嘗試。Globus最新版本GT4的開發是基于OGSA(開放網格服務體系)和WSRF(Web服務資源框架)的,相應的網格Portal的開發是基于GT4和Gridsphere的。VEGA GOS是由中國科學院計算所織女星網格課題組承擔,在Globus Toolkit基礎上開發的網格操作系統軟件,其主要研究方向包括網格操作系統、網格用戶使用環境和開發環境,以及網格基礎理論三個方面。GOS最新版本v2.0已全面部署在中國國家網格(China National Grid ,CNGrid)各個節點上,并廣泛應用于生物信息網格、地質調查網格和教育網格等多個行業應用網格中。
1.1 GOS功能
GOS位于OGSA平臺中,是其執行部分,運行在主機環境之上,為上層的應用服務提供支持。
GOS v2.0 為用戶提供全局資源共享的平臺,并能提供虛擬化、安全和方便的通用資源訪問機制。GOS 實現了三個重要的抽象:①EVP(Effective, Virtual, Physical)地址空間,提供虛擬化的服務訪問機制,屏蔽服務訪問的技術細節,并對開發者實現安全機制透明;②網格社區(Agora),提供用戶、資源和策略管理上的方便性;③網程(Grip),在網格社區的支持下,提供安全、統一的服務和資源訪問的交互接口。此外,還提供系統級功能支持,如網格文件、網格批作業、網格批作業記賬等。為了方便Web 應用集成開發人員在GOS上進行開發,GOS中的通用網格門戶引擎(相當于GOS 系統功能的工具集或高層中間件)除了可以提供Web 應用集成接口外,還提供網格門戶引擎內部的擴展機制。
1.2 GOS 層次結構
從邏輯層次的角度看,可將GOS 自下而上分為四層(圖1):①環境層,提供主機、程序、指令等網格資源,與底層平臺或實現相關;②核心層,提供對資源信息的管理功能,與平臺或實現無關;③系統層,提供對用戶使用環境的支持,在此基礎上,可開發出多種具有實際功能的系統服務和應用服務,以及相應的、面向應用開發人員的客戶端開發庫;④應用層,借助系統層提供的功能,通過集成的手段,向最終用戶提供界面友好的多種網格應用,包括計算服務、數據傳輸等[5]。
GOS v2.0 系統在運行時,其用戶界面由客戶端開發庫和網程容器服務構成,如圖2所示。該用戶界面與操作系統提供的系統調用機制類似,可以屏蔽后端社區服務、路由器服務以及系統或應用層服務的調用細節。社區服務和路由器服務可看作是網程的運行提供支持的信息系統,分別完成有效服務地址到虛擬服務地址的映射,以及虛擬服務地址到物理服務地址的映射工作。同時,社區服務還通過GOS v2.0的安全機制為用戶提供登錄(身份認證)功能,并為用戶(網程)訪問系統或應用層服務提供授權令牌(Token)的簽發功能[6]。
2 CNGrid網格集成環境結構
中國國家網格(CNGrid)是聚合了高性能計算和事務處理能力的新一代信息基礎設施的試驗床,裝備了自主研制的面向網格的高性能計算機,由包括香港在內的八個節點聯合構成了開放的網格環境[7]。其中,在北京主節點(中國科學院計算機網絡信息中心)裝備了每秒5.3萬億次的聯想深騰6800(top 14, 2003年11月),上海主節點裝備了每秒10萬億次的曙光4000A(top 10, 2004年6月)。目前,CNGrid各個節點均統一部署了GOS v2.0作為網格中間件系統,構成了一體化的中國國家網格集成環境。
中國國家網格環境框架由網格門戶、網格系統軟件和網格資源構成。網格門戶面向最終用戶以及系統管理員;網格軟件對應于計算機的操作系統,提供系統底層的功能,并將現有的網上資源服務化(Grid Service/Web Service)、虛擬化,以屏蔽底層資源的異構和動態特性,并通過網格信息服務實現網格系統的在線擴展,為上層網格應用營造出統一的、單一系統映像的,以及與硬件無關的使用界面(API加圖形化客戶端)和用戶使用/開發環境;網格資源是指封裝為安全網格服務的本地應用,由資源提供者開發。這樣,由網格門戶和分散在各個網格節點上的網格系統軟件以及網格資源,通過系統軟件中的網格路由器互連成為全局一體的網格運行環境。
2.1 層次結構
中國國家網格集成框架如表1所示,網格客戶端為通用的Web 瀏覽器;網格軟件除VEGA GOS外還包括GridShield,GridDaEn和CNGrid Portal Toolkit,并具有三層結構,可提供將網格應用轉換成網格資源的支持;網格節點提供網格應用所需的計算能力和存儲能力。
其中,CNGrid網格軟件各組成部分提供的主要功能為
(1)GOS:①基于服務的共享和協同;②網格資源虛擬化;③網格資源在線可擴展;④單一系統映像;⑤網格資源動態部署和調用時部署;⑥基于證書的全局用戶管理。
(2)GridShield:①CA系統;②自主產權的加密算法。
(3)GridDaEn:①數據發布與定位; ②數據傳輸; ③數據副本管理。
(4)CNGrid Portal Toolkit:①基于Web 的網格門戶開發平臺(API);②基于Web的應用界面管理;
③實用工具集成框架及實例,如系統監控等。
2.2 部署結構
網格環境運行系統采用節點分布自治加運行中心集中的方式實現[8]。從前面所講的網格環境層次結構上來看,可以將網格環境分為網格用戶、網格環境運行中心和網格節點三個主要組成部分。每個部分安裝有不同的網格軟件。
(1)網格用戶。分為普通用戶和特殊用戶兩種。普通用戶通過通用瀏覽器(使用ID+PASS)登錄網格環境;特殊用戶通過專用客戶端軟件(使用網格用戶有效證書)登錄網格環境。
(2)網格環境運行中心。在中心運行一些需要集中的功能模塊:全局用戶管理、Portal證書/代理證書管理、全局系統監控(所有信息來自網格節點)、網格系統級管理(如網格節點的加入、刪除等)、全局作業管理(由節點信息決定作業調度到什么地方執行)。
(3)網格節點。在網格節點需要安裝的網格軟件組成部分主要有:節點級系統監控(系統信息),提供基本的信息(服務信息);節點級服務管理(服務的加入、刪除等,以及基于Gridmap的網格服務的授權管理);本地作業調度系統(管理節點局部范圍的作業調度)。
3 CNGrid應用集成示例
CNGrid的應用系統是基于GOS的批作業服務,通過對底層批作業系統(PBS等)的封裝,為客戶端提供統一、通用的批作業處理功能,主要包括作業提交、狀態查詢、作業取消、獲取標準輸入/輸出,數據的Stagein/Stageout等。這里將生物信息學中的Motif尋找軟件MEME在CNGrid主Portal上進行應用集成,用戶可在Web界面上提交作業,通過調用GOS中的BatchService批作業服務執行后臺的MEME程序,最后獲取結果文件。
3.1 頁面鏈接結構
根據圖3所示的集成框架,將MEME具體的頁面鏈接結構分為四部分實現:
(1)JobSubmit.jsp為輸入界面,設置MEME作業提交的必要參數與文件名;
(2)DoJobSubmit.jsp獲取網程相關信息,搜集輸入參數,生成作業描述;上傳輸入文件,同時用取得的網程把文件從Portal上傳到全局空間并提交作業;
(3)UserJobList.jsp顯示作業狀態信息,若作業已執行完,啟動刷新線程,獲取結果;
(4)UserJobOpr.jsp處理作業的取消、刪除等操作。
3.2 邏輯功能說明
(1) DoJobSubmit.jsp
上傳輸入文件(IE→Portal):
CommonBatchJobManager.uploadStageIns(myUpload, jobDir);
用取得的網程把文件從Portal上傳到全局空間:
GripClient gc = grip.getGripClient( );
UserHandle userHandle = (UserHandle)
grip.getHandle( );
BatchFileUtil batchFileUtil = new
BatchFileUtil(gc,userHandle,agora_service_address,agoraId,EDS,EMSName);
提交作業:
如圖4所示,用戶可在Job List看到作業名、提交與結束時間、運行狀態、結果文件,以及相關操作等信息。作業提交的具體過程是先根據頁面提供的參數信息自動生成相應的腳本文件,然后將腳本文件和上傳的序列文件一起傳送到指定的超級計算機的作業文件夾里,利用Bsub腳本文件提交作業,運行結束后再將此文件夾一起傳送到Portal服務器上。
4 后期工作
目前,CNGrid上的作業都是以批處理的方式進行提交,用戶只需登錄國家網格主Portal,在相應Web頁面輸入正確的命令參數,等待后臺運行結果的返回頁面即可。工作流形式通過轉換為批處理也已經實現。
下一步工作重點將集中于交互式處理的開發,即用戶可以像直接面對超級計算機一樣,每輸入一條命令便可看到相應的結果,并實時監控作業的運行情況。此外,網格并行計算也是今后的研究重點,從而可在國家網格環境下提供并行計算的環境,最大程度上利用已有的高性能計算資源完成并行化應用程序的需求,以更快的速度為用戶提供服務。
5 結束語
網格已成為科學計算領域中不可缺少的一個重要應用。中國國家網格是國家“863”支持建設的網格示范平臺,中國科學院網絡信息中心節點作為國家網格的主節點,已經集成了十幾種網格應用,包括天氣預報、宇宙學、計算化學、材料科學、計算流體力學、圖像處理、生物信息、分布式Java計算、科學可視化等,并在進一步的移植與部署中。隨著CNGrid集成環境的不斷完善,中國國家網格將為各個領域的科研工作者提供功能更為強大的高性能計算服務。
本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文。