在NVMe over Fabrics協(xié)議誕生之前,基于SCSI的眾多互聯(lián)協(xié)議已經在考慮如何改善系統(tǒng)性能并降低CPU的負擔了。iSCSI協(xié)議提供了基于IP以太網(wǎng)的SCSI互聯(lián)協(xié)議,它僅僅依賴傳統(tǒng)的IP網(wǎng)絡,提供了可共享的存儲方式。由于iSCSI依賴于TCP協(xié)議,并且TCP協(xié)議本身代價較大,因此它的性能在通常的配置下并不好。為了優(yōu)化iSCSI的性能,擴展了iSCSI Extensions for RDMA (iSER)。

iSER是面向各種RDMA傳輸層協(xié)議的存儲協(xié)議,由于RDMA效率很高,iSER相比于iSCSI協(xié)議來說具有非常好的性能、極低的延遲和CPU使用率。但是由于iSER仍然是基于SCSI這個存儲協(xié)議進行擴展的,因此在協(xié)議棧的組織上仍然受限于SCSI協(xié)議的限制,例如隊列的數(shù)量、深度等。在性能達到幾十萬IOPS的時候仍然會有較大的協(xié)議開銷?;谏鲜鲈蚝统鲇趯ξ磥鞱VM存儲功能要求的需要,NVMe over Fabrics協(xié)議應運而生。

NVMe over Fabrics協(xié)議定義了使用各種通用的傳輸層協(xié)議來實現(xiàn)NVMe功能的方式。在協(xié)議中所指的傳輸層包括了RDMA,F(xiàn)iber Channel,PCIe Fabrics等實現(xiàn)方式。依據(jù)具體的傳輸層不同,又有不同的傳輸層綁定協(xié)議去具體規(guī)范每一種互聯(lián)網(wǎng)絡所具體需要實現(xiàn)的傳輸轉換層實現(xiàn)。例如,INCITS 540 Fibre Channel – Non-Volatile Memory Express (FC-NVMe)規(guī)定了對于FiberChannel這種媒體所支持NVMe over Fabrics所必需實現(xiàn)的接口方式。

由于NVMe over Fabrics協(xié)議的這種靈活性,它可以非常方便地生長在各個主流的傳輸層協(xié)議中。不過由于不同的互聯(lián)協(xié)議本身的特點不同,因此基于各種協(xié)議的NVMe over Fabrics的具體實現(xiàn)活躍都是不同的。一些協(xié)議本身的協(xié)議開銷較大,另一些需要專用的硬件網(wǎng)絡設備,客觀上限制了NVMe over Fabrics協(xié)議在其中的推廣。下表列出了一些典型的協(xié)議的優(yōu)缺點。

雖然有著眾多可以選擇的互聯(lián)方式,這些互聯(lián)方式按照接口類型可分成三類:內存型接口,消息型接口和消息內存混合型接口。相應的互聯(lián)類型和例子參見下圖。

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

分享到

zhupb

相關推薦