摘??要: GridFTP協(xié)議的功能及特點,并對其性能及應(yīng)用與實現(xiàn)作了討論。
關(guān)鍵詞: GridFTP? 文件傳輸? 條狀數(shù)據(jù)? 并行數(shù)據(jù)
?
網(wǎng)格中已有許多大型的存儲系統(tǒng)。這些存儲系統(tǒng)往往側(cè)重于不同的需求,為客戶提供不同的服務(wù):如高性能存儲系統(tǒng)側(cè)重于實現(xiàn)快速傳送存儲設(shè)備和并行機或群聚計算機之間的龐大文件;分布式文件系統(tǒng)則側(cè)重于支持海量存儲與負(fù)載平衡。
由于采用了不同的軟件及數(shù)據(jù)訪問協(xié)議,大部分存儲系統(tǒng)并不兼容。若要訪問多個存儲系統(tǒng),應(yīng)用程序必須采用多種方法來檢索所需數(shù)據(jù),這顯然是低效的。在具體應(yīng)用中,許多地理上分布的應(yīng)用程序或用戶需要訪問大量數(shù)據(jù),要求各種存儲系統(tǒng)之間能快速而有效地傳輸大量數(shù)據(jù)。一種簡單的解決辦法是通過建立一個客戶層或者網(wǎng)關(guān),給用戶提供統(tǒng)一接口以打破由相互不匹配的存儲系統(tǒng)協(xié)議所造成的分區(qū)。這種方法不要求供應(yīng)商支持一種新的協(xié)議,但由于增加了一個抽象層,所以實現(xiàn)跨系統(tǒng)數(shù)據(jù)傳輸?shù)拇鷥r較大,且實現(xiàn)這種方法是一項很復(fù)雜的工作。為此,Globus提出了GridFTP機制,它基于標(biāo)準(zhǔn)FTP協(xié)議,并對其進行了全面擴展,可實現(xiàn)對多種存儲系統(tǒng)的支持,并提供統(tǒng)一的用戶訪問界面。
1?GridFTP協(xié)議功能及特點
GridFTP基于標(biāo)準(zhǔn)的FTP協(xié)議。這是因為FTP協(xié)議是目前因特網(wǎng)上使用最普遍的數(shù)據(jù)傳輸協(xié)議。它具有如下特點。
(1)FTP協(xié)議有大量的技術(shù)基礎(chǔ),且易于理解。(2)FTP協(xié)議是數(shù)據(jù)傳輸?shù)臉?biāo)準(zhǔn)協(xié)議之一,易于擴展體系結(jié)構(gòu),且支持一些擴展的動態(tài)發(fā)現(xiàn)。(3)目前已有針對FTP協(xié)議的大量擴展及其實現(xiàn),其中一些對于Grid環(huán)境的數(shù)據(jù)傳輸很有用。(4)除了客戶/服務(wù)器傳輸(如put/get或者遠(yuǎn)程read/write),它也支持由第三方用戶控制的2個服務(wù)器之間的直接傳送。(5)由于數(shù)據(jù)及控制信道在不同套接字上相分離,這使并行及條狀傳輸?shù)忍卣鞲菀讛U展。
在FTP協(xié)議(RFC 969)及其擴展所定義的特征中,標(biāo)準(zhǔn)的FTP實現(xiàn)一般只支持其中一個子集。為了使網(wǎng)格數(shù)據(jù)傳輸協(xié)議具有更好的適應(yīng)性,GridFTP除了應(yīng)具有普遍使用的數(shù)據(jù)傳輸協(xié)議所提供的基本功能外,還必須是可擴展的。為了滿足網(wǎng)格的需要,GridFTP在FTP的基礎(chǔ)上增加了如下一些新的特征,其中一些已經(jīng)成為標(biāo)準(zhǔn)。
(1)自動調(diào)整TCP緩沖/窗口大小。手工方式設(shè)置TCP緩沖/窗口大小容易出錯,且對用戶要求較高。因此GridFTP對標(biāo)準(zhǔn)的FTP指令集及數(shù)據(jù)信道協(xié)議進行了擴展。針對具體的文件大小及類型,使GridFTP支持手動或自動設(shè)置大文件以及小文件集合的TCP緩沖大小。由于使用優(yōu)化的TCP緩沖/窗口大小設(shè)置,從而有效地提高了數(shù)據(jù)傳輸性能。
(2)支持GSI及Kerberos安全機制。傳輸或存取文件時,靈活可靠的安全鑒別、完整性檢查、健壯性及保密性都非常重要。當(dāng)用戶要求控制不同層次上的數(shù)據(jù)完整性及保密性的設(shè)定時,GridFTP必須支持GSI(Grid Security Infrastructure)及Kerberos認(rèn)證。GSI支持用戶代理、資源代理、認(rèn)證機構(gòu)和協(xié)議的實現(xiàn),是Globus的安全基礎(chǔ)構(gòu)件包,是保證網(wǎng)格計算安全性的核心。
(3)第三方控制的數(shù)據(jù)傳輸。為了管理許多大型數(shù)據(jù)集,GridFTP提供了經(jīng)過鑒別的由第三方控制的數(shù)據(jù)傳輸功能。這種功能允許用戶或應(yīng)用程序啟動、監(jiān)視和控制其他2個地點的數(shù)據(jù)傳輸,為使用多個地點的資源提供了保障。GridFTP在保留FTP的第三方數(shù)據(jù)傳輸功能上增加了GSS-API(Generic Security Service-API)安全認(rèn)證。
(4)并行數(shù)據(jù)傳輸。并行數(shù)據(jù)傳輸就是在一個數(shù)據(jù)服務(wù)器上,將數(shù)據(jù)文件分段后在多種數(shù)據(jù)連接上傳輸數(shù)據(jù)。在廣域網(wǎng)中,客戶端及服務(wù)器之間或2個服務(wù)器之間需要高帶寬。使用多個并行的TCP流與使用單一的TCP流相比能有效地提高數(shù)據(jù)傳輸?shù)目値?。GridFTP通過指令及數(shù)據(jù)信道的擴展支持并行數(shù)據(jù)傳輸。
(5)條狀數(shù)據(jù)傳輸。條狀數(shù)據(jù)傳輸是指應(yīng)用程序使用多個TCP流來傳輸分布在多個服務(wù)器上的數(shù)據(jù)。在網(wǎng)格環(huán)境中,大規(guī)模的數(shù)據(jù)可分布放置在多個存儲點上。GridFTP能啟動條狀傳輸,條狀傳輸可以在并行傳輸?shù)幕A(chǔ)上進一步提高總帶寬及數(shù)據(jù)傳輸速度。
(6)部分文件傳輸。許多應(yīng)用程序只需要訪問某個遠(yuǎn)程文件的一部分。而標(biāo)準(zhǔn)的FTP只能傳輸整個文件或從文件某個特殊位置開始的剩余部分,因此需要特定的數(shù)據(jù)傳輸支持。GridFTP引入新的FTP指令以支持從一個文件的任意位置開始傳輸數(shù)據(jù)。
(7)支持可靠的數(shù)據(jù)傳輸及數(shù)據(jù)重傳。對于許多處理數(shù)據(jù)的應(yīng)用程序來說,保證數(shù)據(jù)傳輸?shù)目煽啃院苤匾?。處理短暫的?shù)據(jù)傳輸故障和服務(wù)器故障等是不可缺少的容錯手段。GridFTP支持可靠的數(shù)據(jù)傳輸及數(shù)據(jù)重傳,并把它擴展到新的數(shù)據(jù)通道協(xié)議中。
2?GridFTP性能
在2臺工作站上進行GridFTP數(shù)據(jù)傳輸?shù)男阅軠y試。其中一臺工作站在美國Illinois州的Argonne National Laboratory,另一臺在美國California州的Lawrence Berkeley National Laboratory,二者之間通過ES-Net(www.es.net)進行連接。二個工作站都運行Linux操作系統(tǒng),具有數(shù)據(jù)讀寫速度約為60MBps的RAID存儲系統(tǒng)。在2臺工作站之間最慢的網(wǎng)絡(luò)部分是千兆以太網(wǎng)。當(dāng)并行的TCP流增加時Iperf與GridFTP的數(shù)據(jù)傳輸性能比較如圖1所示。
?
Iperf是測量網(wǎng)絡(luò)性能的工具,通過它可以得到網(wǎng)絡(luò)的最大吞吐量。由圖1可以看出,當(dāng)并行TCP流達(dá)到7~10條時,GridFTP的通信性能可達(dá)到200Mbps。Iperf及GridFTP之間的性能差異主要是由GridFTP中存在的安全鑒別開銷、發(fā)送性能狀態(tài)信息的開銷及檢查點設(shè)置開銷引起的。根據(jù)計算,GridFTP的性能可達(dá)到Iperf性能的78%。
在一段時間內(nèi),受測試節(jié)點的磁盤性能的限制,在2個節(jié)點之間進行GridFTP傳輸時的性能會略小于圖1所顯示的性能:當(dāng)傳輸過程中出現(xiàn)不同的網(wǎng)絡(luò)問題(網(wǎng)絡(luò)設(shè)備掉電、DNS出錯等)時,傳輸性能會陡降。但當(dāng)網(wǎng)絡(luò)恢復(fù)時,數(shù)據(jù)傳輸又繼續(xù)開始。這主要是因為GridFTP協(xié)議支持?jǐn)?shù)據(jù)傳輸自動重傳,這樣一旦網(wǎng)絡(luò)恢復(fù)正常,中斷的數(shù)據(jù)傳輸可繼續(xù)進行。
3? 實現(xiàn)及應(yīng)用
Globus項目是美國多個組織共同對計算網(wǎng)格的構(gòu)建進行的研究。目前的Globus可被視為計算網(wǎng)格技術(shù)的典型代表和事實上的規(guī)范。
為了實現(xiàn)GridFTP協(xié)議,Globus項目主要實現(xiàn)了GridFTP函數(shù)庫(globus_ftp_control_library及globus_ftp_client_library)、GridFTP客戶端、GridFTP服務(wù)器端及一系列的相關(guān)工具。GridFTP服務(wù)器端主要是通過對自由軟件wuftpd進行改寫及擴展來實現(xiàn)的。GridFTP客戶端則通過對ncftp改寫及擴展實現(xiàn)。
函數(shù)庫globus_ftp_control_library實現(xiàn)了控制通道API,主要提供了管理GridFTP連接(包括相互鑒別、創(chuàng)建控制及數(shù)據(jù)通道、在數(shù)據(jù)通道上讀寫數(shù)據(jù))的功能,并且支持并行數(shù)據(jù)傳輸、條狀數(shù)據(jù)傳輸及第三方數(shù)據(jù)傳輸?shù)取?/P>
函數(shù)庫globus_ftp_client_library主要實現(xiàn)GridFTP客戶端API,提供高層客戶端數(shù)據(jù)傳輸功能,包括完整文件get操作及put操作、對并行數(shù)據(jù)傳輸進行控制及設(shè)置、部分文件傳輸操作和設(shè)置TCP緩沖大小等。
4?GridFTP的發(fā)展前景
GridFTP 2.0版本已基本能滿足網(wǎng)格需求,預(yù)計2~3年內(nèi)GridFTP將成為主要網(wǎng)格數(shù)據(jù)傳輸協(xié)議。然而GridFTP協(xié)議還有一個主要的問題:數(shù)據(jù)信道的連接與數(shù)據(jù)流必須在同一個方向上,也就是說數(shù)據(jù)信道不能是雙向的。在防火墻中這將引起問題。因此GridFTP還需要一些附加特征及其開發(fā)技術(shù),如全雙工協(xié)議、管道指令和Web服務(wù)等。
為了解決上述問題,Globus工作組將開發(fā)附加協(xié)議。GridFTP協(xié)議實際上是由許多下一層的子協(xié)議組成。這個新的數(shù)據(jù)傳輸協(xié)議將實現(xiàn)雙向數(shù)據(jù)傳輸、管道指令、擴展塊模式的所有功能和其他可能的特征。此外,GridFTP還要有一個統(tǒng)一的Web服務(wù)接口。如果需要向下兼容,新協(xié)議可以作為一個新的模式整合到現(xiàn)存的GridFTP協(xié)議中。
參考文獻(xiàn)
1?? 肖儂.基于高速網(wǎng)絡(luò)的網(wǎng)格計算技術(shù).http://www.chinagrid.net/grid/talksanddocs.htm,2000-07-02
2?? 都志輝,陳渝,劉鵬.網(wǎng)格計算.北京:清華大學(xué)出版社,2002
3?? Hethmon P,Elz R.GridFTP:Universal Data Transfer for the?Grid.RFC 2389,2002
4?? Allcock B,Lee L M,Tuecke S.GridFTP:A Data Transfer?Protocol for the Grid.RFC 2228,2002
5?? Postel J,Reynolds J.GridFTP Update(STD 9).RFC 959,2002