400-638-8808
|
微信公眾號





穩(wěn)定可靠 永不間斷

海外收發(fā) 暢通無阻

協(xié)同辦公 資源管理

超大郵件 超級功能

智能反垃圾郵件技術(shù)
易管理 免維護


面對高性能計算、大數(shù)據(jù)分析和浪涌型IO高并發(fā)、低時延應(yīng)用,現(xiàn)有TCP/IP軟硬件架構(gòu)和應(yīng)用高CPU消耗的技術(shù)特征根本不能滿足應(yīng)用的需求。這要有體現(xiàn)在處理延時過大,數(shù)十微秒;多次內(nèi)存拷貝、中斷處理,上下文切換、復(fù)雜的TCP/IP協(xié)議處理、網(wǎng)絡(luò)延時過大、存儲轉(zhuǎn)發(fā)模式和丟包導(dǎo)致額外延時。接下來我們繼續(xù)討論RDMA技術(shù)、原理和優(yōu)勢,看完文章你就會發(fā)現(xiàn)為什么RDMA可以更好的解決這一系列問題。

RDMA是一種遠端內(nèi)存直接訪問技術(shù),詳細介紹請參看RDMA(遠程直接內(nèi)存訪問)技術(shù)淺析文章。RDMA最早專屬于Infiniband架構(gòu),隨著在網(wǎng)絡(luò)融合大趨勢下出現(xiàn)的RoCE和iWARP,這使高速、超低延時、極低CPU使用率的RDMA得以部署在目前使用最廣泛的以太網(wǎng)上。
RDMAC(RDMA Consortium)和IBTA(InfiniBand Trade Association)主導(dǎo)了RDMA發(fā)展,RDMAC是IETF的一個補充并主要定義的是iWRAP和iSER,IBTA是infiniband的全部標(biāo)準制定者,并補充了RoCE v1 v2的標(biāo)準化。IBTA解釋了RDMA傳輸過程中應(yīng)具備的特性行為,而傳輸相關(guān)的Verbs接口和數(shù)據(jù)結(jié)構(gòu)原型是由另一個組織OFA(Open Fabric Alliance)來完成。
相比傳統(tǒng)DMA的內(nèi)部總線IO,RDMA通過網(wǎng)絡(luò)在兩個端點的應(yīng)用軟件之間實現(xiàn)Buffer的直接傳遞;相比比傳統(tǒng)的網(wǎng)絡(luò)傳輸,RDMA又無需操作系統(tǒng)和協(xié)議棧的介入。RDMA可以輕易實現(xiàn)端點間的超低延時、超高吞吐量傳輸,而且基本不需要CPU、OS等資源介入,也不必再為網(wǎng)絡(luò)數(shù)據(jù)的處理和搬移耗費過多其他資源。

InfiniBand通過以下技術(shù)保證網(wǎng)絡(luò)轉(zhuǎn)發(fā)的低時延(亞微秒級),采用Cut-Through轉(zhuǎn)發(fā)模式,減少轉(zhuǎn)發(fā)時延;基于Credit的流控機制,保證無丟包;硬件卸載;Buffer盡可能小,減少報文被緩沖的時延 。

iWARP(RDMA over TCP/IP) 利用成熟的IP網(wǎng)絡(luò);繼承RDMA的優(yōu)點;TCP/IP硬件實現(xiàn)成本高,但如果采用傳統(tǒng)IP網(wǎng)絡(luò)丟包對性能影響大。
RoCE性能與IB網(wǎng)絡(luò)相當(dāng);DCB特性保證無丟包;需要以太網(wǎng)支持DCB特性;以太交換機時延比IB交換機時延要稍高一些。

RoCEv2針對RoCE進行了一些改進,如引入IP解決擴展性問題,可以跨二層組網(wǎng);引入UDP解決ECMP負載分擔(dān)等問題。

基于InfiniBand的RDMA是在2000年發(fā)布規(guī)范,屬于原生RDMA;基于TCP/IP的RDMA稱作iWARP,在 2007年形成標(biāo)準,主要包括MPA/ DDP/ RDMAP三層子協(xié)議;基于Ethernet的RDMA叫做RoCE,在2010年發(fā)布協(xié)議,基于增強型以太網(wǎng)并將傳輸層換成IB傳輸層實現(xiàn)。
擴展RDMA API接口以兼容現(xiàn)有協(xié)議/應(yīng)用,OFED(Open Fabrics Enterprise Distribution)協(xié)議棧由OpenFabric聯(lián)盟發(fā)布,分為Linux和windows版本,可以無縫兼容已有應(yīng)用。通過使已有應(yīng)用與RDMA結(jié)合后,性能成倍提升。

