基本介紹
格線存儲海量的數據,其中一些檔案非常大。而對許多應用程式來說,它所需要訪問的通常只是某個遠程檔案的一部分。如果為了獲取檔案的一部分,而直接傳輸整個檔案,將造成頻寬的浪費,因此,有必要提供部分檔案傳輸方式。在部分檔案傳輸中,所傳輸的數據是整個數據集的一部分。
某些套用可能只需訪問某個遠程檔案的一部分,這需要一定的數據傳輸支持,GridFTP支持從檔案的任意位置開始傳輸數據,可有效地支持部分檔案傳輸。 部分數據傳輸是指在只需要某個伺服器檔案中指定的部分數據時的一種傳輸方式。該方式適用於,當某些套用只需要訪問某個遠程檔案的一部分,此時只需要傳輸部分計算數據的情況。
GridFTP
GridFTP特性
GricFTP(網路檔案傳輸協定)擴展了標準FTP協定,這是因為FTP協定是目前網際網路上使用最普遍的數據傳輸協定,有大量的技術基礎,也是在Intemet 環境中最規範的數據傳輸協定,並且易於擴展。
為了使格線數據傳輸協定具有更好的適應性,GridFTP除了具有普遍使用的數據傳輸協定所提供的基本功能外,還具有如下特徵,其中一些已經成為標準。
(1)第三方控制的數據傳輸。
為了管理分散式通信中的大數據集,GridFTP提供了經過監別的由第三方控制的數據傳輸功體。這種功能允許第三方用戶或應用程式啟動、監視和控制其他兩地之間的數據傳輸,為使用多個地點的資源提供了保障。GridFTP在保留FTP的第三方數據傳輸功能上增加了GSS-API(Generic Security Service-API)安全認證。
(2)支持GSI和Kerberos安全機制。
GridFTP中支持靈括可靠的安全監別和完整性檢查。用戶可以挖制不同層次上的數據完整性及保密性的設定。GridFTP 支持GSI(Grid Security Infrastructure)及Kerberos認證。GSI支持用戶代理、資源代理、認證機構和協定的實現,是Globus的安全基礎構件包,是保證格線計算安全性的核心。
(3)條狀數據傳輸。
在格線環境中,大規模的數據可分布放置在多個存儲點上。條狀數據傳輸是指應用程式使用多個TCP流來傳輸分布在多個伺服器上的數據。GridFTP能啟動條狀傳輸,使總頻寬及數據傳輸速度在並行傳輸的基礎上進一步提高。
(4)並行數據傳輸。
並行數據傳輸就是在一個數據伺服器上,將數據檔案分段後在多個連線上傳輸。廣域網環境中,在相同的源檔案和目的檔案之間進行數據傳輸,使用多個並行的TCP流與使用單一的TCP流相比能有效地提高數據傳輸的總頻寬。GridFTP通過指令及數據信道的擴展支持並行數據傳輸。
(5)部分檔案傳輸。
許多套用得益於傳輸檔案的一部分而非全部檔案,而標準FTP協定只能傳輸整個檔案,或從檔案的一個精確的偏移量開始傳輸。GridFTP 支持從檔案的任意位置開始傳輸數據,可有效地支持部分檔案傳輸。
(6)自動調整TCP buffer/winlow 大小。
手工方式設定TCP buffer/window 大小容易出錯,且對用戶要求較高。因此GridFTP對標準的FTP指令集及數據通道協定進行了擴展,支持手動或自動設定大檔案以及小檔案集合的TCP緩衝大小。由於使用最佳化的TCPbuffer/window大小設定,從而有效地提高了數據傳輸性能。
(7)支持可靠傳輸和數據重傳。
對於許多處理數據的應用程式來說,保證數據傳輸的可靠性很重要。處理短暫的數據傳輸故障和伺服器故障等是不可缺少的容錯手段。GridFTP 支持可靠的數據傳輸及數據重傳,並把它擴展到新的數據通道協定中。
GridFTP 實現及性能
為了實現GridFTP協定,Globus項目主要實現了GridFTP 函式館(globus_fip_control_library 及globus_ftp_client_library)、GridFTP客戶端、GridFTP伺服器端及一系列的相關工具。GridFTP伺服器端主要是通過對自由軟體wuftpd進行改寫及擴展來實現的。GridFTP客戶端則通過對ncftp改寫及擴展實現。
函式館globus_ftp_control_library實現了控制通道API,主要提供了管理GridFTP連線(包括相互鑑別、創建控制及數據通道),在數據通道上讀寫數據的功能,並且支持並行數據傳輸、條狀數據傳輸及第三方數據傳輸等。
函式館globus_ftp_client_library 主要實現GridFTP客戶端API,提供高層客戶端數據傳輸功能,包括完整檔案get操作及put操作、對並行數據傳輸進行控制及設定、部分檔案傳輸操作和設定TCP緩衝大小等。
美國的兩個國家實驗室通過兩個工作站間的數據傳輸測試了GridFTP的性能。實驗將GridFTP 和Iperf(Iperf是測量網路性能的工具,通過它可以得到網路的最大吞吐量)比較,當並行的TCP流增加時Iperf與GridFTP的數據傳輸性能比較,經過計算,GridFTP的性能可達到Iperf性能的78%。
在可靠性方面,在傳輸過程中出現不同的網路問題(網路設備掉電、DNS出錯)時,會致使傳輸性能陡降,但當網路恢復時,數據傳輸又繼續開始。這主要是因為GridFTP協定支持數據傳輸自動重傳,這樣一旦網路恢復正常,中斷的數據傳輸可繼續進行。
數據傳輸
科學數據格線數據傳輸工具應該是基於標準協定和方便可用的,同時也應具有高效、安全、可靠的傳輸功能。可以通過以下策略來實現上述目標:
●第三方數據傳輸:是指在進行數據傳輸的源站點和目的站點對之外的第三方站點上的用戶或者套用發起、監視和控制整個數據傳輸操作的過程。數據格線系統引入第三方傳輸技術可以方便地實現數據的傳輸,可以有效地將指令流和數據流分開,可以實現自主的數據預取技術。
●支持並行數據傳輸:在廣域的連線上,相對單一的TCP連線而言,並行數據傳輸能夠極大提高網路傳輸性能。通過並行傳輸的方法來緩解網路速度和頻寬方面的壓力,在傳輸源站點和目的站點之間同時並行地使用多個TCP流,能在相同的網路環境下獲得高得多的性能。
●部分檔案傳輸:很多時候只是需要某個數據的一部分。採用只傳輸套用所需要的那部分數據、而不是整個數據的傳輸命令的技術,可提高傳輸性能。
●可靠數據傳輸服務:在許多管理數據的套用中,數據傳輸的可靠性顯得非常重要,需要對傳輸過程中的網路崩潰、伺服器失效等進行故障恢復。傳輸服務中引入可重啟的數據傳輸服務,當發生錯誤時可以從上次正確傳輸的部分繼續無錯地傳輸剩餘的部分,保證可靠性。在某些情況下還需要重新啟動整個傳輸。
●使用安全機制:適當的安全機制能為用戶提供在不同的數據安全級別上的格線安全基礎結構和身份認證的能力,確保數據的安全,也使得系統更加靈活、適用於不同的行業套用需求。
●引進傳輸的預約和鎖定機制:在傳輸過程開始前傳輸進程先查詢傳輸目的站點,為傳輸預留足夠的存儲空間,傳輸過程中需要保證相應數據不被刪除。預約和鎖定機制保證傳輸能夠正常完成。
在數據格線中需要在網路上頻繁地移動或者複製大規模的數據,傳統數據傳輸方式顯然不能夠很好地適應這一需求。為此GGF在FTP協定基礎上加以改進,提出一種以適應網路環境下大數據量傳輸的新的高效、安全和強壯的通訊協定,稱為GridFTP。科學數據格線選擇GridFTP作為其數據傳輸工具,這是因為GridFTP完全可以滿足科學數據格線的需求。其原因如下:
●基於標準協定:GridFTP協定相對於FTP協定有許多新的特點,其中一些已經成為標準。
●使用安全機制:GridFTP支持GSI和Kerberos安全機制,在GridFTP中支持靈活可靠的安全鑑別和完整性檢查。而且客戶可以控制GridFTP在不同層次上的數據完整性。
●第三方數據傳輸:GridFTP支持第三方控制的數據傳輸。為了管理分散式通信中的大數據集,必須提供經過鑑別的第三方控制的數據傳輸。這樣可允許一個客戶或應用程式在某地監控其他兩地之間的數據傳輸。在GridFTP實現中,增加了GSS-API安全認證,這樣可更可靠和安全地支持第三方數據傳輸功能。
●並行數據傳輸、部分檔案傳輸:在數據傳輸方面,GridFTP支持並行數據傳輸、條狀(strip)數據傳輸和部分檔案傳輸。在廣域網環境中,GridFTP使用多個並行的TCP流來提高數據傳輸的總的頻寬,支持基於FTP的並行數據傳輸和數據通道擴展。在Globus環境中,大規模的數據可分布放置在多個存儲點上,這稱之為條狀數據存儲,GridFTP可支持這樣的條狀數據傳輸來提高數據的傳輸速度,這樣GridFTP的數據傳輸速度和頻寬可進一步增加。某些套用可能只需要訪問某個遠程檔案的一部分,這需要一定的數據傳輸支持,GridFTP支持從檔案的任意位置開始傳輸數據,可有效地支持部分檔案傳輸。
●可靠數據傳輸服務:GridFTP可自動調整TCP Buffer/Window大小,使用最佳化的TCP Buffer/Window大小設定可有效地提高數據傳輸性能。GridFTP對標準的FTP協定進行了擴展,針對具體的檔案大小和類型,可以支持對GridFTP中TCP buffer/window大小的手動和自動設定。GridFTP還支持可靠傳輸和數據重傳,對於許多應用程式而言,必須保證數據傳輸的可靠性,並需要支持容錯的數據傳輸。GridFTP擴展失敗數據傳輸的重傳,並把它擴展到新的數據通道協定中,這樣可有效地支持可靠傳輸和數據重傳。