過(guò)去,基于網(wǎng)絡(luò)的存儲(chǔ)的發(fā)展對(duì)網(wǎng)絡(luò)工程師來(lái)說(shuō)并不是真正的問(wèn)題:網(wǎng)絡(luò)速度很快,而旋轉(zhuǎn)的硬盤驅(qū)動(dòng)器很慢。自然網(wǎng)絡(luò)升級(jí)到 10Gb、40Gb 和 100Gb 以太網(wǎng)足以滿足存儲(chǔ)系統(tǒng)的網(wǎng)絡(luò)需求。
但現(xiàn)在,隨著超高速固態(tài)磁盤 (SSD) 和非易失性內(nèi)存高速 (NVMe) 的推出,這不再是真的!存儲(chǔ)團(tuán)隊(duì)現(xiàn)在有能力使用速度極快的設(shè)備潛在地使網(wǎng)絡(luò)飽和。
使用 NVMe 技術(shù)(稱為 NVMe over Fabric (NVMe-oF))網(wǎng)絡(luò)存儲(chǔ) (SAN) 對(duì)網(wǎng)絡(luò)提出了重大挑戰(zhàn)。網(wǎng)絡(luò)工程師需要仔細(xì)研究這一新一代存儲(chǔ),以了解它們有何不同,以及它們?nèi)绾螡M足真正高速存儲(chǔ)的性能要求。
這是兩個(gè)專門針對(duì)非易失性內(nèi)存快速 (NVMe)、NVMe-over-fabric (NVMe-oF) 和遠(yuǎn)程直接內(nèi)存訪問(wèn) (RDMA) 的系列文章中的第一篇??梢栽诖颂幷业疥P(guān)于融合以太網(wǎng) (RoCE) 和 RDMA 以及如何在 Cisco Nexus 9k 系列上配置 RoCEv2 的第二篇文章。
1 什么是 NVMe?
1.1 介紹
這篇文章的目的是對(duì) NVMe 和 NVMe-oF 的主要概念進(jìn)行一般性概述,并向您展示作為網(wǎng)絡(luò)工程師可能遇到的不同網(wǎng)絡(luò)結(jié)構(gòu)和協(xié)議。我不假裝在這里詳細(xì)解釋 NVMe 和 NVMe-oF 的所有規(guī)格。如果您想了解有關(guān) NVMe 的更多信息,我在本文末尾放置了一系列您應(yīng)該感興趣的鏈接。
1.2 NVMe 的來(lái)源以及它與 SCSI 的區(qū)別
直到最近,存儲(chǔ)系統(tǒng)一直基于硬盤驅(qū)動(dòng)器 (HDD) 旋轉(zhuǎn)介質(zhì),帶有磁盤和移動(dòng)磁頭,這是 60 多年前技術(shù)的邏輯發(fā)展。隨著驅(qū)動(dòng)器技術(shù)隨著更快和更小設(shè)備的進(jìn)步,存儲(chǔ)行業(yè)圍繞使用并行或串行總線(例如 SAS(串行連接 SCSI)或 SATA(串行 ATA))連接到 HDD 的驅(qū)動(dòng)器控制器模型合并。這種從磁盤驅(qū)動(dòng)器到總線到控制器再到計(jì)算機(jī)的著名且可互操作的技術(shù)鏈在性能方面非常平衡——只要磁盤驅(qū)動(dòng)器像傳統(tǒng)的 HDD 一樣工作。
固態(tài)驅(qū)動(dòng)器 (SSD) 的引入在存儲(chǔ)領(lǐng)域造成了嚴(yán)重的不平衡。突然之間,磁盤驅(qū)動(dòng)器可以提供類似 RAM 的性能,具有非常低的延遲和超過(guò) 20 Gbps 的傳輸速率。這些 SSD 驅(qū)動(dòng)器的第一次真正商業(yè)部署是作為傳統(tǒng)存儲(chǔ)系統(tǒng)中 HDD 的直接替代品。SSD 提供更高的速度、更低的延遲、更少的熱量和更少的功耗。并且無(wú)需重新設(shè)計(jì)現(xiàn)有的知名且廣泛部署的硬件。它們對(duì)存儲(chǔ)行業(yè)來(lái)說(shuō)是雙贏的。
然而,簡(jiǎn)單地將 SSD 放入現(xiàn)有存儲(chǔ)系統(tǒng)中存在一個(gè)缺點(diǎn):它沒(méi)有充分利用底層技術(shù)潛在的性能提升。要真正從 SSD 設(shè)備的潛力中受益,需要重新考慮存儲(chǔ)系統(tǒng)連接到服務(wù)器的方式。存儲(chǔ)供應(yīng)商在專門為基于 SSD 的存儲(chǔ)進(jìn)行設(shè)計(jì)時(shí)嘗試了多種方法,其中最受業(yè)界關(guān)注的方法是將存儲(chǔ)設(shè)備直接連接到 PCI Express (PCIe) 總線。在構(gòu)建了多個(gè)專有設(shè)備之后,存儲(chǔ)和服務(wù)器行業(yè)在 2011 年聯(lián)合起來(lái)創(chuàng)建了 NVMe:非易失性內(nèi)存 Express。
NVMe 是一種協(xié)議,而不是形式因素或接口規(guī)范。NVMe 與其他存儲(chǔ)協(xié)議不同,因?yàn)樗鼘?SSD 設(shè)備視為內(nèi)存而不是硬盤驅(qū)動(dòng)器。NVMe 協(xié)議從一開(kāi)始就設(shè)計(jì)為通過(guò) PCIe 接口使用,因此幾乎直接連接到服務(wù)器的 CPU 和內(nèi)存子系統(tǒng)。在多核環(huán)境中,NVMe 效率更高,因?yàn)樗试S每個(gè)核獨(dú)立地與存儲(chǔ)系統(tǒng)通信。隨著 NVMe 中的更多隊(duì)列和更深的隊(duì)列深度,多個(gè) CPU 內(nèi)核可以使 SSD 保持忙碌狀態(tài),甚至消除內(nèi)部性能瓶頸。NVMe 是一種 NUMA 感知協(xié)議,利用了較新 CPU 中內(nèi)存子系統(tǒng)設(shè)計(jì)的進(jìn)步。
1.3 從 SCSI 到 NVMe,簡(jiǎn)而言之
1.3.1 SCSI
SCSI 將存儲(chǔ)視為設(shè)備(磁帶驅(qū)動(dòng)器、磁盤驅(qū)動(dòng)器、掃描儀等)
需要一個(gè)“說(shuō)”SCSI 的適配器將 CPU 需求轉(zhuǎn)換為設(shè)備功能。
在主機(jī)和存儲(chǔ)之間創(chuàng)建 1:1 的關(guān)系。
在單隊(duì)列模型中工作:一個(gè)單隊(duì)列,每個(gè)隊(duì)列最多 64 個(gè)命令。
然后,機(jī)械磁盤驅(qū)動(dòng)器演變?yōu)楣虘B(tài)驅(qū)動(dòng)器 (SSD) 或閃存:
Flash 暴露了 SCSI 的局限性,因?yàn)?flash 不旋轉(zhuǎn),沒(méi)有什么“機(jī)械”可以等待。因此,一個(gè)命令/一個(gè)隊(duì)列系統(tǒng)不再有任何延遲時(shí)間。
此外,閃存所需的命令也比 SCSI 提供的要少得多。
最后,可以認(rèn)為閃存就像是 PCIe RAM。這就是 NVMe 的由來(lái)。
1.3.2 NVMe
NVMe 將存儲(chǔ)視為內(nèi)存。
CPU 可以本機(jī)與內(nèi)存通信:不需要適配器。
在主機(jī)和目標(biāo)之間創(chuàng)建多對(duì)多關(guān)系
在多隊(duì)列模型中工作:64K 隊(duì)列,每個(gè)隊(duì)列最多 64K 條命令。
總之,我們可以說(shuō) NVMe 允許主機(jī)充分利用現(xiàn)代 SSD 可能實(shí)現(xiàn)的并行度。因此,NVMe 減少了 I/O 開(kāi)銷,并相對(duì)于以前的邏輯設(shè)備接口帶來(lái)了許多性能改進(jìn),包括多個(gè)長(zhǎng)命令隊(duì)列和減少延遲。SCSI 和其他以前的接口協(xié)議是為速度慢得多的硬盤驅(qū)動(dòng)器開(kāi)發(fā)的,其中相對(duì)于 CPU 操作而言,請(qǐng)求和數(shù)據(jù)傳輸之間存在非常長(zhǎng)的延遲,其中數(shù)據(jù)速度遠(yuǎn)低于 RAM 速度,并且磁盤旋轉(zhuǎn)和尋道時(shí)間引起進(jìn)一步的優(yōu)化要求。
1.4?NVMe 定義和規(guī)范
可以在 NVM Express 組織網(wǎng)站上找到官方定義:https ://nvmexpress.org/——以下是摘錄:
NVM Express (NVMe) 是一種規(guī)范,它定義了主機(jī)軟件如何通過(guò) PCI Express (PCIe) 總線與非易失性存儲(chǔ)器進(jìn)行通信。它是所有外形尺寸(U.2、M.2、AIC、EDSFF)的 PCIe 固態(tài)驅(qū)動(dòng)器 (SSD) 的行業(yè)標(biāo)準(zhǔn)。NVM Express 是定義、管理和營(yíng)銷 NVMe 技術(shù)的技術(shù)行業(yè)領(lǐng)導(dǎo)者的非營(yíng)利性聯(lián)盟。除了 NVMe 基本規(guī)范之外,該組織還擁有其他規(guī)范:NVMe over Fabrics (NVMe-oF),用于在網(wǎng)絡(luò)結(jié)構(gòu)上使用 NVMe 命令,以及 NVMe 管理接口 (NVMe-MI),用于管理服務(wù)器中的 NVMe/PCIe SSD,以及存儲(chǔ)系統(tǒng)。
NVMe 規(guī)范是從頭開(kāi)始為 SSD 設(shè)計(jì)的。它是一種更高效的接口,提供更低的延遲,并且比傳統(tǒng)接口(如串行 ATA (SATA))更適合 SSD。規(guī)范的第一部分是主機(jī)控制接口。NVMe 架構(gòu)帶來(lái)了一種全新的高性能隊(duì)列機(jī)制,支持 65,535 個(gè) I/O 隊(duì)列,每個(gè)隊(duì)列有 65,535 條命令(稱為隊(duì)列深度,或未完成命令的數(shù)量)。隊(duì)列映射到提供可擴(kuò)展性能的 CPU 內(nèi)核。NVMe 接口顯著減少了內(nèi)存映射輸入/輸出命令的數(shù)量,并適應(yīng)在中斷或輪詢模式下運(yùn)行的操作系統(tǒng)設(shè)備驅(qū)動(dòng)程序,以實(shí)現(xiàn)更高的性能和更低的延遲。
然后,NVMe、NVMe-oF 和 NVMe-MI 規(guī)范的當(dāng)前版本也可以在 NVM Express 組織站點(diǎn)上找到,這里:https ://nvmexpress.org/developers/
2?NVMe over Fabrics (NVMe-oF)
NVMe 協(xié)議不僅限于簡(jiǎn)單地連接服務(wù)器內(nèi)部的本地閃存驅(qū)動(dòng)器,它還可以通過(guò)網(wǎng)絡(luò)使用。在這種情況下使用時(shí),網(wǎng)絡(luò)“結(jié)構(gòu)”支持存儲(chǔ)和服務(wù)器元素之間的任意連接。NVMe over Fabrics (NVMe-oF) 使組織能夠創(chuàng)建具有可與直連存儲(chǔ)相媲美的延遲的高性能存儲(chǔ)網(wǎng)絡(luò)。因此,可以在需要時(shí)在服務(wù)器之間共享快速存儲(chǔ)設(shè)備。將 NVMe over fabric 視為光纖通道上的 SCSI 或 iSCSI 的替代方案,具有更低的延遲、更高的 I/O 速率和更高的生產(chǎn)力。
服務(wù)器(或其他主機(jī))通過(guò)網(wǎng)絡(luò)結(jié)構(gòu)直接或間接通過(guò)控制器與 NVMe 存儲(chǔ)通信。如果存儲(chǔ)解決方案使用控制器,則控制器通過(guò) NVMe-oF(如菊花鏈/daisy-chain)或通過(guò)其他專有或非專有解決方案與其自己的存儲(chǔ)目標(biāo)通信。這取決于存儲(chǔ)供應(yīng)商的實(shí)施和選擇。
2.1 NVMe-oF 傳輸協(xié)議
作為網(wǎng)絡(luò)工程師,您需要了解三種官方傳輸綁定才能在您的數(shù)據(jù)中心運(yùn)行 NVMe-oF:
光纖通道 (NVMe/FC)?– NVMe 啟動(dòng)器(主機(jī))與例如 Broadcom/Emulex 或 Marvell/Cavium/QLogic 主機(jī)總線適配器 (HBA) 可以通過(guò)專用光纖通道 (FC) 結(jié)構(gòu)或以太網(wǎng)光纖通道 (FCoE) 訪問(wèn) NVMe 目標(biāo)) 織物。光纖通道傳輸使用 NVMe over FC 協(xié)議 (FC-NVMe) 通過(guò) FCP 交換將 NVMe“控制平面”膠囊(命令和響應(yīng))和“數(shù)據(jù)平面”數(shù)據(jù)消息映射到光纖通道幀。
TCP (NVMe/TCP)?– NVMe 主機(jī)和控制器通過(guò)交換 NVMe/TCP 協(xié)議數(shù)據(jù)單元(NVMe/TCP H2C 和 C2H PDU)通過(guò) TCP 進(jìn)行通信。NVMe/TCP PDU 可用于傳輸 NVMe“控制平面”封裝(命令和響應(yīng))和“數(shù)據(jù)平面”數(shù)據(jù)。作為 NVMe/FC,這是“僅消息”數(shù)據(jù)傳輸。
遠(yuǎn)程直接內(nèi)存訪問(wèn)(NVMe/RDMA——在 InfiniBand 或以太網(wǎng)網(wǎng)絡(luò)上支持)?——RDMA 是一種主機(jī)卸載、主機(jī)旁路技術(shù),它允許包括存儲(chǔ)在內(nèi)的應(yīng)用程序直接與另一個(gè)應(yīng)用程序的內(nèi)存空間進(jìn)行數(shù)據(jù)傳輸。InfiniBand 世界中支持 RDMA 的以太網(wǎng) NIC (rNIC) 或 HCA(而不是主機(jī))管理 NVMe 源和目標(biāo)之間的可靠連接。使用 RDMA,NVMe“控制平面”膠囊(命令和響應(yīng))使用消息傳輸,“數(shù)據(jù)平面”(數(shù)據(jù))使用 RDMA 讀/寫操作等內(nèi)存語(yǔ)義傳輸。您必須查看數(shù)據(jù)平面部分,例如 PCIe 直接內(nèi)存操作。
除了這三個(gè)“官方”解決方案之外,還有其他專有解決方案允許您在網(wǎng)絡(luò)結(jié)構(gòu)之上使用 NVMe 命令。這沒(méi)有什么問(wèn)題,它們只是沒(méi)有標(biāo)準(zhǔn)化。
2.2 基于 RDMA 的 NVMe-oF
2.2.1 什么是 RDMA?
直接內(nèi)存訪問(wèn) (DMA) 是設(shè)備直接訪問(wèn)主機(jī)內(nèi)存的能力,無(wú)需 CPU 的干預(yù)。然后,遠(yuǎn)程直接內(nèi)存訪問(wèn) (RDMA) 是在不中斷該系統(tǒng)上 CPU 處理的情況下訪問(wèn)(讀取、寫入)遠(yuǎn)程計(jì)算機(jī)上的內(nèi)存的能力。
2.2.2 RDMA 主要優(yōu)勢(shì)
零拷貝——應(yīng)用程序可以在不涉及網(wǎng)絡(luò)軟件堆棧的情況下執(zhí)行數(shù)據(jù)傳輸。數(shù)據(jù)直接發(fā)送和接收到緩沖區(qū),而無(wú)需在網(wǎng)絡(luò)層之間復(fù)制。
內(nèi)核繞過(guò)——應(yīng)用程序可以直接從用戶空間執(zhí)行數(shù)據(jù)傳輸,而無(wú)需內(nèi)核參與。
無(wú)需 CPU 參與——應(yīng)用程序可以訪問(wèn)遠(yuǎn)程內(nèi)存,而無(wú)需在遠(yuǎn)程服務(wù)器中消耗任何 CPU 時(shí)間。遠(yuǎn)程內(nèi)存服務(wù)器將被讀取,而無(wú)需遠(yuǎn)程進(jìn)程(或處理器)的任何干預(yù)。而且,遠(yuǎn)程CPU的緩存不會(huì)被訪問(wèn)的內(nèi)存內(nèi)容填滿。
2.2.3 如何使用 RDMA?
要使用 RDMA,您需要具有 RDMA 功能的網(wǎng)絡(luò)適配器:支持 RDMA 的以太網(wǎng) NIC (rNIC),例如 Broadcom NetXtreme E 系列、Marvell/Cavium FastLinQ 或 Nvidia/Mellanox Connect-X 系列?;蛘?,InfiniBand 世界中的 InfiniBand 主機(jī)通道適配器 (HCA)(同樣是 Nvidia/Mellanox Connect-X)。從上面寫的內(nèi)容可以推斷,網(wǎng)絡(luò)的鏈路層協(xié)議可以是以太網(wǎng)或 InfiniBand。兩者都可以傳輸基于 RDMA 的應(yīng)用程序。
在 Linux、Windows 和 VMware 操作系統(tǒng)上支持內(nèi)置 RDMA。在其他操作系統(tǒng)上,或者對(duì)于高級(jí)功能,您可能需要下載并安裝相關(guān)的驅(qū)動(dòng)程序包并進(jìn)行相應(yīng)的配置。
2.2.4 各種基于 RDMA 的 NVMe-oF
既然我們已經(jīng)看到 RDMA 是通過(guò)網(wǎng)絡(luò)結(jié)構(gòu)傳輸 NVMe 的三個(gè)選項(xiàng)之一,那么讓我們看看 RDMA 的三種變體:
InfiniBand?– InfiniBand 網(wǎng)絡(luò)架構(gòu)本機(jī)支持 RDMA。
RoCE(RDMA over Converged Ethernet,發(fā)音為“Rocky”)
——基本上,這是通過(guò)以太網(wǎng)實(shí)現(xiàn) RDMA。它通過(guò)在以太網(wǎng)上封裝 InfiniBand 傳輸數(shù)據(jù)包來(lái)實(shí)現(xiàn)這一點(diǎn)。有兩種不同的 RoCE 版本:
RoCEv1?– 以太網(wǎng)鏈路層協(xié)議(Ethertype 0x8915),允許同一以太網(wǎng)廣播域中的任意兩臺(tái)主機(jī)之間進(jìn)行通信。因此,僅第 2 層,不可路由。
RoCEv2?– 使用 UDP/IP(IPv4 或 IPv6)報(bào)頭增強(qiáng) RoCEv1,因此增加了第 3 層可路由性。NVMe/RoCEv2 默認(rèn)使用 UDP 目標(biāo)端口 4791。
這是 RoCEv1 和 v2 報(bào)頭的表示(來(lái)源 Wikipedia):
iWARP(互聯(lián)網(wǎng)廣域 RDMA 協(xié)議)?——基于 IETF 標(biāo)準(zhǔn)的擁塞感知協(xié)議,例如 TCP 和 SCTP。具有卸載的 TCP/IP 流量控制和管理。
即使 iWARP 和 RoCE 都使用相同的 RDMA 軟件動(dòng)詞和相同類型的以太網(wǎng) RDMA-NIC (rNIC),由于第 3 層/第 4 層的差異,它們無(wú)法相互通信 RDMA。今天,RoCEv2 似乎是最受歡迎的供應(yīng)商選項(xiàng)。
2.3 NVMe-oF 網(wǎng)絡(luò)要求
2.3.1 協(xié)議要求
根據(jù)我們上面看到的情況,根據(jù)選擇的 NVMe-oF 解決方案有不同的要求:
專用網(wǎng)絡(luò)
NVMe/IB?– 通過(guò) InfiniBand 網(wǎng)絡(luò)使用 RDMA。在高性能計(jì)算 (HPC) 領(lǐng)域非常流行。除非您在該領(lǐng)域或股票市場(chǎng)工作,否則您的數(shù)據(jù)中心可能沒(méi)有 InfiniBand 網(wǎng)絡(luò)。
NVMe/FC?– 需要第 5 代或第 6 代光纖通道網(wǎng)絡(luò)。它不使用 RDMA。已經(jīng)在其數(shù)據(jù)中心擁有 FC 網(wǎng)絡(luò)和交換基礎(chǔ)設(shè)施的網(wǎng)絡(luò)工程師可以繼續(xù)使用這些專用資源作為 NVMe-oF 的傳輸。但是,4、16 或 32 Gbps 的典型 FC 部署速度可能不足以真正利用 NVMe 設(shè)備中可用的性能提升。
共享或融合以太網(wǎng)
??僅第 2 層
NVMe/FC(帶 FCoE)?——它使用以太網(wǎng)/FC 共享網(wǎng)絡(luò)基礎(chǔ)設(shè)施。FCoE 在 IP 層不可路由,并且不使用 RDMA。FCoE 具有與 FC 網(wǎng)絡(luò)相同的要求和優(yōu)勢(shì),但是您失去了在基礎(chǔ)架構(gòu)的共享以太網(wǎng)部分上的網(wǎng)絡(luò)的可預(yù)測(cè)性。我將在下面討論網(wǎng)絡(luò)可預(yù)測(cè)性。
??支持第 3 層
NVMe/TCP– 使用帶有 TCP/IP 傳輸?shù)囊蕴W(wǎng)網(wǎng)絡(luò),但不使用 RDMA。NVMe/TCP 似乎是最經(jīng)濟(jì)的解決方案之一,因?yàn)橐蕴W(wǎng)結(jié)構(gòu)比 FC 基礎(chǔ)設(shè)施更便宜,而且實(shí)施起來(lái)最簡(jiǎn)單。由于 NVMe/TCP 自然可路由,服務(wù)器及其存儲(chǔ)托架可以通過(guò)現(xiàn)有的以太網(wǎng)數(shù)據(jù)中心網(wǎng)絡(luò)進(jìn)行通信,而無(wú)需專用的 FC 交換機(jī)和 HBA。但是,NVMe/TCP 也有缺點(diǎn):最重要的是它使用服務(wù)器的計(jì)算能力,不再完全可用于運(yùn)行常見(jiàn)的應(yīng)用程序。CPU 最密集的 TCP 操作之一是計(jì)算每個(gè)數(shù)據(jù)包的奇偶校驗(yàn)碼(校驗(yàn)和)。另一個(gè)缺點(diǎn)是它比其他 NVMe-over-Fabrics 協(xié)議在傳輸中引起更多延遲。這個(gè)問(wèn)題特別是由于需要在流中維護(hù)多個(gè)數(shù)據(jù)副本以避免路由級(jí)別的數(shù)據(jù)包丟失。保持非常低的延遲也非常重要(見(jiàn)下文)。
NVMe/iWARP?– 使用共享以太網(wǎng)和基于 TCP 的 RDMA。
NVMe/RoCEv2?– 使用共享以太網(wǎng)和基于 UDP 的 RDMA。
2.3.2 傳輸要求:有損與無(wú)損傳輸
就以太網(wǎng)結(jié)構(gòu)上的有損與無(wú)損傳輸?shù)男枨蠖裕缥覀冊(cè)谏厦婵吹降?,RDMA 是兩個(gè)設(shè)備之間的內(nèi)存到內(nèi)存?zhèn)鬏敊C(jī)制,因此理論上它不能容忍任何數(shù)據(jù)包丟失。但是,由于 iWARP 基于 TCP 協(xié)議(以及 NVMe/TCP),它可以容忍傳輸中的數(shù)據(jù)包丟失以及一些 TCP 重傳,因此 NVMe/iWARP 和 NVMe/TCP 可以通過(guò)有損網(wǎng)絡(luò)進(jìn)行傳輸。
另一方面,RoCE 使用 UDP,它不能像 TCP 那樣從確認(rèn)和重傳中受益。此外,從 RoCEv2 規(guī)范來(lái)看,您應(yīng)該使用無(wú)損結(jié)構(gòu)。但是,在 RoCE 協(xié)議內(nèi)部有一種防止數(shù)據(jù)包丟失的機(jī)制:在數(shù)據(jù)包丟失時(shí),將具有特定數(shù)據(jù)包序列號(hào) (PSN) 的 NACK 控制數(shù)據(jù)包發(fā)送給發(fā)送方,以便它重新傳輸數(shù)據(jù)包。因此,說(shuō) RoCE 需要無(wú)損網(wǎng)絡(luò)傳輸(無(wú)損以太網(wǎng))并不完全正確。RoCE 可以在無(wú)損或有損網(wǎng)絡(luò)中運(yùn)行。
2.3.3 有關(guān) NVMe-oF 的其他網(wǎng)絡(luò)信息
這是我從與專家的討論和技術(shù)研討會(huì)中收集到的一系列信息。請(qǐng)記住,以下信息可能會(huì)根據(jù)您的需要而有所不同,并且可能在幾個(gè)月后就已經(jīng)過(guò)時(shí)了。
專用與共享以太網(wǎng)——與共享以太網(wǎng)解決方案相比,使用專用網(wǎng)絡(luò)(IB 或 FC)的主要缺點(diǎn)是價(jià)格。它當(dāng)然包括維護(hù)專用網(wǎng)絡(luò)本身的需要,還包括人員及其技能和知識(shí)。另一方面,專用網(wǎng)絡(luò)的最大優(yōu)勢(shì)是該網(wǎng)絡(luò)是可預(yù)測(cè)的。您確切地知道網(wǎng)絡(luò)上的內(nèi)容、預(yù)期流量、延遲等。有時(shí),尤其是在存儲(chǔ)方面,可預(yù)測(cè)性比其他任何事情都更重要。
NVMe/TCP 與 iWARP 與 RoCEv2 - 與 NVMe/TCP相比,使用 rNIC 的 RDMA 卸載功能可以通過(guò)減少協(xié)議處理開(kāi)銷和昂貴的內(nèi)存副本來(lái)顯著提升性能。但是,與所有融合基礎(chǔ)設(shè)施一樣,帶寬是關(guān)鍵。沒(méi)有超額訂閱,您需要密切管理和控制入站流量、隊(duì)列和流量?jī)?yōu)先級(jí)。RoCE 更是如此,它不支持(或幾乎)任何數(shù)據(jù)包丟失。
我們可以將我們的目標(biāo)與我們的主機(jī)相距多遠(yuǎn)——因?yàn)槲覀兛梢赃M(jìn)行第 3 層路由,所以不要認(rèn)為您可以將存儲(chǔ)遠(yuǎn)離服務(wù)器,例如通過(guò)企業(yè) WAN 鏈接。不,一般來(lái)說(shuō),我們會(huì)盡量讓目標(biāo)遠(yuǎn)離主機(jī)。NVMe 具有非常嚴(yán)格的端到端延遲要求,除非網(wǎng)絡(luò)基礎(chǔ)設(shè)施專門設(shè)計(jì)用于提供非常低的延遲,否則 NVMe 可能無(wú)法正常運(yùn)行。
什么是可接受的延遲——每個(gè)應(yīng)用程序、數(shù)據(jù)庫(kù)或核心位協(xié)議都有一個(gè)已知的延遲或 RTT 預(yù)算。您的問(wèn)題應(yīng)該基于此:您使用的是什么協(xié)議以及延遲要求是什么。最重要的是,如上所述,我們嘗試使目標(biāo)盡可能靠近主機(jī)。
存儲(chǔ)結(jié)構(gòu)的第 2 層與第 3 層——根據(jù)一些存儲(chǔ)專家的說(shuō)法,存儲(chǔ)(尤其是塊存儲(chǔ))的最佳實(shí)踐不是路由流量,主要是因?yàn)檠舆t原因。然而,今天的現(xiàn)代數(shù)據(jù)中心網(wǎng)絡(luò)不再基于第 2 層(STP + MLAG),而是基于具有覆蓋(VXLAN 或類似)層的第 3 層底層。所以這句話有點(diǎn)自相矛盾。
如果在這篇文章之后你問(wèn)自己這樣的問(wèn)題:“我應(yīng)該建立一個(gè)專用的存儲(chǔ)網(wǎng)絡(luò)還是使用融合以太網(wǎng)?”或“在以太網(wǎng)上,我應(yīng)該使用 NVMe/TCP 還是 NVMe/RDMA,然后使用 RoCEv1、RoCEv2 和 iWARP?” 和“延遲、擴(kuò)展怎么樣?”
我建議您查看 J Metz 博士關(guān)于 Cisco Live 的會(huì)議:NVMe over Fabrics (NVMe-oF) 的網(wǎng)絡(luò)影響 – BRKDCN-2729
3 基于融合以太網(wǎng)的 RDMA (RoCE)
編輯:黃飛
評(píng)論
查看更多