網格數據傳輸協議探討
網格中已有許多大型的存儲系統。這些存儲系統往往側重於不同的需求,為客戶提供不同的服務:如高性能存儲系統側重於實現快速傳送存儲設備和並行機或群聚計算機之間的龐大文件;分佈式文件系統則側重於支持海量存儲與負載平衡。
由於採用了不同的軟件及數據訪問協議,大部分存儲系統並不兼容。若要訪問多個存儲系統,應用程序必須採用多種方法來檢索所需數據,這顯然是低效的。在具體應用中,許多地理上分佈的應用程序或用戶需要訪問大量數據,要求各種存儲系統之間能快速而有效地傳輸大量數據。一種簡單的解決辦法是通過建立一個客戶層或者網關,給用戶提供統一接口以打破由相互不匹配的存儲系統協議所造成的分區。這種方法不要求供應商支持一種新的協議,但由於增加了一個抽像層,所以實現跨系統數據傳輸的代價較大,且實現這種方法是一項很複雜的工作。為此,Globus提出了GridFTP機制,它基於標準FTP協議,並對其進行了全面擴展,可實現對多種存儲系統的支持,並提供統一的用戶訪問界面。
1 GridFTP協議功能及特點
GridFTP基於標準的FTP協議。這是因為FTP協議是目前因特網上使用最普遍的數據傳輸協議。它具有如下特點。
(1)PTP協議有大量的技術基礎,且易於理解。(2)FTP協議是數據傳輸的標準協議之一,易於擴展體系結構,且支持一些擴展的動態發現。(3)目前已有針對FTP協議的大量擴展及其實現,其中一些對於Grid環境的數據傳輸很有用。(4)除了客戶/服務器傳輸(如put/get或者遠程read/write),它也支持由第三方用戶控制的2個服務器之間的直接傳送。(5)由於數據及控制信道在不同套接字上相分離,這使並行及條狀傳輸等特徵更容易擴展。
在FTP協議(RFC 969)及其擴展所定義的特徵中,標準的FTP實現一般只支持其中一個子集。為了使網格數據傳輸協議具有更好的適應性,GridFTP除了應具有普遍使用的數據傳輸協議所提供的基本功能外,還必須是可擴展的。為了滿足網格的需要,GridFTP在FTP的基礎上增加了如下一些新的特徵,其中一些已經成為標準。
(1)自動調整TCP緩衝/窗口大小。手工方式設置TCP緩衝/窗口大小容易出錯,且對用戶要求較高。因此GridFTP對標準的FTP指令集及數據信道協議進行了擴展。針對具體的文件大小及類型,使GridFTP支持手動或自動設置大文件以及小文件集合的TCP緩衝大小。由於使用優化的TCP緩衝/窗口大小設置,從而有效地提高了數據傳輸性能。
(2)支持GSI及Kerberos安全機制。傳輸或存取文件時,靈活可靠的安全鑒別、完整性檢查、健壯性及保密性都非常重要。當用戶要求控制不同層次上的數據完整性及保密性的設定時,GridFTP必須支持GSI(Crid Security Infrastructure)及Kerberos認證。GSI支持用戶代理、資源代理、認證機構和協議的實現,是Globus的安全基礎構件包,是保證網格計算安全性的核心。
(3)第三方控制的數據傳輸。為了管理許多大型數據集,GridFTP提供了經過鑒別的由第三方控制的數據傳輸功能。這種功能允許用戶或應用程序啟動、監視和控制其他2個地點的數據傳輸,為使用多個地點的資源提供了保障。GridFTP在保留FTP的第三方數據傳輸功能上增加了GSS-API(Generic Security Service-API)安全認證。
(4)並行數據傳輸。並行數據傳輸就是在一個數據服務器上,將數據文件分段後在多種數據連接上傳輸數據。在廣域網中,客戶端及服務器之間或2個服務器之間需要高帶寬。使用多個並行的TCP流與使用單一的TCP流相比能有效地提高數據傳輸的總帶寬。GridFTP通過指令及數據信道的擴展支持並行數據傳輸。
(5)條狀數據傳輸。條狀數據傳輸是指應用程序使用多個TCP流來傳輸分佈在多個服務器上的數據。在網格環境中,大規模的數據可分佈放置在多個存儲點上。GridFTP能啟動條狀傳輸,條狀傳輸可以在並行傳輸的基礎上進一步提高總帶寬及數據傳輸速度。
(6)部分文件傳輸。許多應用程序只需要訪問某個遠程文件的一部分。而標準的FTP只能傳輸整個文件或從文件某個特殊位置開始的剩餘部分,因此需要特定的數據傳輸支持。GridFTP引入新的FTP指令以支持從一個文件的任意位置開始傳輸數據。
(7)支持可靠的數據傳輸及數據重傳。對於許多處理數據的應用程序來說,保證數據傳輸的可靠性很重要。處理短暫的數據傳輸故障和服務器故障等是不可缺少的容錯手段。GridFTP支持可靠的數據傳輸及數據重傳,並把它擴展到新的數據通道協議中。
2 GridFTP性能
在2台工作站上進行GridFTP數據傳輸的性能測試。其中一台工作站在美國Illinois州的Argonne National Laboratory,另一台在美國California州的Lawrence Berkeley National Laboratory,二者之間通過ES-Net(WWW.es.net)進行連接。二個工作站都運行Linux操作系統,具有數據讀寫速度約為60MBps的RAID存儲系統。在2台工作站之間最慢的網絡部分是千兆以太網。當並行的TCP流增加時Iperf與GridFTP的數據傳輸性能比較如圖1所示。
Iperf是測量網絡性能的工具,通過它可以得到網絡的最大吞吐量。由圖1可以看出,當並行TCP流達到7~10條時,GridFTP的通信性能可達到200Mbps。Iperf及GridFTP之間的性能差異主要是由GridFTP中存在的安全鑒別開銷、發送性能狀態信息的開銷及檢查點設置開銷引起的。根據計算,GridFTP的性能可達到Iperf性能的78%。
在一段時間內,受測試節點的磁盤性能的限制,在2個節點之間進行GridFTP傳輸時的性能會略小於圖1所顯示的性能:當傳輸過程中出現不同的網絡問題(網絡設備掉電、DNS出錯等)時,傳輸性能會陡降。但當網絡恢復時,數據傳輸又繼續開始。這主要是因為GridFTP協議支持數據傳輸自動重傳,這樣一旦網絡恢復正常,中斷的數據傳輸可繼續進行。
3實現及應用
Globus項目是美國多個組織共同對計算網格的構建進行的研究。目前的Globus可被視為計算網格技術的典型代表和事實上的規範。
為了實現GridFTP協議,Globus項目主要實現了GridFTP函數庫(globus_ftp_control_library及globus_fip_client_library)、GridFTP客戶端、GridFTP服務器端及一系列的相關工具。GridFTP服務器端主要是通過對自由軟件wuftpd進行改寫及擴展來實現的。GridFTP客戶端則通過對ncfip改寫及擴展實現。
函數庫globus_ftp_control_library實現了控制通道API,主要提供了管理GridFTP連接(包括相互鑒別、創建控制及數據通道、在數據通道上讀寫數據)的功能,並且支持並行數據傳輸、條狀數據傳輸及第三方數據傳輸等。
函數庫globus_ftp_client_library主要實現GridFTP客戶端API,提供高層客戶端數據傳輸功能,包括完整文件get操作及put操作、對並行數據傳輸進行控制及設置、部分文件傳輸操作和設置TCP緩衝大小等。
4 GridFTP的發展前景
GridFTP 2.0版本已基本能滿足網格需求,預計2~3年內GridFTP將成為主要網格數據傳輸協議。然而GridFTP協議還有一個主要的問題:數據信道的連接與數據流必須在同一個方向上,也就是說數據信道不能是雙向的。在防火牆中這將引起問題。因此GridFTP還需要一些附加特徵及其開發技術,如全雙工協議、管道指令和Web服務等。
為了解決上述問題,Globus工作組將開發附加協議。GridFTP協議實際上是由許多下一層的子協議組成。這個新的數據傳輸協議將實現雙向數據傳輸、管道指令、擴展塊模式的所有功能和其他可能的特徵。此外,GridFTP還要有一個統一的Web服務接口。如果需要向下兼容,新協議可以作為一個新的模式整合到現存的GridFTP協議中