應(yīng)用和RNIC(RDMA-aware Network Interface Controller)之間的傳輸接口層(Software Transport Interface)被稱為Verbs。OFA(Open Fabric Alliance)提供了RDMA傳輸?shù)囊幌盗蠽erbs API,開發(fā)了OFED(Open Fabric Enterprise Distribution)協(xié)議棧,支持多種RDMA傳輸層協(xié)議。
OFED向下除了提供RNIC(實現(xiàn) RDMA 和LLP( Lower Layer Protocol))基本的隊列消息服務(wù)外,向上還提供了ULP(Upper Layer Protocols),通過ULP上層應(yīng)用不需直接和Verbs API對接,而是借助于ULP與應(yīng)用對接,這樣使得常見的應(yīng)用不需要做修改就可以跑在RDMA傳輸層上。
在Infiniband/RDMA的模型中,核心是如何實現(xiàn)應(yīng)用之間最簡單、高效和直接的通信。RDMA提供了基于消息隊列的點對點通信,每個應(yīng)用都可以直接獲取自己的消息,無需操作系統(tǒng)和協(xié)議棧的介入。
消息服務(wù)建立在通信雙方本端和遠端應(yīng)用之間創(chuàng)建的Channel-IO連接之上。當(dāng)應(yīng)用需要通信時,就會創(chuàng)建一條Channel連接,每條Channel的首尾端點是兩對Queue Pairs(QP),每對QP由Send Queue(SQ)和Receive Queue(RQ)構(gòu)成,這些隊列中管理著各種類型的消息。QP會被映射到應(yīng)用的虛擬地址空間,使得應(yīng)用直接通過它訪問RNIC網(wǎng)卡。除了QP描述的兩種基本隊列之外,RDMA還提供一種隊列Complete Queue(CQ),CQ用來知會用戶WQ上的消息已經(jīng)被處理完。

