RDMA對(duì)于NVMe over Fabrics協(xié)議的便利性體現(xiàn)在下面幾個(gè)方面:

RDMA依據(jù)底層的不同,可進(jìn)一步分成InfiniBand,RoCE和iWarp。它們的區(qū)別主要是底層實(shí)現(xiàn)協(xié)議的不同。其中InfiniBand需要依賴(lài)于專(zhuān)用的InfiniBand網(wǎng)絡(luò),因此可以提供非常好的服務(wù)質(zhì)量,而RoCE和iWarp則可以基于以太網(wǎng)絡(luò),并使用專(zhuān)用的RDMA NIC和Switch來(lái)實(shí)現(xiàn)高服務(wù)質(zhì)量。RoCE的兩個(gè)版本中,v2依賴(lài)于UDP/IP協(xié)議提供了在局域網(wǎng)中靈活的路由和擁塞控制功能;iWarp則是基于TCP協(xié)議提供了更加靈活的網(wǎng)絡(luò)互聯(lián)方式。

 

在各種RDMA中,定義了硬件操作的基本原語(yǔ)。在軟件層面,需要執(zhí)行RDMA操作的命令按照硬件制定的方式組織成命令請(qǐng)求項(xiàng),并添加到位于內(nèi)存中的工作隊(duì)列中。硬件再依次從這些隊(duì)列中取出命令開(kāi)始執(zhí)行;命令的執(zhí)行結(jié)果會(huì)記錄到一個(gè)完成隊(duì)列中,這個(gè)完成隊(duì)列也是處于內(nèi)存中的,因此可以為軟件層面感知到并進(jìn)行后續(xù)處理。

由于RDMA底層實(shí)現(xiàn)可以使用任意一中接口方式實(shí)現(xiàn)詳盡的功能,在每種協(xié)議背后又有眾多的廠商支持,為了統(tǒng)一應(yīng)用接口,便于軟件開(kāi)發(fā)人員理解和使用RDMA,每種RDMA協(xié)議定義了Verbs用于異步操作實(shí)現(xiàn)RDMA的語(yǔ)義。Verbs是一種比API更加底層的編程方式,根據(jù)使用方式的不同,可分為兩類(lèi):

1、 控制路徑Verbs,用于管理RDMA的資源,通常需要上下文切換。例如Create,Destroy,Modify,Query,Work with events。

2、 數(shù)據(jù)路徑Verbs,用于使用Handle來(lái)發(fā)送、接收數(shù)據(jù)的操作,不需要上下文切換。例如Post Send,Post Receive,Poll CQ,Request for completion event。

而對(duì)于RDMA至關(guān)重要的遠(yuǎn)端內(nèi)存空間,在RDMA協(xié)議中是通過(guò)內(nèi)存區(qū)域(MR)來(lái)進(jìn)行描述。定義內(nèi)存區(qū)域?qū)嶋H上就是把這個(gè)虛擬內(nèi)存鎖定到物理內(nèi)存中,并告訴NIC對(duì)應(yīng)的關(guān)系。這樣,依據(jù)MR的Key,NIC硬件可以不依賴(lài)硬件去操作數(shù)據(jù)在本地內(nèi)存和遠(yuǎn)端的MR之間進(jìn)行傳輸。

從上面關(guān)于RDMA的介紹來(lái)看,RDMA設(shè)計(jì)初衷就是為了高性能、低延遲訪(fǎng)問(wèn)遠(yuǎn)端節(jié)點(diǎn)的,并且它的語(yǔ)義非常類(lèi)似本地DMA的過(guò)程,因此很自然就可以將RDMA作為NVMe協(xié)議的載體,實(shí)現(xiàn)基于網(wǎng)絡(luò)的NVMe協(xié)議。但是,畢竟基于網(wǎng)絡(luò)的傳輸模型與本地的PCIe傳輸模型還有種種差異,因此將NVMe協(xié)議拓展到互聯(lián)層面需要解決一系列問(wèn)題。

因此,綜合RDMA,F(xiàn)C等等各種不同傳輸層協(xié)議的特點(diǎn),NVM Express Inc.提出了NVMe over Fabrics協(xié)議實(shí)現(xiàn)了一個(gè)完整的網(wǎng)絡(luò)高效存儲(chǔ)協(xié)議。需要注意的是,NVMe over Fabrics協(xié)議的基礎(chǔ)是NVMe Base specification,目前特指的版本是NVM Express revision 1.2.1。

本文作者路向峰現(xiàn)任Memblaze公司CTO,文章最先發(fā)布于公眾號(hào)晶格思維(crystalwit)。該系列文章將從NVMe over Fabrics的誕生背景及技術(shù)細(xì)節(jié)入手,向讀者全面解析當(dāng)下存儲(chǔ)領(lǐng)域這一熱門(mén)話(huà)題。文章后續(xù)部分將陸續(xù)發(fā)布于本公眾號(hào),讀者亦可掃描下面二維碼關(guān)注晶格思維公眾號(hào)閱讀原文。

分享到

zhupb

相關(guān)推薦