詳解:什么是NVMe over Fabrics?
上文:詳解:什么是NVMe?
自NVM Express工作組發(fā)布第一個版本的NVMe標準以來,已經過去了將近十年,NVMe也越來越多地應用到固態(tài)存儲中。但是,NVMe本身有一定的局限性,它最適合的是服務器內或直接連接存儲的設備連接。而企業(yè)需要的是通過網絡無縫連接閃存,釋放性能優(yōu)勢,并取代傳統的以磁盤為中心的SAN技術,例如iSCSI和光纖通道。NVMe-over-Fabrics(NVMe-oF)的出現就是為了做到這一點。
什么是NVMe over Fabrics?
NVMe over Fabrics也稱為NVMe-oF,它是一個相對較新的協議規(guī)范,旨在使用NVMe通過網絡結構將主機連接到存儲。NVMe over Fabrics協議定義了使用各種通用的傳輸層協議來實現NVMe功能的方式。
在NVMe誕生之前,數據存儲協議可以分為三種:
- iSCSI:iSCSI是基于Internet的存儲網絡標準,用于使用標準以太網電纜傳輸小型計算機系統接口(也稱為SCCI)。速度大約在1GB/s,不過使用高帶寬以太網卡可能可以達到10GB/s或更高。
- SAS:SAS是一種點對點串行協議,通過SAS線纜傳輸數據。通過主機總線適配器可以最多連接128個驅動器,速度范圍從3GB/s,6GB/s,12GB/s到22.5GB/s。
- 光纖通道協議(FCP):FCP是一種使用光纖(或銅纜)電纜傳輸命令的協議。在這種情況下,網絡結構就像一個巨大的交換機,避免了電磁干擾(EMI)問題,速度通常在1到128GB/s。
鑒于上述存儲協議存在性能等各方面的瓶頸,以及出于對未來NVM存儲功能要求的需要,NVMe over Fabrics協議應運而生。NVMe over Fabrics把NVMe協議在單系統時代提供的高性能、低延遲和低協議負擔的優(yōu)勢進一步發(fā)揮到了NVMe存儲系統互連結構中。
NVMe over Fabrics的優(yōu)勢
NVMe-oF在性能、擴展能力、易用性方面都具備優(yōu)勢,包括:
- 網絡延遲低
- 能夠處理并行請求
- 提高和優(yōu)化性能,包括存儲陣列性能
- 減少服務器端OS存儲堆棧的長度
- 高速
- 高度可擴展;
- 支持NVMe主機啟動器與存儲系統之間同時存在多條路徑
能夠一次從許多主機和存儲子系統發(fā)送和接收命令。
NVMe over Fabrics與NVMe
NVMe是運行在某種接口上的通信協議,用于規(guī)范計算機與存儲設備的數據傳輸。與SCSI和SATA協議相比,NVMe標準將訪問時間縮短了幾個數量級。
NVMe支持64,000個隊列,每個隊列深度最多為64,000個命令。所有I/O命令以及隨后的響應均在同一處理器內核上運行,從而將多核處理器置于高度并行狀態(tài)。不需要I/O鎖定,因為每個應用程序線程都有一個專用隊列。
基于NVMe的設備使用PCIe串行擴展插槽進行數據傳輸,這意味著不需要專門的硬件控制器來路由網絡存儲流量。使用NVMe,基于主機的PCIe SSD可以更有效地將數據傳輸到存儲目標或子系統。
NVMe和NVMe over Fabrics之間的主要區(qū)別之一是用于發(fā)送和接收命令或響應的傳輸映射機制。 NVMe-oF使用基于消息的模型在主機和目標存儲設備之間進行通信。NVMe將通過PCIe接口協議將命令和響應映射到主機中的共享內存。
NVMe over Fabric支持把NVMe映射到多個Fabrics傳輸選項,主要包括FC、InfiniBand、RoCE v2、iWARP和TCP。其中InfiniBand、RoCE v2(可路由的RoCE)、iWARP是理想的Fabric,原因在于它們支持RDMA。
- InfiniBand(IB):從一開始就支持RDMA的新一代網絡協議。由于這是一種新的網絡技術,因此需要支持該技術的網卡和交換機。
- RDMA融合以太網(RoCE):一種允許通過以太網進行RDMA的網絡協議。其較低的網絡頭是以太網頭,其上網絡頭(包括數據)是InfiniBand頭。這允許在標準以太網基礎架構(交換機)上使用RDMA。只有NIC應該是特殊的,并支持RoCE。
- 互聯網廣域RDMA協議(iWARP):允許通過TCP執(zhí)行RDMA的網絡協議。在IB和RoCE中存在功能,iWARP不支持這些功能。這允許在標準以太網基礎架構(交換機)上使用RDMA。只有NIC應該是特殊的,并支持iWARP(如果使用CPU卸載),否則所有iWARP堆棧都可以在SW中實現,并且丟失了大部分的RDMA性能優(yōu)勢。
那么為什么支持RDMA在選擇NVMe over Fabric時就具有先天優(yōu)勢?
支持RDMA的NVMe over Fabrics
RDMA是兩臺計算機之間的內存到內存的傳輸機制。數據從一個內存地址空間發(fā)送到另一個內存地址空間,無需調用操作系統或處理器。這樣的優(yōu)勢是開銷低、查詢訪問快、響應時間短,延遲通常以微秒(μs)為單位。
RDMA對于NVMe over Fabrics協議的便利性體現在下面幾個方面:
- 提供了低延遲、低抖動和低CPU使用率的傳輸層協議;
- 最大限度利用硬件加速,避免軟件協議棧的開銷;
- 依賴于開放互聯聯盟組織維護的Verbs和代碼庫,RDMA定義了豐富的可異步訪問的接口機制,這對于提高IO性能是至關重要的。
FC-NVMe(NVMe over Fabrics using Fibre Channel)
光纖通道實現的NVMe(FC-NVMe標準實現)是由國際信息技術標準委員會(INCITS)的T11委員會開發(fā)的。 FC支持在其之上映射其他協議,例如NVMe、SCSI和IBM專有的光纖連接(FICON),以便在主機和目標存儲設備之間發(fā)送數據和命令。
FC-NVMe和第六代FC可以共存于同一基礎設施中,避免了數據中心的叉車升級。
客戶可以使用固件升級現有的FC網絡交換機,前提是主機總線適配器(HBA)支持16 Gbps或32 Gbps FC和具有NVMe-oF-capable存儲目標。
FC協議支持對共享NVMe閃存的訪問,但是將封裝的SCSI命令轉換為NVMe命令會對性能造成影響。光纖通道行業(yè)協會(FCIA)正在推動向后兼容的FC-NVMe實施標準,使單個FC-NVMe適配器支持基于SCSI的磁盤,傳統的SSD和與PCIe連接的NVMe閃存卡。
支持TCP/IP的NVMe over Fabrics
NVM Express在2019年發(fā)布了NVMe-oF 1.1規(guī)范,增加了對TCP傳輸綁定的支持?;赥CP的NVMe使得通過標準以太網網絡使用NVMe-oF成為可能,同時無需進行配置更改或任何特殊設備。
NVMe/TCP傳輸綁定定義了主機和非易失性內存子系統之間的數據是如何封裝和傳遞的。TCP綁定還將定義隊列、封裝和數據的映射方式,從而支持NVMe-oF主機和控制器之間通過IP網絡進行TCP通信。
對于希望利用其以太網基礎設施的企業(yè)而言,支持TCP/IP的NVMe-oF是一個不錯的選擇。
行業(yè)對NVMe和NVMe-oF的支持
戴爾EMC是最早將全閃存NVMe產品推向市場的存儲供應商之一。DSSD D5陣列由Dell PowerEdge服務器和基于PCIe的專有NVMe網絡網格構建而成。由于銷售不佳,該產品于2017年被擱置。
芯片制造商和網絡廠商也同樣在為市場做準備。Brocade和Cisco分別推出了支持NVMe閃存?zhèn)鬏?包括FC-NVMe功能)的32 Gbps第6代FC設備。Cavium也加入了競爭,為NVMe-oF更新了QLogic Gen 6 FC和FastLinQ以太網適配器。
Mellanox基于其BlueField SoC可編程處理器開發(fā)了NVMe-oF存儲參考架構,BlueField將計算、網絡、安全性、存儲和虛擬化工具集成在單個設備中;英特爾推出了雙端口3D NAND NVMe SSD和英特爾Optane NVMe驅動器;美光推出了9200系列NVMe SSD,并將業(yè)務擴展到存儲銷售,推出了美光加速解決方案NVMe參考架構和SolidScale NVMe-oF設備。