??? 摘? 要: 以當前最流行的網格環境Globus Toolkit為例,結合業界的最新進展,介紹了網格環境下的數據管理與傳輸,比較了與普通網絡環境下數據傳輸的不同和突出的優勢,并圍繞傳輸機制介紹和討論了相關的服務以及它們的關聯,闡述了有網格特點的數據傳輸與管理方式,探討了這方面進一步研究的發展方向。
??? 關鍵詞: 網格? 數據管理? 數據傳輸? GridFTP? RFT? RLS
?
1 GT4及其數據管理組件
??? 在日新月異的計算機和通信設備的發展中,網格這一新興的基礎設施,正帶來新的網絡繁榮。
??? Globus項目是美國多個組織共同對計算網格的構建進行的研究。從1997年發行的GT2(Globus Toolkit 2)開始,Globus被視為計算網格技術的典型代表和事實上的規范。圖1是Globus聯盟于2005年4月底發布的GT4.0的組件構成內容,新版本的Web服務組件將基于WSRF(Web Services Resource Framework),且完全兼容Web Service標準;非Web服務組件也將服從各種標準規范,強調質量、魯棒性、易用性及文檔完備性[2]。本文將從整體的角度闡述最新版本的GT4中數據的管理及傳輸。
?
??? 從圖1可以看到,數據管理的重要地位,不僅在處理海量數據的數據網格,在數據管理尤其是數據傳輸更是占據著不可撼動的位置,而且它在計算網格和服務網格等領域也是至關重要的,數據以高效、可靠、方便地移動和復制關系到整個系統的效率。
??? 數據管理的主要功能包括:數據的訪問和控制,數據的拷貝和管理,以及與計算、網絡和存儲的協同調度。目前,GT中的數據管理主要包括:GridFTP、RFT(Reliable File Transfer)、RLS(Replica Location Service,代替了舊版本的Globus Replica Catalog和Globus Replica Management)、DRS(Data Replication Service,GT3.9.5即GT4 Beta版中新引入的服務)、OGSA-DAI等。本文將圍繞數據傳輸,特別是GridFTP協議對以往協議的擴展和改進及其引申出的諸多數據傳輸與管理服務展開討論。這些軟件或服務相輔相成,構成了網格中不可或缺的數據管理部分。
2? 數據傳輸——GridFTP協議
??? 在模擬和傳感器技術發展的推動下,數據集規模已經增長到TB數量級,而且PB級的數據量將很快問世。位于日內瓦的歐洲粒子研究中心(CERN),目前正負電子對撞機(LEP)每年的數據是0.2~0.3TB,而幾年內建成的緊湊μ介子螺線管(CMS)每年所產生的數據就將達到幾個PB。網格中現有的存儲系統如數量存儲系統、高性能存儲系統(DPSS、HPSS等)側重于實現快速傳送存儲設備和并行機或群聚計算機之間的龐大文件;而分布式文件系統(DFS)則側重于支持海量存儲與負載平衡,而這些系統間并不兼容。
??? 訪問、分析和處理分布在不同邏輯位置、存儲系統上的數據,應用程序要么選擇只支持某些存儲系統,要么使用多種方法來獲取不同存儲系統上的數據。若能提供一種在異構系統上的公共互用層將對存儲和用戶雙方都非常有利,因此一個普通的、但擴展性強的數據傳輸協議呼之欲出。這樣的機制比建立一個分層的客戶端或網關要好得多,可以避免性能上的損失和過大的復雜性。
??? Globus提出了GridFTP協議,該協議不僅擁有現今使用的數據傳輸協議的特點,還易于擴展,支持更多的存儲系統。GridFTP基于FTP協議(因為FTP是最為廣泛和實用的IETF標準協議),又有多個RFC標準定義了FTP及其擴展,而且其中一些在網格環境中特別適用。下面將討論并比較當前Internet和網格中依然存在的各種數據傳輸協議,并介紹Globus中GridFTP協議的實現和編程接口。
2.1 協議比較
??? (1)FTP(File Transfer Protocol)協議。專門用于數據傳輸的協議,它遵循RFC959,目標是促進文件共享(包括計算機程序和數據);鼓勵直接或通過程序使用遠程計算機;可靠有效地傳輸數據。RFC959定義的文件傳輸協議被RFC2228、RFC2640、RFC2773等更新。其中,RFC2228是FTP的安全擴展;RFC2640對FTP進行了國際化;RFC2773是用KEA和SKIPJACK對文件傳輸加密。SFTP(Secure FTP)使用加密方式傳輸認證信息和數據,如果對網絡安全性要求更高,則可以使用SFTP代替FTP,但它的傳輸效率比普通的FTP要低得多,通常用于傳輸小型敏感數據。
??? (2)HTTP(HyperText Transfer Protocol)協議。是萬維網WWW(World Wide Web)的基礎,在RFC2616中定義。它是一個簡單的協議,客戶進程建立一條同服務器進程的TCP連接,然后發出請求并讀取服務器進程的響應,服務器進程關閉連接表示本次響應結束。
??? (3)BBFTP是一個傳輸大型文件的FTP軟件,同時它也是基于FTP協議的一種新的數據傳輸協議。它能在高性能終端個人電腦之間可靠地傳輸和存儲數據,尤其用來優化傳輸大型文件(超過2GB),因為BBFTP實現了RFC1323(TCP高性能擴展)中定義的“大窗口”,使之更適合傳輸大文件,而不適合用來傳輸小文件。
??? 以上協議或軟件部分重要特征的對比如表1所示。
?
??? 下面就從表1中的對比說明GridFTP協議適應網格環境多樣性的特點。
??? (1)網格大都運行在廣域網環境中,這就需要更高的帶寬。使用多個TCP流(即并行傳輸)可以更充分地利用并提高傳輸帶寬。而GridFTP中修改了RETR指令以使它可以指定TCP流的數目,同時引入了EBLOCK(Extended Block)模式(包括8位標志符、64位長度、64位偏移量和數據),以支持并行傳輸、部分傳輸和帶狀傳輸。
??? (2)窗口大小是TCP/IP中獲取最大帶寬的關鍵參數,針對不同的網格環境、文件大小和文件集類型應該設置不同的值。使用最優的TCP緩沖區/窗口大小可以有效地提高數據傳輸性能。GridFTP增加的新指令SBUF和ABUF,就是分別用來手工指定和使用某種算法自動調整TCP緩沖區/窗口大小。
??? (3)安全認證是網格計算的重點和難點。Globus中GSI(Grid Security Infrastructure)使用PKI、X.25和SSL作為整個安全系統的基礎,分為授權、雙重認證、私有通信、安全私鑰、代理和單一系統登錄部分,建立了非集中管理的、包括多個不同組織的安全系統。而GridFTP支持GSI和Kerberos認證,以滿足用戶控制不同層次上的數據完整性及保密性設定的要求。
??? (4)大規模的分布系統擁有大量的數據集,在存儲服務器間進行第三方控制的傳輸是很有必要的。用戶可以啟動和監控2臺服務器間的數據傳輸,為使用多點資源提供了保障,而且無需進行數據中轉。GridFTP在原有FTP標準第三方傳輸的功能上添加了GSSAPI(Generic Security Service API)安全機制。
??? 許多時候網格計算只需要文件中的部分數據或者一個數據子集,FTP和HTTP協議只支持從某一偏移量開始到整個文件末的傳輸,而GridFTP使用ERET、ESTO等命令可支持部分文件傳輸。同時網格的特殊性也使得連接狀況較難預測,因此傳輸中斷后的恢復必不可少,而GridFTP保留了FTP協議中的斷點續傳功能。
??? GridFTP除了具有以上在普通數據傳輸機制上的性能和功能改進外,還有如下特性:
??? 帶狀(Striped)傳輸使用多個TCP流來傳輸分布在多個服務器上的數據,因為在網格中數據往往會分布在多存儲點上,這樣就可以大大增加客戶端傳輸帶寬,提高速率。GridFTP使用擴展的RETR指令,并有分區和分塊2種策略來進行帶狀傳輸,SPAS、SPOR命令可分別用來設置被動和主動模式。
2.2 實現、性能及編程接口
????(1)實現。Globus項目在GridFTP協議基礎上實現了GridFTP服務器端、GridFTP客戶端、API函數庫以及一系列的相關工具。最新的GT4中GridFTP服務器已不再基于wuftpd,而是重寫了代碼,實現了控制通道和數據通道完全分離。一個控制通道后面可以有多個數據通道(這就是帶狀傳輸服務器的實現方式)。服務器幾種可能的設置如圖2所示。
?
??? (2)性能。根據實驗,在千兆網絡環境下的單服務器對單客戶端傳輸性能:當TCP流增多時傳輸帶寬有明顯的增大(達到200Mbps)。總的來看,GridFTP的性能可達到Iperf(一種網絡帶寬和性能測試工具)的78%;在萬兆網絡(30G)環境下的帶狀服務器對單客戶端傳輸性能:當進行內存到內存傳輸時,隨著帶狀數的增加,傳輸帶寬幾乎呈線性增長(斜率接近1),32個數據節點時可以達到27Gbps的帶寬,近90%的利用率;當進行磁盤到磁盤傳輸時,由于受到存儲系統的限制,但仍然達到了17.5Gbps的帶寬。帶狀傳輸性能測試如圖3所示。
?
??? (3)編程接口。除了GT自帶的用于通道控制和實現客戶端的2個API庫ftp_control_library和fip_client_library外,還有CoG(Commodity Grid)工具集。它是提供給網格用戶、管理者,特別是開發人員使用的高級框架,為開發網格應用程序提供了更快速簡易的通道。目前CoG工具集有Java CoG、Python CoG等,它不僅是集成高級網格服務的工具,還是提供統一分布計算技術訪問接口的中間件[3]。CoG可用于GT中(正在開發的CoG 4.0將兼容最新的GT4),Java CoG為Globus開發了jglobus包,其中包括AXIS、數據傳輸、GASS、GRAM、MDS和安全等組件。
3? 可靠文件傳輸——RFT服務
??? GridFTP客戶端要求一直保持開啟,連接直到傳輸完成為止。而一旦失去與服務器的連接則需要人工參與重啟傳輸。為了傳輸任務的可靠性,一個基于無用戶的、提交傳輸任務后即可釋放的服務是十分必要的。
??? 可靠文件傳輸(Reliable File Transfer,RFT)是基于WSRF(Web Services Resource Framework)的一個網格服務,提供一個永久、易調用、可靠的文件傳輸服務。它支持GridFTP的第三方數據傳輸和部分文件管理功能(如批量刪除文件等),可以監測傳輸動態及性能,自動恢復傳輸等功能。RFT的整體架構如圖4所示。
?
??? 可靠文件傳輸服務接收來自客戶端GUI的傳輸請求,該請求可永久存放在數據庫中(Globus一般采用PostgreSQL),然后調用傳輸客戶端啟動第三方傳輸。通過調用數據庫保存的傳輸任務和狀態來實現出錯恢復這一重要機制。最后用戶可以從各種GUI界面查詢不同信息。
??? 為了主動地檢測傳輸失敗并恢復傳輸,RFT從應用層、網絡層和系統層等獲取可用的信息,處理不同的傳輸錯誤(如進程異常結束或失敗、網絡超時或中斷、服務器崩潰或重啟等),使用不同的對策進行自動管理傳輸任務,包括協商緩沖區大小、多流傳輸、恢復傳輸和結束傳輸。
4? 數據副本管理——RLS和DRS服務
??? 網格是一個整體環境。為了降低訪問延遲,改善數據局部性,保證分布式應用的質量,提高執行效率和性能,往往需要建立數據的遠程只讀副本。同時可以根據需要,在完成數據傳輸復制后把它標識為副本,以便其他客戶端使用。
??? 副本定位服務(Replica Location Service,RLS)維護并提供數據項邏輯名和數據項的一個或多個副本所在位置之間的映射。RLS框架基于LRC本地狀態、RLI集體狀態、RLI軟狀態維護等幾種機制。它實現成一種分布式服務,允許用戶在一致性、空間開銷、可靠性、更新代價和查詢代價之間做出權衡。
??? 數據副本服務(Data Replication Service,DRS)是GT4 Beta測試版新增的組件。該組件的主要功能是確認用戶需要的一組文件是否存在于網格中,然后產生本地的副本,即用RFT把網格中需要的文件傳輸到本地,并自動向RLS注冊新副本。DRS遵循WSRF規范,并發布一個WS資源(副本資源),它保存了提交復本的交互狀態,允許用戶查詢或提交各種不同的資源屬性以監視資源的狀態。DRS在完成數據傳輸后還“關心”數據的去向,可以說是連接數據傳輸和副本管理的一座橋梁。
5? 總結及未來的工作
??? 本文介紹了GT4中除OGSA-DAI外的數據管理組件,主要側重于數據的傳輸。GridFTP協議、軟件、服務的有機結合,組成了數據管理的重要部分,向用戶提供了完整的數據管理機制。
??? GridFTP雖然已成為網格中的標準數據傳輸協議,但還有一些問題尚待解決:GridFTP需要發送方進行TCP連接,這不利于穿越防火墻;即使不同服務器上擁有數據的多個復本,帶狀傳輸也只支持使用并行文件系統的服務器。在帶狀傳輸時,應該用一個負載平衡代理服務器來協調單控制通道及多數據通道的工作,以處理單點故障等,使高效傳輸能順利完成。
參考文獻
1?? Foster L,Kesselman C.The Grid 2:Blueprint for a New Computing Infrastructure.2004
2?? Madduri R K,Hood C S,Allcock W E.Reliable file Transfer in Grid Environments.LCN′02,2002
3?? 徐志偉,馮百明,李偉.網格計算技術.北京:電子工業出版社,2004
4?? 黃斌,彭小寧,肖儂等.數據網格環境中數據傳輸服務的研究與實現.計算機應用研究,2004;(1)
5?? 彭定,傅秀芬,謝翠萍等.網格數據傳輸協議探討.微型機與應用,2004;(6)