RDMA技術(shù)的研究與應(yīng)用
- 期刊名字:沈陽師范大學(xué)學(xué)報(自然科學(xué)版)
- 文件大?。?22kb
- 論文作者:劉天華,朱宏峰,杜梅,常桂然
- 作者單位:沈陽師范大學(xué),東北大學(xué)
- 更新時間:2020-06-12
- 下載次數(shù):次
第24卷第2期沈陽師范大學(xué)學(xué)報(自然科學(xué)版)vol 24, No. 22006年4月Journal of Shenyang Normal University( Natural Science)Apr.2006文章編號:1673-5862(2006)02-0185-04RDMA技術(shù)的研究與應(yīng)用劉天華,朱宏峰,杜梅,常桂然2(1沈陽師范大學(xué)科信軟件學(xué)院,遼寧沈陽10034;2.東北大學(xué)信息科學(xué)與工程學(xué)院,遼寧沈陽1004摘要:從RDMA的基本概念入手,詳細(xì)分析其工作原理和實現(xiàn)方法,結(jié)合各種具體應(yīng)用,闡明RDMA作為傳輸層與應(yīng)用層之間的連接紐帶的重要性和通用性關(guān)鍵詞:RDMA;TOE;Stag中圖分類號:TP393文獻(xiàn)標(biāo)識碼:A高性能的計算需要盡可能小的通信延遲.通信延遲主要分為2個部分:處理消息的延遲和網(wǎng)絡(luò)延遲.現(xiàn)代高速網(wǎng)絡(luò)已經(jīng)達(dá)到很高的傳輸速度,比如 Myrinet和 Gigabit Ethernet,這樣通信中的瓶頸就從以前的網(wǎng)絡(luò)轉(zhuǎn)移到處理消息收發(fā)任務(wù)的軟件上,在傳統(tǒng)的系統(tǒng)中,由內(nèi)核處理消息的情況導(dǎo)致多次的數(shù)據(jù)拷貝和許多內(nèi)容的轉(zhuǎn)換,這樣大大增大了端到端的延遲在傳統(tǒng)的基于處理器到處理器的互聯(lián)中,主機端對于數(shù)據(jù)的復(fù)制操作是低效的,所有的數(shù)據(jù)都需要在用戶緩沖區(qū)與內(nèi)核緩沖區(qū)間傳輸,這樣的數(shù)據(jù)復(fù)制操作需要極大的內(nèi)存帶寬,當(dāng)數(shù)據(jù)到達(dá)網(wǎng)絡(luò)接口時,它更新內(nèi)核緩沖區(qū),然后由主機處理器將數(shù)據(jù)從內(nèi)核緩沖區(qū)移動到用戶緩沖區(qū),在這過程中,需要進(jìn)行大量的讀寫操作,反向亦然,這種方法降低了CPU的效率,也消耗了大量的內(nèi)存帶寬RDMA( Remote Direct Memory Access)技術(shù)就是為了解決網(wǎng)絡(luò)傳輸中服務(wù)器端數(shù)據(jù)處理的延遲而產(chǎn)生的RDMA即遠(yuǎn)程直接數(shù)據(jù)存取,它通過網(wǎng)絡(luò)把資料直接傳入計算機的存儲區(qū),將數(shù)據(jù)從一個系統(tǒng)快速移動到遠(yuǎn)程系統(tǒng)存儲器中,而不對操作系統(tǒng)造成任何影響這樣就不需要用到多少計算機的處理功能.它消除了外部存儲器復(fù)制和文本交換操作,因而能解放內(nèi)存帶寬和(PU周期用于改迸應(yīng)用系統(tǒng)性能1理解RDMA1.1傳統(tǒng)意義上的DMA直接內(nèi)存訪問(DMA)方式,是一種完全由硬件執(zhí)行I/O交換的工作方式在這種方式中,DMA控制器從CPU完全接管對總線的控制數(shù)據(jù)交換不經(jīng)過CPU,而直接在內(nèi)存和I/O設(shè)備之間進(jìn)行DMA工作時,由DMA控制器向內(nèi)存發(fā)出地址和控制信號,進(jìn)行地址修改,對傳送字的個數(shù)計數(shù),并且以中斷方式向CPU報告?zhèn)魉筒僮鞯慕Y(jié)束使用DMA方式的目的是減少大批量數(shù)據(jù)傳輸時CPU的開存儲器銷采用專用DMA控制器(DMAC)生成訪存地址并控制訪存過程優(yōu)點有操作均由硬件電路實現(xiàn),傳輸速度快;CPU基本不干預(yù),僅在初始化和結(jié)束時參與,CPU與外設(shè)并行工作,效率高CPUEDMAC1.2RDMA工作原理目前,普通網(wǎng)卡集成了支持硬件校驗和的功能,并對軟件進(jìn)圖1傳統(tǒng)意義上的DMA工作示意圖行了改進(jìn),從而減少了發(fā)送數(shù)據(jù)的拷貝量,但無法減少接收數(shù)據(jù)的拷貝量,而這部分拷貝量要占用CPU的大量計算周期.普通網(wǎng)卡的工作過程如下:先把YH中國煤化工,數(shù)據(jù)包經(jīng)過處理后,相應(yīng)數(shù)據(jù)被分配到一個TCP連接;然后,接收系統(tǒng)再CNMHG應(yīng)的應(yīng)用程序聯(lián)收稿日期:20050507基金項目:遼寧省自然基金資助項目(20042042);遼寧省教育廳科研資助項目(05L420)作者簡介:劉天華(1966-),男,遼寧大連人,沈陽師范大學(xué)副教授博士研究生沈陽師范大學(xué)學(xué)報(自然科學(xué)版)第24卷系起來,并將數(shù)據(jù)從系統(tǒng)緩沖區(qū)拷貝到目標(biāo)存儲地址,這樣,制約網(wǎng)絡(luò)速率的因素就出現(xiàn)了:應(yīng)用通信強度不斷增加和主機CPU在內(nèi)核與應(yīng)用存儲器間處理數(shù)據(jù)的任務(wù)繁重使系統(tǒng)要不斷追加主機CPU資源,配置高效的軟件并增強系統(tǒng)負(fù)荷管理,問題的關(guān)鍵是要消除主機CPU中不必要的頻繁數(shù)據(jù)傳輸,減少系統(tǒng)間的信息延遲.RDMA是通過網(wǎng)絡(luò)把資料直接傳人計算機的存儲區(qū),將數(shù)據(jù)從一個系統(tǒng)快速移動到遠(yuǎn)程系統(tǒng)存儲器中,而不對操作系統(tǒng)造成任何影響,這樣就不需要用到多少計算機的處理功能.它消除了外部存儲器復(fù)制和文本交換操作,因而能騰出總線空間和CPU周期用于改進(jìn)應(yīng)用系統(tǒng)性能.目前通用的做法需由系統(tǒng)先對傳入的信息進(jìn)行分析與標(biāo)記,然后再存儲到正確的區(qū)域整體結(jié)構(gòu)如圖2所示主機1CPU主機2安全管理工具安全管理工具及應(yīng)用程序及應(yīng)用程序存儲器雙工通信的網(wǎng)絡(luò)存儲器用戶空具有RDMA具有RDMA用戶空間緩存功能的適配器功能的適配器間緩存圖2RDMA工作體系結(jié)構(gòu)RDMA的工作過程如下1)當(dāng)一個應(yīng)用執(zhí)行RDMA讀或?qū)懻埱髸r,不執(zhí)行任何數(shù)據(jù)復(fù)制在不需要任何內(nèi)核內(nèi)存參與的條件下RDMA請求從運行在用戶空間中的應(yīng)用中發(fā)送到本地NIC(網(wǎng)卡)2)NIC讀取緩沖的內(nèi)容,并通過網(wǎng)絡(luò)傳送到遠(yuǎn)程NIC3)在網(wǎng)絡(luò)上傳輸?shù)腞DMA信息包含目標(biāo)虛擬地址、內(nèi)存鑰匙和數(shù)據(jù)本身請求完成既可以完全在用戶空間中處理(通過輪詢用戶級完成排列),或者在應(yīng)用一直睡眠到請求完成時的情況下通過內(nèi)核內(nèi)存處理RDMA操作使應(yīng)用可以從一個遠(yuǎn)程應(yīng)用的內(nèi)存中讀數(shù)據(jù)或向這個內(nèi)存寫數(shù)據(jù).4)目標(biāo)NC確認(rèn)內(nèi)存鑰匙,直接將數(shù)據(jù)寫入應(yīng)用緩存中,用于操作的遠(yuǎn)程虛擬內(nèi)存地址包含在RDMA信息中1.3RDMA中零拷貝技術(shù)零拷貝網(wǎng)絡(luò)技術(shù)使NC可以直接與應(yīng)用內(nèi)存相互傳輸數(shù)據(jù),從而消除了在應(yīng)用內(nèi)存與內(nèi)核內(nèi)存之間復(fù)制數(shù)據(jù)的需要內(nèi)核內(nèi)存旁路使應(yīng)用無需執(zhí)行內(nèi)核內(nèi)存調(diào)用就可向NIC發(fā)送命令,在不需要任何內(nèi)核內(nèi)存參與的條件下,RDMA請求從用戶空間發(fā)送到本地NIC,并通過網(wǎng)絡(luò)發(fā)送給遠(yuǎn)程NIC,這就減少了在處理網(wǎng)絡(luò)傳輸流時內(nèi)核內(nèi)存空間與用戶空間之間環(huán)境切換的次數(shù).RDMA中的零拷貝技術(shù)主要實現(xiàn)方法如圖3所示(12在圖3中,右邊是傳統(tǒng)TCP/P協(xié)議以及普通網(wǎng)卡用戶緩沖區(qū)]應(yīng)用程序進(jìn)行的通信操作過程,很明顯,當(dāng)應(yīng)用層想從網(wǎng)卡獲得用戶空間數(shù)據(jù)報文時需要經(jīng)過2個緩沖區(qū)和正常 TCP/IP協(xié)議Msg Buff內(nèi)核空棧,其中由軟中斷負(fù)責(zé)從第一個接收隊列緩沖區(qū)讀取數(shù)Socket據(jù)報文,再拷貝到 MSGBuff中,最后由應(yīng)用層通過系統(tǒng)RDMATCP亞P軟中斷調(diào)用將數(shù)據(jù)報文讀到用戶態(tài)而左邊則是利用RDMA標(biāo)記存∥B收包隊列寧硬中斷來實現(xiàn)的零拷貝過程,規(guī)則如下核心隊列Bf1)RDMA及其LIP( Lower Layer Protocol)可以在DMA機制NIC上實現(xiàn)(稱為RNIC)2)在1)中所說的2種實現(xiàn)都是經(jīng)過以下步驟:將收發(fā)的數(shù)據(jù)緩存到一個已經(jīng)標(biāo)記好的存儲空間中,然后中國煤化工根據(jù)LLP和RDMA雙方協(xié)商的規(guī)則直接將此存儲空間CNMH技術(shù)映射到應(yīng)用空間,這樣就減少了傳統(tǒng)實現(xiàn)方法中的至少2次內(nèi)存拷貝,即實現(xiàn)零拷貝其中細(xì)線表示數(shù)據(jù)流動方向,其實標(biāo)記緩存就是通過RDMA直接映射成為用戶緩存空間的第2期劉天華等:RDMA技術(shù)的研究與應(yīng)用1872RDMA的構(gòu)成及操作方法2.1RDMA的構(gòu)成RDMA的實現(xiàn)是通過 RDMAP( Remote direct Memory Access Protocol)、DDP( Direct DataPlacement Protocol)MPA( Marker PDU aligned)3種協(xié)議共同實現(xiàn)RDMA的構(gòu)成如圖4所示圖4中,ULP為上層協(xié)議 RDMAP運行在DDP的上層,它提供了[ Upper Layer Protocol (ULP.到應(yīng)用的直接讀寫服務(wù),并將數(shù)據(jù)直接傳送到上層協(xié)議,不需要在內(nèi)核RDMAP緩沖之間進(jìn)行拷貝DDP提供了將數(shù)據(jù)直接放置到上層協(xié)議( RDMAP)的接收緩沖區(qū)SCTETCP的信息,通過這種信息能夠?qū)y帶的數(shù)據(jù)安全地放置到接收端的應(yīng)用內(nèi)圖4RDMA的構(gòu)成存中而無需上層協(xié)議(ULP)的處理MPA是一種分段協(xié)議,它使用一種通用的分段機制為TCP提供確定方法服務(wù),以保證上層協(xié)議DDP不會誤解嵌入控制流的應(yīng)用數(shù)據(jù)2.2RDMA數(shù)據(jù)操作方法3RDMA協(xié)議為遠(yuǎn)端直接數(shù)據(jù)緩存提供7種類型的控制操作除了遠(yuǎn)端緩沖區(qū)讀取操作之外,每一種RDMA控制操作都只產(chǎn)生一個對應(yīng)的RDMA消息1)Send:發(fā)送操作使用Send消息將發(fā)送方應(yīng)用的數(shù)據(jù)直接發(fā)送到數(shù)據(jù)接收方應(yīng)用尚未明確聲明的緩沖區(qū)中,故Send消息使用的是DP的無標(biāo)記的緩沖區(qū)數(shù)據(jù)傳遞模型,將上層應(yīng)用消息傳遞到接收方應(yīng)用的無標(biāo)記隊列式緩沖區(qū)中,2) Send with Invalidate:在Send基礎(chǔ)上,加了一個導(dǎo)航標(biāo)記Stag.當(dāng)該消息緩存在Stag所指定對端應(yīng)用緩沖區(qū)中,并將消息到達(dá)通知傳達(dá)給接收方應(yīng)用后,接收方應(yīng)用就再不允許發(fā)送方應(yīng)用介入該緩沖區(qū),直到接收方應(yīng)用重新聲明該緩沖區(qū)可用后才可以供發(fā)送方應(yīng)用繼續(xù)使用3) Send with Solicited Event( Send with SE):該消息用來將發(fā)送方應(yīng)用的數(shù)據(jù)直接發(fā)送到數(shù)據(jù)接收方應(yīng)用的無標(biāo)記隊列式緩沖區(qū)中,具備Send所有的功能同時增加對消息的反饋,4) Send with Solicited Event and Invalidate( Send with se and Invalidate):該消息所對應(yīng)的操作是將發(fā)送方應(yīng)用的數(shù)據(jù)直接發(fā)送到數(shù)據(jù)接收方應(yīng)用尚未明確聲明的緩沖區(qū)中,具備 Send with se所有的功能同時增加對消息的反饋終S) Remote Direct Memory Access Write:對應(yīng)于RDMA寫操作,用來將發(fā)送方應(yīng)用的數(shù)據(jù)傳遞到接收方應(yīng)用已聲明的緩沖區(qū)中在這個操作中,接收方應(yīng)用事先應(yīng)該己經(jīng)分配出帶標(biāo)記的應(yīng)用接收緩沖區(qū),并允許發(fā)送方應(yīng)用直接進(jìn)行緩沖區(qū)寫操作,同時,發(fā)送方應(yīng)用還在聲明中得到了上述緩沖區(qū)的位置大小和相應(yīng)的Stag等信息之后發(fā)送方應(yīng)用開始發(fā)起RDMA寫操作,該操作使用DDP的帶標(biāo)記的緩沖區(qū)數(shù)據(jù)傳遞模型,將發(fā)送方應(yīng)用的消息直接傳遞到接收方應(yīng)用所聲明的帶標(biāo)記緩沖區(qū)中6) Remote direct Memory Access Read:對應(yīng)于RDMA讀操作,將對端(對應(yīng)于數(shù)據(jù)源)帶標(biāo)記應(yīng)用緩沖區(qū)的數(shù)據(jù)傳遞到本地(對應(yīng)于數(shù)據(jù)接收方)的帶標(biāo)記應(yīng)用緩沖區(qū),數(shù)據(jù)源的上層應(yīng)用首先需要事先分配出帶標(biāo)記的應(yīng)用緩沖區(qū),并允許對該緩沖區(qū)內(nèi)容直接進(jìn)行讀操作,同時,數(shù)據(jù)源上層應(yīng)用還要將待聲明的數(shù)據(jù)源緩沖區(qū)的位置、大小和相應(yīng)的Stag等信息傳遞到本地上層應(yīng)用,數(shù)據(jù)接收方上層應(yīng)用在得到上述聲明后,分配相應(yīng)的帶標(biāo)記應(yīng)用緩沖區(qū),開始從對端讀取數(shù)據(jù)操作7) Terminate:終止操作使用 Terminate消息將本地發(fā)生的錯誤信息通知給對端應(yīng)用,以終止當(dāng)前數(shù)據(jù)直接緩存操作,終止操作使用DDP的無標(biāo)記緩沖區(qū)模型將 Terminate傳遞到對端的無標(biāo)記緩沖區(qū)3RDMA在數(shù)據(jù)傳輸中的應(yīng)用RDMA技術(shù)從誕生以來,在有主機端LO瓶頸問題的H中國煤化工并取得應(yīng)有的效果如:與TOE結(jié)合的傳統(tǒng)以太網(wǎng)、高速集群和服務(wù)區(qū)域網(wǎng)等等CNMHG Infiniband網(wǎng)絡(luò)3.1以太網(wǎng)RDMA的優(yōu)勢在于可利用傳統(tǒng)的網(wǎng)絡(luò)硬件,以 TCP/AIP及以太網(wǎng)絡(luò)標(biāo)準(zhǔn)來建立因特網(wǎng),RDMA將被用來把小型服務(wù)器連接為一個群集,可以處理現(xiàn)今一些十幾個處理器的高端服務(wù)器才能夠處理的大188沈陽師范大學(xué)學(xué)報自然科學(xué)版)第24卷型數(shù)據(jù)庫3.2分布式數(shù)據(jù)處理中的應(yīng)用使用RDMA來獲得高性能的協(xié)議,包括SDP( Sockets direct Protocol),SRP( SCSI RDMA Protocol)Fu DAFS(Direct Access File System使用RDMA的通信庫包括 DAPL(Direct Access Provider Library)、MPI( Message Passing Interface)FA VIPL(Virtual Interface Provider Library)RDMA技術(shù)首先在運行分布式應(yīng)用的集群上,通過DAPL或VIPL使用RDMA,運行于集群上的數(shù)據(jù)庫軟件在相同的節(jié)點數(shù)的情況下,能夠擴展得更好,并能夠獲得更高的性能采用MPI的集群科學(xué)計算應(yīng)用也能夠通過RDMA獲得驚人的性能改進(jìn),諸如低延遲、低費用和高吞吐量另一個較早的基于RDMA的應(yīng)用是通過DAFS進(jìn)行遠(yuǎn)程文件服務(wù)訪問和刀片式服務(wù)器通過SRP的存儲訪問3.3NAs和SAN中的應(yīng)用傳統(tǒng)的直接連接存儲DAS( Direct Access Storage是以服務(wù)器為中心的存儲結(jié)構(gòu).這一存儲體系結(jié)構(gòu)存在容量限制、連接距離有限、不易于共享和管理等不可克服的缺點,已經(jīng)不能夠滿足網(wǎng)絡(luò)時代的應(yīng)用需求網(wǎng)絡(luò)時代的到來使存儲技術(shù)發(fā)生了巨大變化,網(wǎng)絡(luò)附加存儲NAS( Network Attatched Storage)存儲區(qū)域網(wǎng)絡(luò)SAN( Storage Area Network)既能為網(wǎng)絡(luò)上的應(yīng)用系統(tǒng)提供豐富快速、簡便的存儲資源;又能共享存儲資源并對其實施集中管理,成為當(dāng)今理想的存儲管理和應(yīng)用模式NAS結(jié)構(gòu)存在一些難以解決的問題.如傳輸能力有限、可擴展性有限數(shù)據(jù)備份能力有限并且不能對數(shù)據(jù)庫服務(wù)提供有效的支持DAFS把RDMA的優(yōu)點和NAS的存儲能力集成在一起,全部讀寫操作都直接通過RDMA驅(qū)動器執(zhí)行,從而降低了網(wǎng)絡(luò)文件協(xié)議所帶來的系統(tǒng)負(fù)載,3.4 InfiniBand中的應(yīng)用InfiniBand的4大優(yōu)點:基于標(biāo)準(zhǔn)的協(xié)議,10GB/s性能,RDMA和傳輸卸載優(yōu)勢在于RDMA、傳輸卸載、高速度, InfiniBand網(wǎng)絡(luò)和采用虛擬接口架構(gòu)的網(wǎng)絡(luò)支持RDMA,使用具有傳輸卸載引擎的NlC的 RDMA over TCP/P支持 InfiniBand的服務(wù)器使用主機通道適配器(HCA)把協(xié)議轉(zhuǎn)換到服務(wù)器內(nèi)部的PCIX或者PC- Xpress總線RDMA中實現(xiàn)零拷貝技術(shù),使主機端的IO瓶頸被打破,滿足了高速網(wǎng)絡(luò)發(fā)展的需要,但是作為新興技術(shù),它在很多方面還有待進(jìn)一步加強,比如:RDMA協(xié)議標(biāo)準(zhǔn)化;需要下層提供高速可靠的連接,否則RDMA毫無意義;需要對現(xiàn)有的網(wǎng)絡(luò)接口進(jìn)行改造,由NIC改造為RNIC等等RDMA技術(shù)在網(wǎng)絡(luò)存儲中有著廣闊的應(yīng)用前景,隨著RDMA技術(shù)逐漸成熟,它會為不斷發(fā)展的高速網(wǎng)絡(luò)作出不可缺少的貢獻(xiàn)參考文獻(xiàn):1]王佰玲,方濱興,云曉春.零拷貝報文捕獲平臺的研究與實現(xiàn)[J].計算機學(xué)報,2005,25(8):4652[2] ORBET J, GREG KH, RUBTNI A. Linux設(shè)備驅(qū)動程序[M].3版.北京:中國電力出版社,2006[3] PINKERTON J. RDMA Protocol offload: leveraging the Ethernet Infrastructure[C]. Inter Developer Forum, 2003Research and application of RDMA TechnologyLIU Tian-hua, ZHU Hong-feng, DU Mei, CHANG Gui-ran2(1. School of Software, Shenyang Normal University, Shenyang 110034, China2. College of Information Science and Engineering, Northeastern University, Shenyang 110004, ChinaAbstract: According to analysis of working principle and its implementation of RDMA technology, together with someapplications, we describe the importance and generality of RDMa when中國煤化工and application layer.Key words: RDMA; TOE; StagCNMHG
-
C4烯烴制丙烯催化劑 2020-06-12
-
煤基聚乙醇酸技術(shù)進(jìn)展 2020-06-12
-
生物質(zhì)能的應(yīng)用工程 2020-06-12
-
我國甲醇工業(yè)現(xiàn)狀 2020-06-12
-
石油化工設(shè)備腐蝕與防護(hù)參考書十本免費下載,絕版珍藏 2020-06-12
-
四噴嘴水煤漿氣化爐工業(yè)應(yīng)用情況簡介 2020-06-12
-
Lurgi和ICI低壓甲醇合成工藝比較 2020-06-12
-
甲醇制芳烴研究進(jìn)展 2020-06-12
-
精甲醇及MTO級甲醇精餾工藝技術(shù)進(jìn)展 2020-06-12
