劉立明
(國家氣象信息中心 高性能計算室,北京 100081)
分布式環(huán)境下端到端的多路并行傳輸機制研究
劉立明
(國家氣象信息中心 高性能計算室,北京 100081)
在分布式環(huán)境中,不同的管理域之間的節(jié)點由于受到訪問控制機制的限制,導致端到端的數(shù)據(jù)傳輸無法直接進行,因此必須借助數(shù)據(jù)源節(jié)點和目的節(jié)點之間的節(jié)點進行中轉(zhuǎn)。此外,在復雜的分布式環(huán)境中,數(shù)據(jù)傳輸?shù)脑炊撕湍康亩酥g存在多條傳輸路徑,需要考慮在端到端的數(shù)據(jù)傳輸過程中如何對多條傳輸路徑進行均衡利用,以提高數(shù)據(jù)傳輸效率。為此,利用端到端的數(shù)據(jù)傳輸?shù)奶攸c,基于緩沖區(qū)、數(shù)據(jù)分片、多路并行傳輸?shù)燃夹g(shù),設(shè)計了一種適應高性能計算環(huán)境中的多路并行數(shù)據(jù)傳輸機制,研究了可靠性保證策略。理論分析表明,多路并行傳輸機制可以有效解決分布式環(huán)境下的數(shù)據(jù)傳輸訪問控制和傳輸效率等問題,尤其是對于較為復雜的分布式環(huán)境下進行的大數(shù)據(jù)傳輸,該機制充分利用了整個網(wǎng)絡環(huán)境的傳輸帶寬,同時解決了中間節(jié)點的數(shù)據(jù)落地問題,為端到端的數(shù)據(jù)傳輸提供了高效可靠的保障。
分布式環(huán)境;數(shù)據(jù)傳輸;傳輸效率;負載均衡;端到端
分布式環(huán)境是一個在地理位置上廣泛分布的、開放的分布式系統(tǒng),是把地理位置上分散的資源集成起來的一種基礎(chǔ)設(shè)施[1]。分布式計算環(huán)境為分散在整個Internet的用戶提供各種計算資源,這些資源由不同管理域中的節(jié)點提供,用戶可按需定制使用。
以計算網(wǎng)格的典型應用場景高性能計算(High Performance Computing,HPC)為例[2],對分布式環(huán)境下一種典型的數(shù)據(jù)傳輸場景進行描述。一個分布式作業(yè)的執(zhí)行過程分為Stage-In、Execute和Stage-Out三個階段。前兩個階段都與數(shù)據(jù)傳輸密切相關(guān)。如圖1所示,位于管理域A中的用戶提交一個作業(yè)到位于管理域C中的計算節(jié)點,在Stage-In階段,需要將作業(yè)運行所需要的位于管理域B中FTP服務器上的輸入文件傳輸?shù)轿挥诠芾碛駽中的計算節(jié)點上。當作業(yè)執(zhí)行結(jié)束后進入Stage-Out階段,計算節(jié)點需要將作業(yè)執(zhí)行所產(chǎn)生的輸出結(jié)果(數(shù)據(jù)文件)反饋給提交作業(yè)的網(wǎng)格用戶。
圖1 計算網(wǎng)格環(huán)境下“高性能計算”應用的數(shù)據(jù)傳輸場景
在這樣一個簡單的分布式環(huán)境中,不難發(fā)現(xiàn)在數(shù)據(jù)傳輸過程中存在的問題:用戶登錄節(jié)點、計算節(jié)點、作業(yè)執(zhí)行需要的數(shù)據(jù)資源所在節(jié)點分別位于不同的管理域,而這些管理域之間存在訪問權(quán)限的問題,一般采用防火墻進行控制。每個管理域提供一個“頭節(jié)點”(head node)供其他管理域中的節(jié)點訪問,所有內(nèi)部“私有節(jié)點”(private node)都不對其他管理域開放,這使得在Stage-In階段無法直接建立計算節(jié)點與作業(yè)執(zhí)行需要的數(shù)據(jù)資源所在節(jié)點之間的連接進行數(shù)據(jù)傳輸;同樣,在Stage-Out階段也無法直接建立計算節(jié)點與用戶登錄節(jié)點之間的傳輸連接。
在上述場景中,數(shù)據(jù)傳輸雙方無法以傳統(tǒng)的C/S模式直接建立連接,數(shù)據(jù)傳輸過程只能利用網(wǎng)格環(huán)境中的中間授權(quán)節(jié)點進行中轉(zhuǎn)。以Stage-In階段為例,現(xiàn)在使用較多的處理方式是:首先將數(shù)據(jù)資源從其所在節(jié)點傳輸?shù)皆摴?jié)點所屬的管理域B的頭節(jié)點b,然后網(wǎng)格用戶利用網(wǎng)格身份登錄管理域B的頭節(jié)點b,將數(shù)據(jù)傳輸?shù)焦?jié)點b可以直接訪問的管理域C的頭節(jié)點c,最后網(wǎng)格用戶再登錄節(jié)點c,將數(shù)據(jù)資源傳輸?shù)綀?zhí)行作業(yè)的計算節(jié)點上。利用這種重復“登錄→傳輸”的中轉(zhuǎn)方式將數(shù)據(jù)從源節(jié)點傳輸?shù)侥康墓?jié)點。這種傳輸方式的缺點很明顯:對于網(wǎng)格用戶來說,需要利用網(wǎng)格賬號多次登錄不同網(wǎng)格節(jié)點才能完成一次數(shù)據(jù)傳輸操作;對于所用到的各個中轉(zhuǎn)節(jié)點來說,會在節(jié)點上留有數(shù)據(jù)副本,需要用戶在作業(yè)執(zhí)行結(jié)束后手動刪除。這種傳輸模式無論是對用戶使用的便捷性還是對數(shù)據(jù)傳輸效率的保障都是個巨大的挑戰(zhàn)。
在分布式計算環(huán)境中,涉及傳輸過程的數(shù)據(jù)源端和目的端之間的傳輸操作無法直接進行,只能間接通過中間節(jié)點,找到從“源”到“目的”的傳輸路徑,并借助該路徑按照特定的策略通過一系列中轉(zhuǎn)操作將數(shù)據(jù)發(fā)送到目的節(jié)點上,這種傳輸模式稱為端到端的數(shù)據(jù)傳輸。這種數(shù)據(jù)傳輸模式不同于傳統(tǒng)客戶端/服務器(C/S)模式,因為傳輸雙方無法直接建立C/S連接;也不同于KaZaA[3]、Napster[4]等P2P模式,因為在P2P模式中資源請求節(jié)點先通過泛洪(Flooding)查詢來發(fā)現(xiàn)資源,找到資源后直接建立點對點的傳輸連接。
端到端的數(shù)據(jù)傳輸具有以下特點:首先,進行傳輸?shù)臄?shù)據(jù)源節(jié)點和目的節(jié)點之間無法直接互聯(lián)。其次,有了數(shù)據(jù)中轉(zhuǎn)節(jié)點的加入,在端到端的傳輸過程中存在多條可行的傳輸路徑。由于這些路徑上的鏈路帶寬不同、距離不同等因素存在,導致鏈路傳輸能力具有較大差別。不同傳輸路徑的選擇對端到端的數(shù)據(jù)傳輸效率有很大影響。
在分析影響端到端的數(shù)據(jù)傳輸效率的關(guān)鍵問題的基礎(chǔ)上,將其歸結(jié)為數(shù)學問題進行研究,設(shè)計并提出了一種適合端到端數(shù)據(jù)傳輸?shù)亩嗦凡⑿袀鬏敊C制,同時提供了可靠性保證策略,并對其進行了理論分析。
用帶權(quán)無向圖G=(V,E)表示分布式計算環(huán)境,圖的節(jié)點V=(v0,v1,…,vn)表示計算節(jié)點和傳輸節(jié)點,圖的邊E=(E0,E1,…,Em)表示節(jié)點間的網(wǎng)絡連接。權(quán)值w表示每條鏈路上的時間損耗(反映空閑網(wǎng)絡帶寬),加權(quán)函數(shù)w:E→R表示從鏈路到實型權(quán)值的映射。所以,每條可行的傳輸路徑P=(v0,v1,…,vk)的權(quán)為該路徑上所有可行鏈路的權(quán)值之和:
(1)
如果圖中u→v找到n條傳輸鏈路P1,P2,…,Pt,那么求解最短路徑的過程就是尋找單個傳輸任務的最短傳輸時間的過程。
最短傳輸鏈路的權(quán)可表示為:
δ(u,v)=
(2)
那么,端到端的數(shù)據(jù)傳輸可轉(zhuǎn)化為在帶權(quán)無向圖G中的多任務并發(fā)傳輸問題,任務數(shù)量用n(n>1)表示。從u到v間的傳輸鏈路P1,P2,…,Pt上的網(wǎng)絡負載是動態(tài)變化的,每個任務在傳輸過程中根據(jù)鏈路繁忙程度選擇最快傳輸鏈路即可獲得最大傳輸效率。所以,端到端的傳輸問題可轉(zhuǎn)化為最大化地均衡利用G中可行傳輸鏈路以獲得最高的吞吐率,使得總傳輸時間最短,可表示為:
(3)
為了和傳統(tǒng)路由傳輸加以區(qū)分,在表1中將端到端的數(shù)據(jù)傳輸和傳統(tǒng)的路由傳輸進行了對比。
表1 傳統(tǒng)路由傳輸與端到端數(shù)據(jù)傳輸?shù)膶Ρ?/p>
端到端的數(shù)據(jù)傳輸應考慮兩個重要問題:采用何種傳輸機制來提高傳輸效率;對于存在的多條傳輸路徑,如何充分利用以實現(xiàn)合理的網(wǎng)絡分流,提高網(wǎng)絡資源的利用率。
3.1 網(wǎng)格文件傳輸服務GridFTP
GridFTP是美國Argonne國家實驗室在GT(Globus Tools)項目中設(shè)計的數(shù)據(jù)傳輸協(xié)議,它對標準FTP協(xié)議(RFC959)進行了擴展,有12所大學和科研機構(gòu)參與該項目研發(fā)。GridFTP為Globus Toolkit提供了高效的傳輸工具[5]。
(1)自動調(diào)整TCP緩沖窗口的大小(Auto Negotiation)。用戶可以選擇手動設(shè)置或者讓GridFTP自動設(shè)置TCP緩沖窗口的大小,提高數(shù)據(jù)傳輸?shù)男阅堋?/p>
(2)支持由第三方控制的數(shù)據(jù)傳輸(Third-party Data Transfer)。GridFTP將操作控制通道的邏輯單元稱為協(xié)議解釋(PI),對數(shù)據(jù)通道的操作過程稱為數(shù)據(jù)傳輸過程(DTP),實現(xiàn)了傳輸和控制的分離。Client端通過控制通道發(fā)送命令,讓Server端與其他節(jié)點建立傳輸連接,實現(xiàn)數(shù)據(jù)傳輸。
(3)支持并行數(shù)據(jù)傳輸(Parallel Data Transfer)。GridFTP通過多個并行的TCP可有效利用鏈路帶寬[6],它對指令和數(shù)據(jù)通道進行了擴展,支持并行數(shù)據(jù)傳輸。
(4)支持部分文件傳輸(Partial File Transfer)。GridFTP支持數(shù)據(jù)文件中特定部分的數(shù)據(jù)傳輸。它引入新的控制指令支持對一個數(shù)據(jù)文件的任意部分進行傳輸操作。
Condor Stork[7]、Globus RFT以及gLite FTS等文件傳輸服務都使用GridFTP。但GridFTP和防火墻等管理工具的結(jié)合沒有很好地被解決,三方傳輸功能受到限制[8]。
3.2 CNGrid數(shù)據(jù)傳輸子系統(tǒng)
CNGrid數(shù)據(jù)傳輸子系統(tǒng)[9]是由國防科技大學和清華大學聯(lián)合開發(fā)的,應用在CNGrid系統(tǒng)端到端的數(shù)據(jù)傳輸中,可滿足兩種傳輸情景。它設(shè)計了簡單數(shù)據(jù)中轉(zhuǎn)的傳輸方法,稱為一跳傳輸和二跳傳輸,如圖2所示。其中,圖中的黑色節(jié)點是具有公網(wǎng)IP的服務器(稱為頭節(jié)點),其余節(jié)點為私有節(jié)點(只能被頭節(jié)點訪問)。
圖2 CNGird數(shù)據(jù)傳輸子系統(tǒng)的研究場景
CNGrid數(shù)據(jù)傳輸子系統(tǒng)提供了一種分布式環(huán)境下簡單的端到端的數(shù)據(jù)傳輸方法,但該方法存在一定的局限性:首先,這種數(shù)據(jù)傳輸路徑由用戶指定,用戶需要清楚實際部署環(huán)境中的部署情況和傳輸情景;其次,該系統(tǒng)只簡單地實現(xiàn)了一跳傳輸和兩跳傳輸情景,對于需要多于兩跳才能完成的傳輸情景無能為力;第三,傳輸過程中會在路由節(jié)點上生成臨時文件,占用大量磁盤空間,最后還需要進行刪除處理的善后操作,增加了操作的復雜性和寫磁盤帶來的性能開銷。
4.1 存儲轉(zhuǎn)發(fā)問題
在端到端的數(shù)據(jù)傳輸系統(tǒng)中,CNGrid數(shù)據(jù)傳輸子系統(tǒng)利用磁盤暫存?zhèn)鬏敂?shù)據(jù)再進行轉(zhuǎn)發(fā),這種傳輸方式需要在傳輸任務完成后再將暫存的臨時數(shù)據(jù)文件刪除。這種方式產(chǎn)生的時間開銷極大地降低了傳輸效率。第一,讀寫磁盤的速度要遠遠低于處理器的處理速度,兩者不在一個數(shù)量級上,所以利用磁盤文件落地后中轉(zhuǎn)會嚴重浪費CPU的處理周期。第二,中轉(zhuǎn)文件要在中間節(jié)點存儲完成后才能進行轉(zhuǎn)發(fā),會浪費大量的等待時間,從而極大地降低了傳輸效率。
4.2 點對點傳輸問題
單流式順序傳輸對于數(shù)據(jù)傳輸來說有很多不利的方面。第一,標準傳輸協(xié)議都是基于TCP/IP協(xié)議簇設(shè)計的,它們的窗口機制并不匹配高速網(wǎng)絡設(shè)備的處理速度,致使現(xiàn)有傳輸協(xié)議不能充分利用鏈路的網(wǎng)絡帶寬[10]。第二,雖然標準傳輸協(xié)議的順序傳輸保證了傳輸過程的數(shù)據(jù)容錯處理,但是卻在很大程度上降低了傳輸效率,因為在傳輸時需要對數(shù)據(jù)流上的傳輸字節(jié)的順序進行監(jiān)控,無法進行并行傳輸。
4.3 多路傳輸問題
在端到端的傳輸過程中利用磁盤做存儲轉(zhuǎn)發(fā)只是利用單流式順序傳輸使文件落地,無法利用分布式環(huán)境中的多條空閑鏈路,使得整個網(wǎng)絡環(huán)境的利用率極低,無法獲得較高的傳輸時效。同時,這些可行的傳輸鏈路在網(wǎng)絡帶寬、擁塞程度、節(jié)點性能等方面可能會有較大差別,利用它們進行中轉(zhuǎn)傳輸時不能統(tǒng)一對待。如果可以充分考慮這些傳輸鏈路各方面的差別,研究一種合理的多路利用策略,以充分利用多條可行傳輸路徑對傳輸任務進行傳輸,則可以提高整個網(wǎng)絡的利用率以及數(shù)據(jù)傳輸?shù)男省?/p>
5.1 數(shù)據(jù)緩沖區(qū)策略
眾所周知,讀寫寄存器的速度與CPU的處理速度最接近,但是寄存器的存儲空間小、價格高,只適合緩存臨時數(shù)據(jù),不能用作存儲大數(shù)據(jù)。除此之外,用內(nèi)存作為數(shù)據(jù)存儲可以獲得磁盤無法比擬的讀寫速度,更接近處理器的處理速度,是一種高效的存儲方法。但是存儲數(shù)據(jù)不能在內(nèi)存上進行持久化。
設(shè)計一種數(shù)據(jù)緩存機制,讓傳輸過程可以有效利用內(nèi)存區(qū)的存取速度,稱為緩沖區(qū)機制。即在中轉(zhuǎn)節(jié)點上構(gòu)建一塊內(nèi)存區(qū)域?qū)iT用作中轉(zhuǎn)數(shù)據(jù)的緩沖區(qū),實現(xiàn)對轉(zhuǎn)發(fā)數(shù)據(jù)的緩存,降低存儲轉(zhuǎn)發(fā)過程所產(chǎn)生的時間開銷,從而提高中轉(zhuǎn)效率。緩沖區(qū)只能存儲部分數(shù)據(jù),無法存儲大數(shù)據(jù)文件。后面會引入數(shù)據(jù)分片機制的設(shè)計,實現(xiàn)緩存與動態(tài)轉(zhuǎn)發(fā)機能,快速處理緩沖區(qū)的數(shù)據(jù)塊,充分利用內(nèi)存區(qū)域,更大的優(yōu)勢是解決了中轉(zhuǎn)節(jié)點需存完整個文件后才能轉(zhuǎn)發(fā)的問題,同時解決了內(nèi)存空間大小的限制,如圖3所示。
圖3 利用緩沖區(qū)機制存儲轉(zhuǎn)發(fā)示意圖
5.2 多路并行傳輸?shù)膶崿F(xiàn)機制
5.2.1 多路分流策略
前面在分析影響端到端的傳輸效率的關(guān)鍵問題時,提到當前大多數(shù)端到端數(shù)據(jù)傳輸系統(tǒng)都是利用在分布式環(huán)境中按照一定的策略選擇一條比較優(yōu)的路徑(或者指定路徑)的方式完成端到端的數(shù)據(jù)傳輸,沒有充分利用網(wǎng)絡中源節(jié)點和目的節(jié)點之間存在的多條可行傳輸鏈路,如圖4所示。
圖4 多路并行傳輸
從數(shù)據(jù)源節(jié)點到達目的節(jié)點存在多條可行路徑,每個中轉(zhuǎn)節(jié)點接收的數(shù)據(jù)塊都有多條可達目的節(jié)點的傳輸鏈路可以選擇。在每個節(jié)點上都充分利用所有可行鏈路去完成數(shù)據(jù)塊的傳輸,那么帶寬的總體吞吐量將獲得很大程度的提高。單條鏈路k上的帶寬設(shè)為BWk,那么在理論上可用于傳輸?shù)木W(wǎng)絡總帶寬變成:
(4)
此外,多路徑傳輸機制帶來的另一個好處是:如果在傳輸過程中遇到局部節(jié)點或鏈路崩潰的情況,多路徑傳輸策略能夠使用備用路徑完成傳輸,因此在一定程度上保證了傳輸?shù)目煽啃浴?/p>
5.2.2 數(shù)據(jù)分片策略
在分布式計算、云計算等并行計算領(lǐng)域,一般會將單個計算任務分解,每個任務在一定的顆粒度上分解為多個獨立的子任務,以便并行處理來充分利用計算資源,提升計算效率。端到端的傳輸可以借鑒這種原理。為了提高數(shù)據(jù)傳輸效率,可以對一個傳輸任務進行切分,將其切分成若干子傳輸任務,結(jié)合下面介紹的多流并發(fā)傳輸機制,充分利用網(wǎng)絡帶寬,提高傳輸任務的執(zhí)行效率。
為此,將需要傳輸?shù)臄?shù)據(jù)文件按設(shè)定尺寸切分成若干大小相等的數(shù)據(jù)塊(Block,數(shù)據(jù)文件的最后一個數(shù)據(jù)塊小于等于數(shù)據(jù)塊設(shè)置大小),每個數(shù)據(jù)塊具有獨立的數(shù)據(jù)結(jié)構(gòu),構(gòu)建成數(shù)據(jù)包(Packet),作為單獨的傳輸子對象,從而實現(xiàn)了對單個傳輸任務的并行切分。中轉(zhuǎn)節(jié)點的緩沖區(qū)會接收并解析每個接收到的數(shù)據(jù)包的數(shù)據(jù)結(jié)構(gòu),包含傳輸?shù)脑吹刂贰⒛康牡刂?、源文件信息、目的文件信息、?shù)據(jù)塊號、起始位置、數(shù)據(jù)塊大小、校驗和、時間戳、實際數(shù)據(jù)等信息。然后根據(jù)對鏈路傳輸能力的評估選擇隊列進行轉(zhuǎn)發(fā),最終所有數(shù)據(jù)包到達目的節(jié)點后進行任務合并,通過解析數(shù)據(jù)包頭部信息,將數(shù)據(jù)塊寫入到目標文件并進行校驗,最終完成傳輸任務。對于數(shù)據(jù)分塊的大小,按照文獻[11],設(shè)置數(shù)據(jù)分塊大小為1 MB。
圖5演示了上述過程,可以清晰地看到與圖4的區(qū)別。四個傳輸任務(File1~File4)到達節(jié)點A后,F(xiàn)ile1~File3分別選擇鏈路ABE(5 MB)、ACE(8 MB)和ADE(9 MB)進行轉(zhuǎn)發(fā),每條可用鏈路都有剩余帶寬,F(xiàn)ile4整體傳輸只能選擇最優(yōu)的鏈路ADE(剩余3 MB),但是利用數(shù)據(jù)分片機制可將其切分成6個單獨的數(shù)據(jù)塊(1 MB)。然后并行分布到三條具有剩余帶寬的鏈路上實現(xiàn)轉(zhuǎn)發(fā),最終在目的節(jié)點E對所有數(shù)據(jù)塊進行合并。這種機制在很大程度上提高了帶寬的利用率。
圖5 數(shù)據(jù)分片傳輸
此外,數(shù)據(jù)分片傳輸帶來的另一個好處是:在一定程度上增強了端到端傳輸過程中數(shù)據(jù)的安全性。因為在多路徑并行傳輸?shù)那闆r下,數(shù)據(jù)包經(jīng)不同的鏈路傳輸?shù)侥康亩?,?shù)據(jù)包在任何中間節(jié)點上被截獲也無法被構(gòu)造出源文件,所以說數(shù)據(jù)分片傳輸增強了數(shù)據(jù)傳輸?shù)陌踩浴?/p>
5.2.3 多流并發(fā)策略
提高帶寬利用率的一類方法是通過調(diào)節(jié)TCP緩沖窗口的大小來提高鏈路的帶寬利用率[12-14]。這種方式的原理是當TCP最優(yōu)緩沖窗口大小(Optimal Buffer Size)等于鏈路帶寬(Bandwidth)與往返時延(RTT)的乘積時,可以最大程度地利用傳輸鏈路的帶寬。GridFTP利用這種方式來提高網(wǎng)絡帶寬利用率。這種調(diào)整方法對于應用層的傳輸來說復雜性較高。一方面,由于網(wǎng)絡實際的可用帶寬具有動態(tài)變化性,所以調(diào)整TCP緩沖區(qū)的做法復雜性高,需要不斷動態(tài)調(diào)整才能滿足要求;另一方面,在應用層的傳輸需要操作傳輸層TCP緩沖窗口大小,從設(shè)計的角度來說不符合設(shè)計規(guī)范。
另一類提高帶寬利用率的方法是多數(shù)據(jù)流并發(fā)傳輸機制[10]。這種方法的本質(zhì)是在相鄰兩個節(jié)點間構(gòu)建多個并行的Socket對,根據(jù)特定的調(diào)度機制進行數(shù)據(jù)的并行發(fā)送和接收。具體方法是每個中轉(zhuǎn)節(jié)點在應用層建立N(N>1)個TCP流,根據(jù)調(diào)度機制進行監(jiān)聽、接收、發(fā)送操作。該方法的優(yōu)點是不用手動調(diào)整網(wǎng)絡層的TCP緩沖區(qū)大小,規(guī)避了傳統(tǒng)傳輸協(xié)議的劣勢,同時提高了鏈路的帶寬利用率。文獻[10]分析了該機制的優(yōu)勢,并實驗對比了與調(diào)整緩沖區(qū)方案的傳輸效率區(qū)別,證明了多流并發(fā)機制在提高鏈路吞吐率方面的優(yōu)勢,可以獲得更高的傳輸效率。
行業(yè)性質(zhì):絕大多數(shù)企業(yè)位于產(chǎn)業(yè)鏈利潤最低的制造環(huán)節(jié):超過90%的企業(yè)均為生產(chǎn)型企業(yè);占據(jù)產(chǎn)業(yè)鏈高端環(huán)節(jié)的企業(yè)很少:總部、研發(fā)設(shè)計、采購及業(yè)務等比例較小,占比最大的采購環(huán)節(jié)亦僅五分之一左右。
在實驗評測中,通過多組實驗數(shù)據(jù)證明了在百兆網(wǎng)環(huán)境中,使用系統(tǒng)默認的TCP緩沖區(qū)大小時的并發(fā)流數(shù)目為5~12時,可以獲得較優(yōu)的傳輸效率。
Condor中設(shè)計的Stork[7]采用集中式的管理策略保證數(shù)據(jù)傳輸?shù)目煽啃?,缺點是過于依賴監(jiān)控節(jié)點,一旦監(jiān)控節(jié)點異常,可靠性保證機制將失效。受傳輸層TCP協(xié)議可靠性保證策略[15]啟發(fā),設(shè)計一種請求重傳與超時重傳相結(jié)合的可靠性保證策略,并針對網(wǎng)絡傳輸性能動態(tài)變化的特點,提供了一種動態(tài)估計最大超時時間的方法。
6.1 出錯請求重傳
在傳輸源節(jié)點為每個數(shù)據(jù)塊構(gòu)建數(shù)據(jù)包時,采用MD5計算其校驗值,并記錄到數(shù)據(jù)包的數(shù)據(jù)結(jié)構(gòu)中。每個中轉(zhuǎn)節(jié)點收到傳輸數(shù)據(jù)包時,首先對其解析并進行MD5校驗,根據(jù)校驗結(jié)果判斷收到的數(shù)據(jù)包是否已被破壞。如果發(fā)現(xiàn)數(shù)據(jù)包被破壞,則丟棄,同時根據(jù)該數(shù)據(jù)包攜帶的信息向源端發(fā)送重傳消息,重傳消息中攜帶了請求重傳的數(shù)據(jù)塊信息。
6.2 超時重傳
在傳輸源節(jié)點為每個數(shù)據(jù)塊構(gòu)建的數(shù)據(jù)包在傳輸時為其記錄一個時間戳,目的端每成功接收一個數(shù)據(jù)包則返回給發(fā)送端一個響應消息,響應信息攜帶了傳輸成功的數(shù)據(jù)塊的信息,對于收到響應信息的數(shù)據(jù)塊則將其標記為傳輸成功狀態(tài)。源端采用輪詢方式檢查各數(shù)據(jù)塊傳輸是否超時,如果發(fā)現(xiàn)超時,則對相應的數(shù)據(jù)塊發(fā)起重傳操作。當發(fā)現(xiàn)有數(shù)據(jù)塊的重傳次數(shù)超過最大重傳次數(shù)的限制時,放棄重傳,通知用戶傳輸任務失敗,并將傳輸任務移除。
6.3 動態(tài)估計最大超時時間
首先,在每個傳輸任務開始前,發(fā)送若干攜帶傳輸任務信息的數(shù)據(jù)包進行路徑探測,返回的響應信息作為探測結(jié)果。如果發(fā)現(xiàn)目的節(jié)點不可到達,則通知用戶傳輸失敗,這樣可以防止在目的節(jié)點不可達的情況下盲目傳輸造成的網(wǎng)絡帶寬浪費;如果返回消息顯示目的節(jié)點可達,則記錄消息的往返時延(RTT)。然后根據(jù)消息數(shù)據(jù)包大小、往返時延以及實際傳輸數(shù)據(jù)包大小,按式(5)計算數(shù)據(jù)包最大超時時間:
(5)
其中,sizebp為傳輸數(shù)據(jù)包大??;sizeba為后行消息數(shù)據(jù)包大??;sizem為探測消息大小;RTTm為探測消息往返時延;ω為超時系數(shù),根據(jù)文獻[16],一般ω取4。
然后,當傳輸任務被調(diào)度并開始執(zhí)行后,源節(jié)點會不斷地收到標識各數(shù)據(jù)塊傳輸成功的響應消息,它將定期根據(jù)數(shù)據(jù)包發(fā)送時間timebp和消息返回時間timeba,按式(6)動態(tài)更新數(shù)據(jù)包最大超時時間:
(6)
這種策略的優(yōu)點是:傳輸過程的可靠性不依賴于集中式的節(jié)點控制;動態(tài)更新最大超時時間可以實時應對網(wǎng)絡傳輸性能動態(tài)變化導致的數(shù)據(jù)包傳輸時延差異;出錯請求重傳可以及時發(fā)現(xiàn)傳輸過程中的錯誤并及時進行處理。
在研究分析影響端到端數(shù)據(jù)傳輸效率的關(guān)鍵問題基礎(chǔ)上,基于緩沖區(qū)、數(shù)據(jù)分片、多路并行傳輸?shù)燃夹g(shù),設(shè)計了一種適合端到端數(shù)據(jù)傳輸?shù)亩嗦凡⑿袀鬏敊C制,同時提供了可靠性保證策略,旨在充分利用網(wǎng)絡帶寬以提高傳輸效率。
理論分析表明,該機制有效解決了分布式環(huán)境下數(shù)據(jù)傳輸?shù)脑L問控制和傳輸效率等問題,尤其是對于較為復雜的分布式環(huán)境下進行的大數(shù)據(jù)傳輸,該機制充分利用了整個網(wǎng)絡環(huán)境的傳輸帶寬,同時解決了中間節(jié)點的數(shù)據(jù)落地問題,為端到端的數(shù)據(jù)傳輸提供了高效可靠的保障。
[1] 徐志偉,馮百明,李 偉.網(wǎng)格計算技術(shù)[M].北京:電子工業(yè)出版社,2004.
[2] Wasson G,Humphrey M.HPC file staging profile[C]//Conference on active media technology.[s.l.]:[s.n.],2008:58-70.
[3] 蔣 成.混合式對等網(wǎng)絡Kazaa模型結(jié)構(gòu)及其分析研究[J].信息安全與技術(shù),2013,4(6):69-71.
[4] Bengt C,Rune G.The rise and fall of napster-an evolutionary approach[C]//Proceedings of the 6th international conference on computer science.[s.l.]:[s.n.],2009:347-354.
[5] Itou T,Ohsaki H,Imase M.On parameter tuning of data transfer protocol GridFTP in wide-area grid computing[J].IEICE Technical Report Information Networks,2004,104(4):19-24.
[6] Cannataro M, Mastroianni C, Talia D.Evaluating and enhancing the use of the GridFTP protocol for efficient data transfer on the grid[C]//Lecture notes in computer science.Berlin:Springer,2003:619-628.
[7] Kosar T,Livny M.Stork:making data placement a first class citizen in the grid[C]//24th IEEE international conference on distributed computing systems.[s.l.]:IEEE,2004:342-349.
[8] Niederberger R,Allcock W,Gommans L,et al.Firewall issues overview[R].[s.l.]:[s.n.],2006.
[9] 中國國家網(wǎng)格軟件數(shù)據(jù)網(wǎng)格工作組.數(shù)據(jù)網(wǎng)格進展匯報[R].北京:中科院計算所,2008.
[10] Sivakumar H,Bailey S,Grossman R L.PSockets-the case for application-level network striping for data intensive applications using high speed wide area networks[C]//ACM/IEEE conference on supercomputing.[s.l.]:IEEE,2000:38.
[11] Kola G,Livny M.DiskRouter:a flexible infrastructure for high performance large scale data transfers[R].Ameracan:University of Wisconsin,2003.
[12] Lee J,Dan G,Tierney B,et al.Applied techniques for high bandwidth data transfers across wide area networks[C]//Proceedings of international conference on computing in high energy and nuclear physics.[s.l.]:[s.n.],2011:428-431.
[13] Semke J,Mahdavi J,Mathis M.Automatic TCP buffer tuning[J].ACM SIGCOMM Computer Communication Review,2000,28(4):315-323.
[14] Lakshman T,Madhow U.The performance of TCP/IP networks with high bandwidth-delay products and random loss[J].IEEE Transactions on Networking,1997,5(3):336-350.
[15] Tanenbaum A S.Computer networks[M].5th ed.Beijing:China Machine Press,2012:258-309.
[16] Jacobson V, Karels M J. Congestion avoidance and control[J].ACM SIGCOMM Computer Communication Review,1988,18(4):314-329.
Research on End-to-end Multipath Parallel Transfer Mechanism in Distributed Environments
LIU Li-ming
(HPC Department,National Meteorological Information Centre,Beijing 100081,China)
In distributed environment,nodes in different management domains can’t transfer data to each other directly because of restrictions of access control mechanism,so that the end-to-end data transfer has to rely on the mid nodes between the source and destination to transit.In addition,there are more than one transfer path between the source and destination in complex distributed environments,and a way to utilize those transfer paths balanced to improve the end-to-end data transfer efficiency needs to be considered.According to the characteristics of end-to-end data transfer,an efficient end-to-end multipath parallel transfer mechanism has been designed with the technology of buffer area,data segmentation and multipath parallel transfer and effective strategies to ensure the transfer reliability.The results of analyses show that this mechanism has effectively solved the problems of access control and transfer efficiency in distributed environment which is a highly efficient and reliable transfer security mechanism for end-to-end data transfer,and that especially for big data transmission in more complex distributed environment,the bandwidth of the network environment could be made full use of and the problem of the data to disk on intermediate node has been solved.
distributed environment;data transfer;transfer efficiency;load balancing;end-to-end
2016-06-13
2016-09-22 網(wǎng)絡出版時間:2017-03-13
國家發(fā)改委中國氣象局“十二五”重點工程建設(shè)項目(ZQC-H14175)
劉立明(1981-),男,碩士,工程師,研究方向為分布式計算。
http://kns.cnki.net/kcms/detail/61.1450.tp.20170313.1546.050.html
TP309
A
1673-629X(2017)06-0001-06
10.3969/j.issn.1673-629X.2017.06.001