蘇州高等職業(yè)技術(shù)學(xué)校 石宏華
伴隨著信息化、數(shù)據(jù)化的時(shí)代現(xiàn)狀,電子信息通信架構(gòu)的技術(shù)是否安全可靠,將成為計(jì)算數(shù)據(jù)處理中心面臨的挑戰(zhàn)之一,同樣也成為當(dāng)前熱門的研究方向之一。由于限制數(shù)據(jù)集群處理技術(shù)多半是通信技術(shù)的因素,所以在實(shí)際研究階段可從該方面入手,而RDMA(遠(yuǎn)程數(shù)據(jù)直接讀取技術(shù))可優(yōu)化與完善傳統(tǒng)網(wǎng)絡(luò)架構(gòu)的網(wǎng)絡(luò)傳輸帶寬類問(wèn)題。鑒于此,本文依據(jù)遠(yuǎn)程數(shù)據(jù)直接讀取技術(shù)為基礎(chǔ),探究其在高性能通信庫(kù)中的作用與價(jià)值。
何為無(wú)限帶寬技術(shù)?正所謂,無(wú)限帶寬是由英文InfiniBand直譯過(guò)來(lái),其作為一種廣泛應(yīng)用于高性能計(jì)算的計(jì)算機(jī)網(wǎng)絡(luò)通信標(biāo)準(zhǔn)之一,可以代替?zhèn)鹘y(tǒng)的PCI總線技術(shù),并支持全雙工工作方式,以此也具備極高的吞吐量和極低的延遲等優(yōu)勢(shì)。InfiniBand架構(gòu)簡(jiǎn)稱為IB架構(gòu),在高性能通信庫(kù)設(shè)計(jì)階段,即需要相關(guān)硬件的支持,同樣也要在軟件協(xié)議層下開(kāi)展設(shè)計(jì)方案。故此,在設(shè)計(jì)階段,須按照IB架構(gòu)制定軟件層面的修改方案,并同時(shí)進(jìn)行操作系統(tǒng)環(huán)節(jié)的軟硬件相互配合,達(dá)到實(shí)現(xiàn)最大化通信的基本目的。需注意一點(diǎn)的是:IB架構(gòu)設(shè)計(jì)的目的在于應(yīng)對(duì)服務(wù)器之間的帶寬問(wèn)題,其協(xié)議棧如圖1所示。
圖1 IB架構(gòu)協(xié)議棧
RDMA(遠(yuǎn)程數(shù)據(jù)直接讀取技術(shù))是一種類似于直接存儲(chǔ)器存取,但是與其不同的是本地直接存儲(chǔ)器存取須經(jīng)過(guò)CPU單元模塊,而RDMA則不需要通過(guò)上述的單元模塊,直接完成數(shù)據(jù)的傳輸過(guò)程,以此也體現(xiàn)了其優(yōu)質(zhì)的數(shù)據(jù)傳輸效率。基于RDMA研發(fā)出的零拷貝技術(shù),已經(jīng)在當(dāng)前高性能數(shù)據(jù)集群中得到較好的應(yīng)用。
IB設(shè)計(jì)框架下實(shí)現(xiàn)RDMA可完成直接收發(fā)數(shù)據(jù)的基本功能,而其中便涉及到簡(jiǎn)單數(shù)據(jù)接口,即IBverbs。在設(shè)計(jì)階段,可充分利用數(shù)據(jù)接口IBverbs提供的現(xiàn)有接口,并借助遠(yuǎn)程數(shù)據(jù)直接讀取技術(shù)的額外特點(diǎn),制定出最佳的設(shè)計(jì)方案。比如,可在IBverbs接口上設(shè)計(jì)類TCP的連接方案,以便實(shí)現(xiàn)計(jì)算機(jī)集群運(yùn)算通信的基本要求。在IBverbs接口實(shí)現(xiàn)數(shù)據(jù)信息發(fā)送傳輸階段,須嚴(yán)格按照以下操作流程進(jìn)行。一是,完整注冊(cè)對(duì)端直接方案的內(nèi)存塊;二是,將數(shù)據(jù)發(fā)送消息加入到隊(duì)列中,此處是利用IBverbs自帶的send接口模塊;三是,利用send單元模塊的設(shè)計(jì)程序即可完整一次數(shù)據(jù)的發(fā)送。此外,信息數(shù)據(jù)的接收,同樣會(huì)遵循嚴(yán)格的設(shè)計(jì)流程,其具體的通信設(shè)計(jì)流程見(jiàn)圖2所示。
圖2 IBverbs通信方案設(shè)計(jì)圖
為了保證數(shù)據(jù)傳輸?shù)目煽啃屡c安全性,通常選擇多線程模塊化設(shè)計(jì)方案,即利用多個(gè)線程池完成數(shù)據(jù)的優(yōu)化處理,其中各個(gè)線程之間均保持獨(dú)立,不會(huì)額外占用其他線程的硬件資源,以保證數(shù)據(jù)傳輸?shù)母咝浴?duì)外階段,須根據(jù)FIFO的設(shè)計(jì)功能,保證流水的基本需求,以此防止因無(wú)流水功能而出現(xiàn)的帶寬利用率不高的情況。采用發(fā)送隊(duì)列與接收隊(duì)列好處還在于減少數(shù)據(jù)傳輸?shù)臅r(shí)間。在FIFO可從兩個(gè)角度入手,即可以設(shè)計(jì)成實(shí)現(xiàn)隊(duì)列的阻塞接收方案,可以設(shè)計(jì)成非阻塞接收方案。此外,基于RDMA環(huán)境下,接收端若想要得到數(shù)據(jù)信息,僅僅通過(guò)事前注冊(cè)好的數(shù)據(jù)塊到相應(yīng)的驅(qū)動(dòng)模塊中,即可完整信息的獲取,而不在需要拷貝的方式。須注意一點(diǎn)的是,上層應(yīng)用接收端會(huì)無(wú)法預(yù)知信息數(shù)據(jù)的傳輸?shù)竭_(dá)時(shí)間,一旦數(shù)據(jù)調(diào)用接口IBverbs存在問(wèn)題,將限制數(shù)據(jù)的傳輸,故此在RDMA機(jī)制下可使用其自身的通信協(xié)議棧主動(dòng)完成數(shù)據(jù)的管理。鑒于此,通過(guò)以上的多線程的簡(jiǎn)要分析,上層應(yīng)用調(diào)用接口時(shí),須根據(jù)著重?cái)?shù)據(jù)塊的大小設(shè)計(jì)。
綜上所述,在RDMA高性能通信庫(kù)的設(shè)計(jì)階段,根據(jù)RDMA在基本設(shè)計(jì)流程與多線程設(shè)計(jì)方面的分析,現(xiàn)選擇IBverbs接口模塊為基礎(chǔ),并結(jié)合多線程設(shè)計(jì)模式,完成RDMA技術(shù)支持的高性能阻塞通信接口的設(shè)計(jì)環(huán)境。
上文中得出以IB架構(gòu)下的高性能通信網(wǎng)卡,此為物理層;IBverbs接口模塊則主要是擔(dān)負(fù)數(shù)據(jù)的發(fā)送與接收。RDMA通信庫(kù)框架設(shè)計(jì),包含多個(gè)層次,如以內(nèi)存注冊(cè)與內(nèi)存映射的設(shè)計(jì)為例。在RDMA技術(shù)中內(nèi)存映射方式是指,用戶在調(diào)用內(nèi)存注冊(cè)接口時(shí)會(huì)產(chǎn)生并獲取虛擬地址,系統(tǒng)中則會(huì)根據(jù)產(chǎn)生的虛擬地址創(chuàng)建到與之對(duì)應(yīng)的物理地址中。簡(jiǎn)言之,IB架構(gòu)中的表保存機(jī)制便是實(shí)現(xiàn)物理地址與虛擬地址的對(duì)接。經(jīng)過(guò)實(shí)際的測(cè)試發(fā)現(xiàn),RDMA內(nèi)存注冊(cè)維持的時(shí)間過(guò)長(zhǎng),而降低了信息傳輸?shù)男阅堋榻鉀Q此弊端,可使用預(yù)注冊(cè)Buddy算法管理機(jī)制。該算法機(jī)制,可將內(nèi)存也合并成大小不同的內(nèi)存塊,且每一個(gè)內(nèi)存塊內(nèi)部均有標(biāo)志位標(biāo)識(shí),以此保證了通信數(shù)據(jù)庫(kù)的大數(shù)據(jù)塊傳輸。故此,利用Buddy系統(tǒng)管理之后的內(nèi)存注冊(cè),極大程度上方便了高性能通信庫(kù)的管理與應(yīng)用。
對(duì)于高性能通信庫(kù)的設(shè)計(jì),多半集中在集群間點(diǎn)對(duì)點(diǎn)通信環(huán)節(jié)中,實(shí)現(xiàn)帶寬利用率最大化的阻塞式高性能通信接口。鑒于此,后續(xù)的性能分析階段,則更多的側(cè)重于帶寬情況與GPU支持情況。下面將簡(jiǎn)要介紹一下實(shí)現(xiàn)高性能通信庫(kù)之后的性能調(diào)節(jié)與優(yōu)化情況。
(1)高性能通信調(diào)優(yōu)的基本原則
高性能通信庫(kù)架構(gòu)在設(shè)計(jì)完成之后,側(cè)重于一個(gè)角度的觀察,即帶寬的利用效率。一個(gè)角度可從兩個(gè)基本原則上入手,一是,認(rèn)真作好系統(tǒng)程序檢查工作,保證設(shè)計(jì)過(guò)程中沒(méi)有任何編程錯(cuò)誤,同時(shí)也須檢查計(jì)算機(jī)設(shè)備支持的性能優(yōu)化模式;二是,從本質(zhì)上進(jìn)行提升通信庫(kù)的性能,如優(yōu)化內(nèi)存注冊(cè)方面、應(yīng)用Buddy注冊(cè)算法機(jī)制等。以上兩點(diǎn)均可改善通信庫(kù)的基本性能。
(2)零拷貝對(duì)延遲的影響
要想探索零拷貝對(duì)延遲帶來(lái)的影響,可側(cè)重于數(shù)據(jù)傳輸時(shí)間延時(shí),并做出簡(jiǎn)要設(shè)計(jì),即拷貝延遲+協(xié)議處理延遲+網(wǎng)絡(luò)傳輸時(shí)間。其中在網(wǎng)絡(luò)傳輸時(shí)間方面,僅研究應(yīng)用層感知的數(shù)據(jù)延遲環(huán)節(jié)即可。經(jīng)過(guò)一系列的計(jì)算分析得出,零拷貝引入了較大的網(wǎng)絡(luò)傳輸影響,而針對(duì)于不同大小的數(shù)據(jù)塊傳輸時(shí)呈現(xiàn)正相關(guān)關(guān)系。同時(shí),在計(jì)算中發(fā)現(xiàn),RDMA的延遲效果低于其他類,凸顯其自身的低延遲特性。也說(shuō)明了RDMA的優(yōu)勢(shì)可體現(xiàn)在大數(shù)據(jù)塊的傳輸階段。
(3)高性能通信庫(kù)測(cè)試標(biāo)準(zhǔn)
本次研究設(shè)計(jì)的高性能通信庫(kù)側(cè)重于在一些上層應(yīng)用提供阻塞發(fā)送數(shù)據(jù)接口,故此在實(shí)際的測(cè)試評(píng)估中直接構(gòu)造數(shù)據(jù)發(fā)送模型即可。從高性能通信庫(kù)的性能效益模塊入手,在帶寬較高的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)中體現(xiàn)的較為顯著,故此研究重點(diǎn)須放到帶寬的最大有效率環(huán)節(jié)中。此外,對(duì)于通信庫(kù)數(shù)據(jù)延遲到達(dá)問(wèn)題,同樣是在日后測(cè)試環(huán)節(jié)中須重視的一個(gè)角度。以系統(tǒng)測(cè)試為例,IB架構(gòu)組網(wǎng)環(huán)境下,首先,制定數(shù)據(jù)注冊(cè)時(shí)間的測(cè)試,其次,完成不同數(shù)據(jù)塊傳輸?shù)牟町愋詫?duì)比,以此獲得點(diǎn)對(duì)點(diǎn)數(shù)據(jù)傳輸?shù)难舆t系數(shù)與帶寬系數(shù),務(wù)必保證每一個(gè)環(huán)節(jié)的操作規(guī)范性。故此不再作出的贅述。
總結(jié):綜上所述,面對(duì)海量的數(shù)據(jù)資源,高性能集群技術(shù)的發(fā)展已經(jīng)迫在眉睫,而實(shí)現(xiàn)集群技術(shù)與高速通信的相互融合,便成為行業(yè)亟待解決的問(wèn)題。本文基于RDMA技術(shù)下設(shè)計(jì)出高性能通信庫(kù)解決方案,并提出Buddy算法等一系列技術(shù),為上層應(yīng)用的可擴(kuò)展性提供了依據(jù),同時(shí)經(jīng)過(guò)測(cè)試得出該設(shè)計(jì)方案符合帶寬最大利用率的需求。