劉立明
(國(guó)家氣象信息中心 高性能計(jì)算室,北京 100081)
分布式環(huán)境下端到端的多路并行傳輸機(jī)制研究
劉立明
(國(guó)家氣象信息中心 高性能計(jì)算室,北京 100081)
在分布式環(huán)境中,不同的管理域之間的節(jié)點(diǎn)由于受到訪問控制機(jī)制的限制,導(dǎo)致端到端的數(shù)據(jù)傳輸無法直接進(jìn)行,因此必須借助數(shù)據(jù)源節(jié)點(diǎn)和目的節(jié)點(diǎn)之間的節(jié)點(diǎn)進(jìn)行中轉(zhuǎn)。此外,在復(fù)雜的分布式環(huán)境中,數(shù)據(jù)傳輸?shù)脑炊撕湍康亩酥g存在多條傳輸路徑,需要考慮在端到端的數(shù)據(jù)傳輸過程中如何對(duì)多條傳輸路徑進(jìn)行均衡利用,以提高數(shù)據(jù)傳輸效率。為此,利用端到端的數(shù)據(jù)傳輸?shù)奶攸c(diǎn),基于緩沖區(qū)、數(shù)據(jù)分片、多路并行傳輸?shù)燃夹g(shù),設(shè)計(jì)了一種適應(yīng)高性能計(jì)算環(huán)境中的多路并行數(shù)據(jù)傳輸機(jī)制,研究了可靠性保證策略。理論分析表明,多路并行傳輸機(jī)制可以有效解決分布式環(huán)境下的數(shù)據(jù)傳輸訪問控制和傳輸效率等問題,尤其是對(duì)于較為復(fù)雜的分布式環(huán)境下進(jìn)行的大數(shù)據(jù)傳輸,該機(jī)制充分利用了整個(gè)網(wǎng)絡(luò)環(huán)境的傳輸帶寬,同時(shí)解決了中間節(jié)點(diǎn)的數(shù)據(jù)落地問題,為端到端的數(shù)據(jù)傳輸提供了高效可靠的保障。
分布式環(huán)境;數(shù)據(jù)傳輸;傳輸效率;負(fù)載均衡;端到端
分布式環(huán)境是一個(gè)在地理位置上廣泛分布的、開放的分布式系統(tǒng),是把地理位置上分散的資源集成起來的一種基礎(chǔ)設(shè)施[1]。分布式計(jì)算環(huán)境為分散在整個(gè)Internet的用戶提供各種計(jì)算資源,這些資源由不同管理域中的節(jié)點(diǎn)提供,用戶可按需定制使用。
以計(jì)算網(wǎng)格的典型應(yīng)用場(chǎng)景高性能計(jì)算(High Performance Computing,HPC)為例[2],對(duì)分布式環(huán)境下一種典型的數(shù)據(jù)傳輸場(chǎng)景進(jìn)行描述。一個(gè)分布式作業(yè)的執(zhí)行過程分為Stage-In、Execute和Stage-Out三個(gè)階段。前兩個(gè)階段都與數(shù)據(jù)傳輸密切相關(guān)。如圖1所示,位于管理域A中的用戶提交一個(gè)作業(yè)到位于管理域C中的計(jì)算節(jié)點(diǎn),在Stage-In階段,需要將作業(yè)運(yùn)行所需要的位于管理域B中FTP服務(wù)器上的輸入文件傳輸?shù)轿挥诠芾碛駽中的計(jì)算節(jié)點(diǎn)上。當(dāng)作業(yè)執(zhí)行結(jié)束后進(jìn)入Stage-Out階段,計(jì)算節(jié)點(diǎn)需要將作業(yè)執(zhí)行所產(chǎn)生的輸出結(jié)果(數(shù)據(jù)文件)反饋給提交作業(yè)的網(wǎng)格用戶。
圖1 計(jì)算網(wǎng)格環(huán)境下“高性能計(jì)算”應(yīng)用的數(shù)據(jù)傳輸場(chǎng)景
在這樣一個(gè)簡(jiǎn)單的分布式環(huán)境中,不難發(fā)現(xiàn)在數(shù)據(jù)傳輸過程中存在的問題:用戶登錄節(jié)點(diǎn)、計(jì)算節(jié)點(diǎn)、作業(yè)執(zhí)行需要的數(shù)據(jù)資源所在節(jié)點(diǎn)分別位于不同的管理域,而這些管理域之間存在訪問權(quán)限的問題,一般采用防火墻進(jìn)行控制。每個(gè)管理域提供一個(gè)“頭節(jié)點(diǎn)”(head node)供其他管理域中的節(jié)點(diǎn)訪問,所有內(nèi)部“私有節(jié)點(diǎn)”(private node)都不對(duì)其他管理域開放,這使得在Stage-In階段無法直接建立計(jì)算節(jié)點(diǎn)與作業(yè)執(zhí)行需要的數(shù)據(jù)資源所在節(jié)點(diǎn)之間的連接進(jìn)行數(shù)據(jù)傳輸;同樣,在Stage-Out階段也無法直接建立計(jì)算節(jié)點(diǎn)與用戶登錄節(jié)點(diǎn)之間的傳輸連接。
在上述場(chǎng)景中,數(shù)據(jù)傳輸雙方無法以傳統(tǒng)的C/S模式直接建立連接,數(shù)據(jù)傳輸過程只能利用網(wǎng)格環(huán)境中的中間授權(quán)節(jié)點(diǎn)進(jìn)行中轉(zhuǎn)。以Stage-In階段為例,現(xiàn)在使用較多的處理方式是:首先將數(shù)據(jù)資源從其所在節(jié)點(diǎn)傳輸?shù)皆摴?jié)點(diǎn)所屬的管理域B的頭節(jié)點(diǎn)b,然后網(wǎng)格用戶利用網(wǎng)格身份登錄管理域B的頭節(jié)點(diǎn)b,將數(shù)據(jù)傳輸?shù)焦?jié)點(diǎn)b可以直接訪問的管理域C的頭節(jié)點(diǎn)c,最后網(wǎng)格用戶再登錄節(jié)點(diǎn)c,將數(shù)據(jù)資源傳輸?shù)綀?zhí)行作業(yè)的計(jì)算節(jié)點(diǎn)上。利用這種重復(fù)“登錄→傳輸”的中轉(zhuǎn)方式將數(shù)據(jù)從源節(jié)點(diǎn)傳輸?shù)侥康墓?jié)點(diǎn)。這種傳輸方式的缺點(diǎn)很明顯:對(duì)于網(wǎng)格用戶來說,需要利用網(wǎng)格賬號(hào)多次登錄不同網(wǎng)格節(jié)點(diǎn)才能完成一次數(shù)據(jù)傳輸操作;對(duì)于所用到的各個(gè)中轉(zhuǎn)節(jié)點(diǎn)來說,會(huì)在節(jié)點(diǎn)上留有數(shù)據(jù)副本,需要用戶在作業(yè)執(zhí)行結(jié)束后手動(dòng)刪除。這種傳輸模式無論是對(duì)用戶使用的便捷性還是對(duì)數(shù)據(jù)傳輸效率的保障都是個(gè)巨大的挑戰(zhàn)。
在分布式計(jì)算環(huán)境中,涉及傳輸過程的數(shù)據(jù)源端和目的端之間的傳輸操作無法直接進(jìn)行,只能間接通過中間節(jié)點(diǎn),找到從“源”到“目的”的傳輸路徑,并借助該路徑按照特定的策略通過一系列中轉(zhuǎn)操作將數(shù)據(jù)發(fā)送到目的節(jié)點(diǎn)上,這種傳輸模式稱為端到端的數(shù)據(jù)傳輸。這種數(shù)據(jù)傳輸模式不同于傳統(tǒng)客戶端/服務(wù)器(C/S)模式,因?yàn)閭鬏旊p方無法直接建立C/S連接;也不同于KaZaA[3]、Napster[4]等P2P模式,因?yàn)樵赑2P模式中資源請(qǐng)求節(jié)點(diǎn)先通過泛洪(Flooding)查詢來發(fā)現(xiàn)資源,找到資源后直接建立點(diǎn)對(duì)點(diǎn)的傳輸連接。
端到端的數(shù)據(jù)傳輸具有以下特點(diǎn):首先,進(jìn)行傳輸?shù)臄?shù)據(jù)源節(jié)點(diǎn)和目的節(jié)點(diǎn)之間無法直接互聯(lián)。其次,有了數(shù)據(jù)中轉(zhuǎn)節(jié)點(diǎn)的加入,在端到端的傳輸過程中存在多條可行的傳輸路徑。由于這些路徑上的鏈路帶寬不同、距離不同等因素存在,導(dǎo)致鏈路傳輸能力具有較大差別。不同傳輸路徑的選擇對(duì)端到端的數(shù)據(jù)傳輸效率有很大影響。
在分析影響端到端的數(shù)據(jù)傳輸效率的關(guān)鍵問題的基礎(chǔ)上,將其歸結(jié)為數(shù)學(xué)問題進(jìn)行研究,設(shè)計(jì)并提出了一種適合端到端數(shù)據(jù)傳輸?shù)亩嗦凡⑿袀鬏敊C(jī)制,同時(shí)提供了可靠性保證策略,并對(duì)其進(jìn)行了理論分析。
用帶權(quán)無向圖G=(V,E)表示分布式計(jì)算環(huán)境,圖的節(jié)點(diǎn)V=(v0,v1,…,vn)表示計(jì)算節(jié)點(diǎn)和傳輸節(jié)點(diǎn),圖的邊E=(E0,E1,…,Em)表示節(jié)點(diǎn)間的網(wǎng)絡(luò)連接。權(quán)值w表示每條鏈路上的時(shí)間損耗(反映空閑網(wǎng)絡(luò)帶寬),加權(quán)函數(shù)w:E→R表示從鏈路到實(shí)型權(quán)值的映射。所以,每條可行的傳輸路徑P=(v0,v1,…,vk)的權(quán)為該路徑上所有可行鏈路的權(quán)值之和:
(1)
如果圖中u→v找到n條傳輸鏈路P1,P2,…,Pt,那么求解最短路徑的過程就是尋找單個(gè)傳輸任務(wù)的最短傳輸時(shí)間的過程。
最短傳輸鏈路的權(quán)可表示為:
δ(u,v)=
(2)
那么,端到端的數(shù)據(jù)傳輸可轉(zhuǎn)化為在帶權(quán)無向圖G中的多任務(wù)并發(fā)傳輸問題,任務(wù)數(shù)量用n(n>1)表示。從u到v間的傳輸鏈路P1,P2,…,Pt上的網(wǎng)絡(luò)負(fù)載是動(dòng)態(tài)變化的,每個(gè)任務(wù)在傳輸過程中根據(jù)鏈路繁忙程度選擇最快傳輸鏈路即可獲得最大傳輸效率。所以,端到端的傳輸問題可轉(zhuǎn)化為最大化地均衡利用G中可行傳輸鏈路以獲得最高的吞吐率,使得總傳輸時(shí)間最短,可表示為:
(3)
為了和傳統(tǒng)路由傳輸加以區(qū)分,在表1中將端到端的數(shù)據(jù)傳輸和傳統(tǒng)的路由傳輸進(jìn)行了對(duì)比。
表1 傳統(tǒng)路由傳輸與端到端數(shù)據(jù)傳輸?shù)膶?duì)比
端到端的數(shù)據(jù)傳輸應(yīng)考慮兩個(gè)重要問題:采用何種傳輸機(jī)制來提高傳輸效率;對(duì)于存在的多條傳輸路徑,如何充分利用以實(shí)現(xiàn)合理的網(wǎng)絡(luò)分流,提高網(wǎng)絡(luò)資源的利用率。
3.1 網(wǎng)格文件傳輸服務(wù)GridFTP
GridFTP是美國(guó)Argonne國(guó)家實(shí)驗(yàn)室在GT(Globus Tools)項(xiàng)目中設(shè)計(jì)的數(shù)據(jù)傳輸協(xié)議,它對(duì)標(biāo)準(zhǔn)FTP協(xié)議(RFC959)進(jìn)行了擴(kuò)展,有12所大學(xué)和科研機(jī)構(gòu)參與該項(xiàng)目研發(fā)。GridFTP為Globus Toolkit提供了高效的傳輸工具[5]。
(1)自動(dòng)調(diào)整TCP緩沖窗口的大小(Auto Negotiation)。用戶可以選擇手動(dòng)設(shè)置或者讓GridFTP自動(dòng)設(shè)置TCP緩沖窗口的大小,提高數(shù)據(jù)傳輸?shù)男阅堋?/p>
(2)支持由第三方控制的數(shù)據(jù)傳輸(Third-party Data Transfer)。GridFTP將操作控制通道的邏輯單元稱為協(xié)議解釋(PI),對(duì)數(shù)據(jù)通道的操作過程稱為數(shù)據(jù)傳輸過程(DTP),實(shí)現(xiàn)了傳輸和控制的分離。Client端通過控制通道發(fā)送命令,讓Server端與其他節(jié)點(diǎn)建立傳輸連接,實(shí)現(xiàn)數(shù)據(jù)傳輸。
(3)支持并行數(shù)據(jù)傳輸(Parallel Data Transfer)。GridFTP通過多個(gè)并行的TCP可有效利用鏈路帶寬[6],它對(duì)指令和數(shù)據(jù)通道進(jìn)行了擴(kuò)展,支持并行數(shù)據(jù)傳輸。
(4)支持部分文件傳輸(Partial File Transfer)。GridFTP支持?jǐn)?shù)據(jù)文件中特定部分的數(shù)據(jù)傳輸。它引入新的控制指令支持對(duì)一個(gè)數(shù)據(jù)文件的任意部分進(jìn)行傳輸操作。
Condor Stork[7]、Globus RFT以及gLite FTS等文件傳輸服務(wù)都使用GridFTP。但GridFTP和防火墻等管理工具的結(jié)合沒有很好地被解決,三方傳輸功能受到限制[8]。
3.2 CNGrid數(shù)據(jù)傳輸子系統(tǒng)
CNGrid數(shù)據(jù)傳輸子系統(tǒng)[9]是由國(guó)防科技大學(xué)和清華大學(xué)聯(lián)合開發(fā)的,應(yīng)用在CNGrid系統(tǒng)端到端的數(shù)據(jù)傳輸中,可滿足兩種傳輸情景。它設(shè)計(jì)了簡(jiǎn)單數(shù)據(jù)中轉(zhuǎn)的傳輸方法,稱為一跳傳輸和二跳傳輸,如圖2所示。其中,圖中的黑色節(jié)點(diǎn)是具有公網(wǎng)IP的服務(wù)器(稱為頭節(jié)點(diǎn)),其余節(jié)點(diǎn)為私有節(jié)點(diǎn)(只能被頭節(jié)點(diǎn)訪問)。
圖2 CNGird數(shù)據(jù)傳輸子系統(tǒng)的研究場(chǎng)景
CNGrid數(shù)據(jù)傳輸子系統(tǒng)提供了一種分布式環(huán)境下簡(jiǎn)單的端到端的數(shù)據(jù)傳輸方法,但該方法存在一定的局限性:首先,這種數(shù)據(jù)傳輸路徑由用戶指定,用戶需要清楚實(shí)際部署環(huán)境中的部署情況和傳輸情景;其次,該系統(tǒng)只簡(jiǎn)單地實(shí)現(xiàn)了一跳傳輸和兩跳傳輸情景,對(duì)于需要多于兩跳才能完成的傳輸情景無能為力;第三,傳輸過程中會(huì)在路由節(jié)點(diǎn)上生成臨時(shí)文件,占用大量磁盤空間,最后還需要進(jìn)行刪除處理的善后操作,增加了操作的復(fù)雜性和寫磁盤帶來的性能開銷。
4.1 存儲(chǔ)轉(zhuǎn)發(fā)問題
在端到端的數(shù)據(jù)傳輸系統(tǒng)中,CNGrid數(shù)據(jù)傳輸子系統(tǒng)利用磁盤暫存?zhèn)鬏敂?shù)據(jù)再進(jìn)行轉(zhuǎn)發(fā),這種傳輸方式需要在傳輸任務(wù)完成后再將暫存的臨時(shí)數(shù)據(jù)文件刪除。這種方式產(chǎn)生的時(shí)間開銷極大地降低了傳輸效率。第一,讀寫磁盤的速度要遠(yuǎn)遠(yuǎn)低于處理器的處理速度,兩者不在一個(gè)數(shù)量級(jí)上,所以利用磁盤文件落地后中轉(zhuǎn)會(huì)嚴(yán)重浪費(fèi)CPU的處理周期。第二,中轉(zhuǎn)文件要在中間節(jié)點(diǎn)存儲(chǔ)完成后才能進(jìn)行轉(zhuǎn)發(fā),會(huì)浪費(fèi)大量的等待時(shí)間,從而極大地降低了傳輸效率。
4.2 點(diǎn)對(duì)點(diǎn)傳輸問題
單流式順序傳輸對(duì)于數(shù)據(jù)傳輸來說有很多不利的方面。第一,標(biāo)準(zhǔn)傳輸協(xié)議都是基于TCP/IP協(xié)議簇設(shè)計(jì)的,它們的窗口機(jī)制并不匹配高速網(wǎng)絡(luò)設(shè)備的處理速度,致使現(xiàn)有傳輸協(xié)議不能充分利用鏈路的網(wǎng)絡(luò)帶寬[10]。第二,雖然標(biāo)準(zhǔn)傳輸協(xié)議的順序傳輸保證了傳輸過程的數(shù)據(jù)容錯(cuò)處理,但是卻在很大程度上降低了傳輸效率,因?yàn)樵趥鬏敃r(shí)需要對(duì)數(shù)據(jù)流上的傳輸字節(jié)的順序進(jìn)行監(jiān)控,無法進(jìn)行并行傳輸。
4.3 多路傳輸問題
在端到端的傳輸過程中利用磁盤做存儲(chǔ)轉(zhuǎn)發(fā)只是利用單流式順序傳輸使文件落地,無法利用分布式環(huán)境中的多條空閑鏈路,使得整個(gè)網(wǎng)絡(luò)環(huán)境的利用率極低,無法獲得較高的傳輸時(shí)效。同時(shí),這些可行的傳輸鏈路在網(wǎng)絡(luò)帶寬、擁塞程度、節(jié)點(diǎn)性能等方面可能會(huì)有較大差別,利用它們進(jìn)行中轉(zhuǎn)傳輸時(shí)不能統(tǒng)一對(duì)待。如果可以充分考慮這些傳輸鏈路各方面的差別,研究一種合理的多路利用策略,以充分利用多條可行傳輸路徑對(duì)傳輸任務(wù)進(jìn)行傳輸,則可以提高整個(gè)網(wǎng)絡(luò)的利用率以及數(shù)據(jù)傳輸?shù)男省?/p>
5.1 數(shù)據(jù)緩沖區(qū)策略
眾所周知,讀寫寄存器的速度與CPU的處理速度最接近,但是寄存器的存儲(chǔ)空間小、價(jià)格高,只適合緩存臨時(shí)數(shù)據(jù),不能用作存儲(chǔ)大數(shù)據(jù)。除此之外,用內(nèi)存作為數(shù)據(jù)存儲(chǔ)可以獲得磁盤無法比擬的讀寫速度,更接近處理器的處理速度,是一種高效的存儲(chǔ)方法。但是存儲(chǔ)數(shù)據(jù)不能在內(nèi)存上進(jìn)行持久化。
設(shè)計(jì)一種數(shù)據(jù)緩存機(jī)制,讓傳輸過程可以有效利用內(nèi)存區(qū)的存取速度,稱為緩沖區(qū)機(jī)制。即在中轉(zhuǎn)節(jié)點(diǎn)上構(gòu)建一塊內(nèi)存區(qū)域?qū)iT用作中轉(zhuǎn)數(shù)據(jù)的緩沖區(qū),實(shí)現(xiàn)對(duì)轉(zhuǎn)發(fā)數(shù)據(jù)的緩存,降低存儲(chǔ)轉(zhuǎn)發(fā)過程所產(chǎn)生的時(shí)間開銷,從而提高中轉(zhuǎn)效率。緩沖區(qū)只能存儲(chǔ)部分?jǐn)?shù)據(jù),無法存儲(chǔ)大數(shù)據(jù)文件。后面會(huì)引入數(shù)據(jù)分片機(jī)制的設(shè)計(jì),實(shí)現(xiàn)緩存與動(dòng)態(tài)轉(zhuǎn)發(fā)機(jī)能,快速處理緩沖區(qū)的數(shù)據(jù)塊,充分利用內(nèi)存區(qū)域,更大的優(yōu)勢(shì)是解決了中轉(zhuǎn)節(jié)點(diǎn)需存完整個(gè)文件后才能轉(zhuǎn)發(fā)的問題,同時(shí)解決了內(nèi)存空間大小的限制,如圖3所示。
圖3 利用緩沖區(qū)機(jī)制存儲(chǔ)轉(zhuǎn)發(fā)示意圖
5.2 多路并行傳輸?shù)膶?shí)現(xiàn)機(jī)制
5.2.1 多路分流策略
前面在分析影響端到端的傳輸效率的關(guān)鍵問題時(shí),提到當(dāng)前大多數(shù)端到端數(shù)據(jù)傳輸系統(tǒng)都是利用在分布式環(huán)境中按照一定的策略選擇一條比較優(yōu)的路徑(或者指定路徑)的方式完成端到端的數(shù)據(jù)傳輸,沒有充分利用網(wǎng)絡(luò)中源節(jié)點(diǎn)和目的節(jié)點(diǎn)之間存在的多條可行傳輸鏈路,如圖4所示。
圖4 多路并行傳輸
從數(shù)據(jù)源節(jié)點(diǎn)到達(dá)目的節(jié)點(diǎn)存在多條可行路徑,每個(gè)中轉(zhuǎn)節(jié)點(diǎn)接收的數(shù)據(jù)塊都有多條可達(dá)目的節(jié)點(diǎn)的傳輸鏈路可以選擇。在每個(gè)節(jié)點(diǎn)上都充分利用所有可行鏈路去完成數(shù)據(jù)塊的傳輸,那么帶寬的總體吞吐量將獲得很大程度的提高。單條鏈路k上的帶寬設(shè)為BWk,那么在理論上可用于傳輸?shù)木W(wǎng)絡(luò)總帶寬變成:
(4)
此外,多路徑傳輸機(jī)制帶來的另一個(gè)好處是:如果在傳輸過程中遇到局部節(jié)點(diǎn)或鏈路崩潰的情況,多路徑傳輸策略能夠使用備用路徑完成傳輸,因此在一定程度上保證了傳輸?shù)目煽啃浴?/p>
5.2.2 數(shù)據(jù)分片策略
在分布式計(jì)算、云計(jì)算等并行計(jì)算領(lǐng)域,一般會(huì)將單個(gè)計(jì)算任務(wù)分解,每個(gè)任務(wù)在一定的顆粒度上分解為多個(gè)獨(dú)立的子任務(wù),以便并行處理來充分利用計(jì)算資源,提升計(jì)算效率。端到端的傳輸可以借鑒這種原理。為了提高數(shù)據(jù)傳輸效率,可以對(duì)一個(gè)傳輸任務(wù)進(jìn)行切分,將其切分成若干子傳輸任務(wù),結(jié)合下面介紹的多流并發(fā)傳輸機(jī)制,充分利用網(wǎng)絡(luò)帶寬,提高傳輸任務(wù)的執(zhí)行效率。
為此,將需要傳輸?shù)臄?shù)據(jù)文件按設(shè)定尺寸切分成若干大小相等的數(shù)據(jù)塊(Block,數(shù)據(jù)文件的最后一個(gè)數(shù)據(jù)塊小于等于數(shù)據(jù)塊設(shè)置大小),每個(gè)數(shù)據(jù)塊具有獨(dú)立的數(shù)據(jù)結(jié)構(gòu),構(gòu)建成數(shù)據(jù)包(Packet),作為單獨(dú)的傳輸子對(duì)象,從而實(shí)現(xiàn)了對(duì)單個(gè)傳輸任務(wù)的并行切分。中轉(zhuǎn)節(jié)點(diǎn)的緩沖區(qū)會(huì)接收并解析每個(gè)接收到的數(shù)據(jù)包的數(shù)據(jù)結(jié)構(gòu),包含傳輸?shù)脑吹刂贰⒛康牡刂?、源文件信息、目的文件信息、?shù)據(jù)塊號(hào)、起始位置、數(shù)據(jù)塊大小、校驗(yàn)和、時(shí)間戳、實(shí)際數(shù)據(jù)等信息。然后根據(jù)對(duì)鏈路傳輸能力的評(píng)估選擇隊(duì)列進(jìn)行轉(zhuǎn)發(fā),最終所有數(shù)據(jù)包到達(dá)目的節(jié)點(diǎn)后進(jìn)行任務(wù)合并,通過解析數(shù)據(jù)包頭部信息,將數(shù)據(jù)塊寫入到目標(biāo)文件并進(jìn)行校驗(yàn),最終完成傳輸任務(wù)。對(duì)于數(shù)據(jù)分塊的大小,按照文獻(xiàn)[11],設(shè)置數(shù)據(jù)分塊大小為1 MB。
圖5演示了上述過程,可以清晰地看到與圖4的區(qū)別。四個(gè)傳輸任務(wù)(File1~File4)到達(dá)節(jié)點(diǎn)A后,F(xiàn)ile1~File3分別選擇鏈路ABE(5 MB)、ACE(8 MB)和ADE(9 MB)進(jìn)行轉(zhuǎn)發(fā),每條可用鏈路都有剩余帶寬,F(xiàn)ile4整體傳輸只能選擇最優(yōu)的鏈路ADE(剩余3 MB),但是利用數(shù)據(jù)分片機(jī)制可將其切分成6個(gè)單獨(dú)的數(shù)據(jù)塊(1 MB)。然后并行分布到三條具有剩余帶寬的鏈路上實(shí)現(xiàn)轉(zhuǎn)發(fā),最終在目的節(jié)點(diǎn)E對(duì)所有數(shù)據(jù)塊進(jìn)行合并。這種機(jī)制在很大程度上提高了帶寬的利用率。
圖5 數(shù)據(jù)分片傳輸
此外,數(shù)據(jù)分片傳輸帶來的另一個(gè)好處是:在一定程度上增強(qiáng)了端到端傳輸過程中數(shù)據(jù)的安全性。因?yàn)樵诙嗦窂讲⑿袀鬏數(shù)那闆r下,數(shù)據(jù)包經(jīng)不同的鏈路傳輸?shù)侥康亩?,?shù)據(jù)包在任何中間節(jié)點(diǎn)上被截獲也無法被構(gòu)造出源文件,所以說數(shù)據(jù)分片傳輸增強(qiáng)了數(shù)據(jù)傳輸?shù)陌踩浴?/p>
5.2.3 多流并發(fā)策略
提高帶寬利用率的一類方法是通過調(diào)節(jié)TCP緩沖窗口的大小來提高鏈路的帶寬利用率[12-14]。這種方式的原理是當(dāng)TCP最優(yōu)緩沖窗口大小(Optimal Buffer Size)等于鏈路帶寬(Bandwidth)與往返時(shí)延(RTT)的乘積時(shí),可以最大程度地利用傳輸鏈路的帶寬。GridFTP利用這種方式來提高網(wǎng)絡(luò)帶寬利用率。這種調(diào)整方法對(duì)于應(yīng)用層的傳輸來說復(fù)雜性較高。一方面,由于網(wǎng)絡(luò)實(shí)際的可用帶寬具有動(dòng)態(tài)變化性,所以調(diào)整TCP緩沖區(qū)的做法復(fù)雜性高,需要不斷動(dòng)態(tài)調(diào)整才能滿足要求;另一方面,在應(yīng)用層的傳輸需要操作傳輸層TCP緩沖窗口大小,從設(shè)計(jì)的角度來說不符合設(shè)計(jì)規(guī)范。
另一類提高帶寬利用率的方法是多數(shù)據(jù)流并發(fā)傳輸機(jī)制[10]。這種方法的本質(zhì)是在相鄰兩個(gè)節(jié)點(diǎn)間構(gòu)建多個(gè)并行的Socket對(duì),根據(jù)特定的調(diào)度機(jī)制進(jìn)行數(shù)據(jù)的并行發(fā)送和接收。具體方法是每個(gè)中轉(zhuǎn)節(jié)點(diǎn)在應(yīng)用層建立N(N>1)個(gè)TCP流,根據(jù)調(diào)度機(jī)制進(jìn)行監(jiān)聽、接收、發(fā)送操作。該方法的優(yōu)點(diǎn)是不用手動(dòng)調(diào)整網(wǎng)絡(luò)層的TCP緩沖區(qū)大小,規(guī)避了傳統(tǒng)傳輸協(xié)議的劣勢(shì),同時(shí)提高了鏈路的帶寬利用率。文獻(xiàn)[10]分析了該機(jī)制的優(yōu)勢(shì),并實(shí)驗(yàn)對(duì)比了與調(diào)整緩沖區(qū)方案的傳輸效率區(qū)別,證明了多流并發(fā)機(jī)制在提高鏈路吞吐率方面的優(yōu)勢(shì),可以獲得更高的傳輸效率。
行業(yè)性質(zhì):絕大多數(shù)企業(yè)位于產(chǎn)業(yè)鏈利潤(rùn)最低的制造環(huán)節(jié):超過90%的企業(yè)均為生產(chǎn)型企業(yè);占據(jù)產(chǎn)業(yè)鏈高端環(huán)節(jié)的企業(yè)很少:總部、研發(fā)設(shè)計(jì)、采購(gòu)及業(yè)務(wù)等比例較小,占比最大的采購(gòu)環(huán)節(jié)亦僅五分之一左右。
在實(shí)驗(yàn)評(píng)測(cè)中,通過多組實(shí)驗(yàn)數(shù)據(jù)證明了在百兆網(wǎng)環(huán)境中,使用系統(tǒng)默認(rèn)的TCP緩沖區(qū)大小時(shí)的并發(fā)流數(shù)目為5~12時(shí),可以獲得較優(yōu)的傳輸效率。
Condor中設(shè)計(jì)的Stork[7]采用集中式的管理策略保證數(shù)據(jù)傳輸?shù)目煽啃?,缺點(diǎn)是過于依賴監(jiān)控節(jié)點(diǎn),一旦監(jiān)控節(jié)點(diǎn)異常,可靠性保證機(jī)制將失效。受傳輸層TCP協(xié)議可靠性保證策略[15]啟發(fā),設(shè)計(jì)一種請(qǐng)求重傳與超時(shí)重傳相結(jié)合的可靠性保證策略,并針對(duì)網(wǎng)絡(luò)傳輸性能動(dòng)態(tài)變化的特點(diǎn),提供了一種動(dòng)態(tài)估計(jì)最大超時(shí)時(shí)間的方法。
6.1 出錯(cuò)請(qǐng)求重傳
在傳輸源節(jié)點(diǎn)為每個(gè)數(shù)據(jù)塊構(gòu)建數(shù)據(jù)包時(shí),采用MD5計(jì)算其校驗(yàn)值,并記錄到數(shù)據(jù)包的數(shù)據(jù)結(jié)構(gòu)中。每個(gè)中轉(zhuǎn)節(jié)點(diǎn)收到傳輸數(shù)據(jù)包時(shí),首先對(duì)其解析并進(jìn)行MD5校驗(yàn),根據(jù)校驗(yàn)結(jié)果判斷收到的數(shù)據(jù)包是否已被破壞。如果發(fā)現(xiàn)數(shù)據(jù)包被破壞,則丟棄,同時(shí)根據(jù)該數(shù)據(jù)包攜帶的信息向源端發(fā)送重傳消息,重傳消息中攜帶了請(qǐng)求重傳的數(shù)據(jù)塊信息。
6.2 超時(shí)重傳
在傳輸源節(jié)點(diǎn)為每個(gè)數(shù)據(jù)塊構(gòu)建的數(shù)據(jù)包在傳輸時(shí)為其記錄一個(gè)時(shí)間戳,目的端每成功接收一個(gè)數(shù)據(jù)包則返回給發(fā)送端一個(gè)響應(yīng)消息,響應(yīng)信息攜帶了傳輸成功的數(shù)據(jù)塊的信息,對(duì)于收到響應(yīng)信息的數(shù)據(jù)塊則將其標(biāo)記為傳輸成功狀態(tài)。源端采用輪詢方式檢查各數(shù)據(jù)塊傳輸是否超時(shí),如果發(fā)現(xiàn)超時(shí),則對(duì)相應(yīng)的數(shù)據(jù)塊發(fā)起重傳操作。當(dāng)發(fā)現(xiàn)有數(shù)據(jù)塊的重傳次數(shù)超過最大重傳次數(shù)的限制時(shí),放棄重傳,通知用戶傳輸任務(wù)失敗,并將傳輸任務(wù)移除。
6.3 動(dòng)態(tài)估計(jì)最大超時(shí)時(shí)間
首先,在每個(gè)傳輸任務(wù)開始前,發(fā)送若干攜帶傳輸任務(wù)信息的數(shù)據(jù)包進(jìn)行路徑探測(cè),返回的響應(yīng)信息作為探測(cè)結(jié)果。如果發(fā)現(xiàn)目的節(jié)點(diǎn)不可到達(dá),則通知用戶傳輸失敗,這樣可以防止在目的節(jié)點(diǎn)不可達(dá)的情況下盲目傳輸造成的網(wǎng)絡(luò)帶寬浪費(fèi);如果返回消息顯示目的節(jié)點(diǎn)可達(dá),則記錄消息的往返時(shí)延(RTT)。然后根據(jù)消息數(shù)據(jù)包大小、往返時(shí)延以及實(shí)際傳輸數(shù)據(jù)包大小,按式(5)計(jì)算數(shù)據(jù)包最大超時(shí)時(shí)間:
(5)
其中,sizebp為傳輸數(shù)據(jù)包大小;sizeba為后行消息數(shù)據(jù)包大?。籹izem為探測(cè)消息大??;RTTm為探測(cè)消息往返時(shí)延;ω為超時(shí)系數(shù),根據(jù)文獻(xiàn)[16],一般ω取4。
然后,當(dāng)傳輸任務(wù)被調(diào)度并開始執(zhí)行后,源節(jié)點(diǎn)會(huì)不斷地收到標(biāo)識(shí)各數(shù)據(jù)塊傳輸成功的響應(yīng)消息,它將定期根據(jù)數(shù)據(jù)包發(fā)送時(shí)間timebp和消息返回時(shí)間timeba,按式(6)動(dòng)態(tài)更新數(shù)據(jù)包最大超時(shí)時(shí)間:
(6)
這種策略的優(yōu)點(diǎn)是:傳輸過程的可靠性不依賴于集中式的節(jié)點(diǎn)控制;動(dòng)態(tài)更新最大超時(shí)時(shí)間可以實(shí)時(shí)應(yīng)對(duì)網(wǎng)絡(luò)傳輸性能動(dòng)態(tài)變化導(dǎo)致的數(shù)據(jù)包傳輸時(shí)延差異;出錯(cuò)請(qǐng)求重傳可以及時(shí)發(fā)現(xiàn)傳輸過程中的錯(cuò)誤并及時(shí)進(jìn)行處理。
在研究分析影響端到端數(shù)據(jù)傳輸效率的關(guān)鍵問題基礎(chǔ)上,基于緩沖區(qū)、數(shù)據(jù)分片、多路并行傳輸?shù)燃夹g(shù),設(shè)計(jì)了一種適合端到端數(shù)據(jù)傳輸?shù)亩嗦凡⑿袀鬏敊C(jī)制,同時(shí)提供了可靠性保證策略,旨在充分利用網(wǎng)絡(luò)帶寬以提高傳輸效率。
理論分析表明,該機(jī)制有效解決了分布式環(huán)境下數(shù)據(jù)傳輸?shù)脑L問控制和傳輸效率等問題,尤其是對(duì)于較為復(fù)雜的分布式環(huán)境下進(jìn)行的大數(shù)據(jù)傳輸,該機(jī)制充分利用了整個(gè)網(wǎng)絡(luò)環(huán)境的傳輸帶寬,同時(shí)解決了中間節(jié)點(diǎn)的數(shù)據(jù)落地問題,為端到端的數(shù)據(jù)傳輸提供了高效可靠的保障。
[1] 徐志偉,馮百明,李 偉.網(wǎng)格計(jì)算技術(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] 蔣 成.混合式對(duì)等網(wǎng)絡(luò)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] 中國(guó)國(guó)家網(wǎng)格軟件數(shù)據(jù)網(wǎng)格工作組.數(shù)據(jù)網(wǎng)格進(jìn)展匯報(bào)[R].北京:中科院計(jì)算所,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)絡(luò)出版時(shí)間:2017-03-13
國(guó)家發(fā)改委中國(guó)氣象局“十二五”重點(diǎn)工程建設(shè)項(xiàng)目(ZQC-H14175)
劉立明(1981-),男,碩士,工程師,研究方向?yàn)榉植际接?jì)算。
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