在NVMe over Fabrics協(xié)議誕生之前,基于SCSI的眾多互聯(lián)協(xié)議已經(jīng)在考慮如何改善系統(tǒng)性能并降低CPU的負(fù)擔(dān)了。iSCSI協(xié)議提供了基于IP以太網(wǎng)的SCSI互聯(lián)協(xié)議,它僅僅依賴傳統(tǒng)的IP網(wǎng)絡(luò),提供了可共享的存儲(chǔ)方式。由于iSCSI依賴于TCP協(xié)議,并且TCP協(xié)議本身代價(jià)較大,因此它的性能在通常的配置下并不好。為了優(yōu)化iSCSI的性能,擴(kuò)展了iSCSI Extensions for RDMA (iSER)。
iSER是面向各種RDMA傳輸層協(xié)議的存儲(chǔ)協(xié)議,由于RDMA效率很高,iSER相比于iSCSI協(xié)議來說具有非常好的性能、極低的延遲和CPU使用率。但是由于iSER仍然是基于SCSI這個(gè)存儲(chǔ)協(xié)議進(jìn)行擴(kuò)展的,因此在協(xié)議棧的組織上仍然受限于SCSI協(xié)議的限制,例如隊(duì)列的數(shù)量、深度等。在性能達(dá)到幾十萬IOPS的時(shí)候仍然會(huì)有較大的協(xié)議開銷?;谏鲜鲈蚝统鲇趯?duì)未來NVM存儲(chǔ)功能要求的需要,NVMe over Fabrics協(xié)議應(yīng)運(yùn)而生。
NVMe over Fabrics協(xié)議定義了使用各種通用的傳輸層協(xié)議來實(shí)現(xiàn)NVMe功能的方式。在協(xié)議中所指的傳輸層包括了RDMA,F(xiàn)iber Channel,PCIe Fabrics等實(shí)現(xiàn)方式。依據(jù)具體的傳輸層不同,又有不同的傳輸層綁定協(xié)議去具體規(guī)范每一種互聯(lián)網(wǎng)絡(luò)所具體需要實(shí)現(xiàn)的傳輸轉(zhuǎn)換層實(shí)現(xiàn)。例如,INCITS 540 Fibre Channel – Non-Volatile Memory Express (FC-NVMe)規(guī)定了對(duì)于FiberChannel這種媒體所支持NVMe over Fabrics所必需實(shí)現(xiàn)的接口方式。
由于NVMe over Fabrics協(xié)議的這種靈活性,它可以非常方便地生長在各個(gè)主流的傳輸層協(xié)議中。不過由于不同的互聯(lián)協(xié)議本身的特點(diǎn)不同,因此基于各種協(xié)議的NVMe over Fabrics的具體實(shí)現(xiàn)活躍都是不同的。一些協(xié)議本身的協(xié)議開銷較大,另一些需要專用的硬件網(wǎng)絡(luò)設(shè)備,客觀上限制了NVMe over Fabrics協(xié)議在其中的推廣。下表列出了一些典型的協(xié)議的優(yōu)缺點(diǎn)。
雖然有著眾多可以選擇的互聯(lián)方式,這些互聯(lián)方式按照接口類型可分成三類:內(nèi)存型接口,消息型接口和消息內(nèi)存混合型接口。相應(yīng)的互聯(lián)類型和例子參見下圖。
本文作者路向峰現(xiàn)任Memblaze公司CTO,文章最先發(fā)布于公眾號(hào)晶格思維(crystalwit)。該系列文章將從NVMe over Fabrics的誕生背景及技術(shù)細(xì)節(jié)入手,向讀者全面解析當(dāng)下存儲(chǔ)領(lǐng)域這一熱門話題。文章后續(xù)部分將陸續(xù)發(fā)布于本公眾號(hào),讀者亦可掃描下面二維碼關(guān)注晶格思維公眾號(hào)閱讀原文。