RDMA提供了一套軟件傳輸接口,方便用戶創(chuàng)建傳輸請求Work Request(WR),WR中描述了應(yīng)用希望傳輸?shù)紺hannel對端的消息內(nèi)容,WR通知QP中的某個隊列Work Queue(WQ)。在WQ中,用戶的WR被轉(zhuǎn)化為Work Queue Ellement(WQE)的格式,等待RNIC的異步調(diào)度解析,并從WQE指向的Buffer中拿到真正的消息發(fā)送到Channel對端。
RDMA中SEND/RECEIVE是雙邊操作,即必須要遠端的應(yīng)用感知參與才能完成收發(fā)。READ和WRITE是單邊操作,只需要本端明確信息的源和目的地址,遠端應(yīng)用不必感知此次通信,數(shù)據(jù)的讀或?qū)懚纪ㄟ^RDMA在RNIC與應(yīng)用Buffer之間完成,再由遠端RNIC封裝成消息返回到本端。在實際中,SEND /RECEIVE多用于連接控制類報文,而數(shù)據(jù)報文多是通過READ/WRITE來完成的。
對于雙邊操作為例,主機A向主機B(下面簡稱A、B)發(fā)送數(shù)據(jù)的流程如下
1. 首先,A和B都要創(chuàng)建并初始化好各自的QP,CQ
2. A和B分別向自己的WQ中注冊WQE,對于A,WQ=SQ,WQE描述指向一個等到被發(fā)送的數(shù)據(jù);對于B,WQ=RQ,WQE描述指向一塊用于存儲數(shù)據(jù)的Buffer。
3. A的RNIC異步調(diào)度輪到A的WQE,解析到這是一個SEND消息,從Buffer中直接向B發(fā)出數(shù)據(jù)。數(shù)據(jù)流到達B的RNIC后,B的WQE被消耗,并把數(shù)據(jù)直接存儲到WQE指向的存儲位置。
4.AB通信完成后,A的CQ中會產(chǎn)生一個完成消息CQE表示發(fā)送完成。與此同時,B的CQ中也會產(chǎn)生一個完成消息表示接收完成。每個WQ中WQE的處理完成都會產(chǎn)生一個CQE。
雙邊操作與傳統(tǒng)網(wǎng)絡(luò)的底層Buffer Pool類似,收發(fā)雙方的參與過程并無差別,區(qū)別在零拷貝、Kernel Bypass,實際上對于RDMA,這是一種復(fù)雜的消息傳輸模式,多用于傳輸短的控制消息。
對于單邊操作,以存儲網(wǎng)絡(luò)環(huán)境下的存儲為例(A作為文件系統(tǒng),B作為存儲介質(zhì)),數(shù)據(jù)的流程如下
1. 首先A、B建立連接,QP已經(jīng)創(chuàng)建并且初始化。
2. 數(shù)據(jù)被存檔在A的buffer地址VA,注意VA應(yīng)該提前注冊到A的RNIC,并拿到返回的local key,相當(dāng)于RDMA操作這塊buffer的權(quán)限。
3. A把數(shù)據(jù)地址VA,key封裝到專用的報文傳送到B,這相當(dāng)于A把數(shù)據(jù)buffer的操作權(quán)交給了B。同時A在它的WQ中注冊進一個WR,以用于接收數(shù)據(jù)傳輸?shù)腂返回的狀態(tài)。
4. B在收到A的送過來的數(shù)據(jù)VA和R_key后,RNIC會把它們連同存儲地址VB到封裝RDMA READ,這個過程A、B兩端不需要任何軟件參與,就可以將A的數(shù)據(jù)存儲到B的VB虛擬地址。
5. B在存儲完成后,會向A返回整個數(shù)據(jù)傳輸?shù)臓顟B(tài)信息。
單邊操作傳輸方式是RDMA與傳統(tǒng)網(wǎng)絡(luò)傳輸?shù)淖畲蟛煌恍杼峁┲苯釉L問遠程的虛擬地址,無須遠程應(yīng)用的參與其中,這種方式適用于批量數(shù)據(jù)傳輸。
簡單總結(jié)
Infiniband的成功取決于兩個因素,一是主機側(cè)采用RDMA技術(shù),可以把主機內(nèi)數(shù)據(jù)處理的時延從幾十微秒降低到幾微秒,同時不占用CPU;二是InfiniBand網(wǎng)絡(luò)的采用高帶寬(40G/56G)、低時延(幾百納秒)和無丟包特性
隨著以太網(wǎng)的發(fā)展,也具備高帶寬和無丟包能力,在時延方面也能接近InfiniBand交換機的性能,所以RDMA over Ethernet(RoCE)成為必然,且RoCE組網(wǎng)成本更低。未來RoCE、iWARP和Infiniband等基于RDMA技術(shù)產(chǎn)品都會得到長足的發(fā)展。
(來源:微信公眾號 架構(gòu)師技術(shù)聯(lián)盟、作者:Hardy/)
產(chǎn)品與服務(wù)
香港服務(wù)器 香港高防服務(wù)器 美國服務(wù)器 韓國服務(wù)器 新加坡服務(wù)器 日本服務(wù)器 臺灣服務(wù)器云服務(wù)器
香港云主機 美國云主機 韓國云主機 新加坡云主機 臺灣云主機 日本云主機 德國云主機 全球云主機高防專線
海外高防IP 海外無限防御 SSL證書 高防CDN套餐 全球節(jié)點定制 全球?qū)>GPLC關(guān)于我們
關(guān)于天下數(shù)據(jù) 數(shù)據(jù)招商加盟 天下數(shù)據(jù)合作伙伴 天下數(shù)據(jù)團隊建設(shè) 加入天下數(shù)據(jù) 媒體報道 榮譽資質(zhì) 付款方式關(guān)注我們
微信公眾賬號
新浪微博
天下數(shù)據(jù)手機站 關(guān)于天下數(shù)據(jù) 聯(lián)系我們 誠聘英才 付款方式 幫助中心 網(wǎng)站備案 解決方案 域名注冊 網(wǎng)站地圖
天下數(shù)據(jù)18年專注海外香港服務(wù)器、美國服務(wù)器、海外云主機、海外vps主機租用托管以及服務(wù)器解決方案-做天下最好的IDC服務(wù)商
《中華人民共和國增值電信業(yè)務(wù)經(jīng)營許可證》 ISP證:粵ICP備07026347號
朗信天下發(fā)展有限公司(控股)深圳市朗玥科技有限公司(運營)聯(lián)合版權(quán)
深圳總部:中國.深圳市南山區(qū)深圳國際創(chuàng)新谷6棟B座10層 香港總部:香港上環(huán)蘇杭街49-51號建安商業(yè)大廈7樓
7×24小時服務(wù)熱線:4006388808香港服務(wù)電話:+852 67031102
本網(wǎng)站的域名注冊業(yè)務(wù)代理北京新網(wǎng)數(shù)碼信息技術(shù)有限公司的產(chǎn)品