RDMA學習筆記

2021-08-30 11:30:02 字數 1225 閱讀 1004

三種實現為 :infiniband,roce,iwrp

infiniband是一種專為rdma設計的網路,從硬體級別保證可靠傳輸 , 而roce 和 iwarp都是基於乙太網的rdma技術

roce協議存在rocev1和rocev2兩個版本,主要區別rocev1是基於乙太網鏈路層實現的rdma協議(交換機需要支援pfc等流控技術,在物理層保證可靠傳輸),而rocev2是乙太網tcp/ip協議中udp層實現。

rdma read (a read b)

(1)首先a、b建立連線,qp已經建立並且初始化。

(2) 資料被存檔在b的buffer位址vb,注意vb應該提前註冊到b的rnic (並且它是乙個memory region) ,並拿到返回的local key,相當於rdma操作這塊buffer的許可權。

(3) b把資料位址vb,key封裝到專用的報文傳送到a,這相當於b把資料buffer的操作權交給了a。同時b在它的wq中註冊進乙個wr,以用於接收資料傳輸的a返回的狀態。

(4) a在收到b的送過來的資料vb和r_key後,rnic會把它們連同自身儲存位址va到封裝rdma read請求,將這個訊息請求傳送給b,這個過程a、b兩端不需要任何軟體參與,就可以將b的資料儲存到a的va虛擬位址。

(5)a在儲存完成後,會向b返回整個資料傳輸的狀態資訊。

rdma write(a write to b)

與read基本相同

單邊操作適合批量資料傳輸

rdma send/receive

send/receive多用於連線控制類報文,而資料報文多是通過read/write來完成的。

對於雙邊操作為例,主機a向主機b(下面簡稱a、b)傳送資料的流程如下:

(1) 首先,a和b都要建立並初始化好各自的qp,cq

(2) a和b分別向自己的wq中註冊wqe,對於a,wq=sq,wqe描述指向乙個等到被傳送的資料;對於b,wq=rq,wqe描述指向一塊用於儲存資料的buffer。

(3) a的rnic非同步排程輪到a的wqe,解析到這是乙個send訊息,從buffer中直接向b發出資料。資料流到達b的rnic後,b的wqe被消耗,並把資料直接儲存到wqe指向的儲存位置。

(4)ab通訊完成後,a的cq中會產生乙個完成訊息cqe表示傳送完成。與此同時,b的cq中也會產生乙個完成訊息表示接收完成。每個wq中wqe的處理完成都會產生乙個cqe。

雙邊操作實際上對於rdma,這是一種複雜的訊息傳輸模式,多用於傳輸短的控制訊息。

學習筆記 RDMA技術下篇

傳統上的rdma技術設計核心封裝多層網路協議並且涉及核心資料傳輸。rdma通過專有的rdma網絡卡rnic,繞過核心直接從使用者空間訪問rdma enabled nic網絡卡。rdma提供乙個專有的verbs inte ce而不是傳統的tcp ip socket inte ce。要使用rdma首先要...

rdma程式設計

在分布式應用中,用乙太網組網往往成為效能的瓶頸,所以需要低時延大頻寬,使用rdma傳輸協議,能滿足低時延要求。目前有兩張硬體可以使用rdma傳輸,乙個是infiniband,乙個是rdma over ethernet,由於ib的成本較高,所以roce成為一種趨勢。roce可以在乙太網上執行rdma協...

RDMA原理剖析

dma 直接記憶體訪問 direct memory access dma模式可以同dma engine之間通過硬體將資料從buffer 1移動到buffer 2,允許計算機主機板上的裝置直接把資料傳送到記憶體中去,而不需要cpu參與操作,大大降低了cpu copy的開銷。傳統tcp ip技術在資料報...