首頁 Enterprise 什麼是 NVMe-oF?

什麼是 NVMe-oF?

by 胡安馬爾福德
NVMeoF

近年來,我們不斷體驗到存儲性能如何越來越快,這一直在挑戰已成為數據中心瓶頸的舊存儲協議。 儘管使用了最新的 100GbE 結構速度和新的網絡標準,例如 InfiniBand,但這些慢速網絡協議技術限制了閃存設備的性能,將其保留在設備本身內並隔離在盒子中。 在本文中,我們將快速了解 Non-Volatile Memory Express (NVMe)。 此外,我們還概述了 NVMe over Fabrics (NVMe-oF) 和 NVMe over RDMA over Converged Ethernet (NVMe over RoCE),這是一種為解決現代存儲網絡瓶頸而開發的新協議規範。

近年來,我們不斷體驗到存儲性能如何越來越快,這一直在挑戰已成為數據中心瓶頸的舊存儲協議。 儘管使用了最新的 100GbE 結構速度和新的網絡標準,例如 InfiniBand,但這些慢速網絡協議技術限制了閃存設備的性能,將其保留在設備本身內並隔離在盒子中。 在本文中,我們將快速了解 Non-Volatile Memory Express (NVMe)。 此外,我們還概述了 NVMe over Fabrics (NVMe-oF) 和 NVMe over RDMA over Converged Ethernet (NVMe over RoCE),這是一種為解決現代存儲網絡瓶頸而開發的新協議規範。

NVMe-oF

由於雲和數據中心始終需要低延遲和高吞吐量,因此圍繞 NVMe over Fabrics 展開了大量討論。 NVMe 規範存在不到十年,由於 NVMe-oF 也相對較新,因此對其實踐及其對企業的益處仍存在許多誤解。 這項技術一直在不斷發展,並在 IT 行業得到廣泛採用。 我們開始看到多家網絡供應商向企業市場提供 NVMe-oF 相關產品。 因此,要跟上先進的數據中心技術,了解什麼是 NVMe-oF、其功能及其性能特徵至關重要。 此外,如何部署它以及我們如何將這項技術結合到不同的新解決方案中。

NVMe 和 NVMe-oF

全閃存陣列 (AFA) 出現在數據中心以響應對高性能的需求,因為它們比傳統存儲快得多,能夠毫不費力地達到市場上一直承諾的 1M IOPS。 然而,其中許多陣列繼續使用近乎傳統的存儲技術,即 SATA SSD。 這類存儲基於AHCI(高級主機控制器接口)命令協議,支持IDE。 AHCI 本質上是為旋轉磁盤而構建的,而不是為基於閃存的高級驅動器構建的。 這種基於 SCSI 的技術為當今的 SSD 和存儲陣列控制器造成了瓶頸,因為具有 AHCI 的 SATA III 總線僅允許高達 600MB/s 的數據傳輸速度。

NVMe-oF 總線速度表1:公共汽車速度

要釋放 SSD 的全部功能,我們需要新技術來更快地卸載閃存。 NVMe 是一種使閃存(或 SSD)能夠真正利用閃存性能的規範。 該技術於 2014 年首次推出,旨在改善應用程序響應時間,提供新的更好的功能。 NVMe 固態硬盤有多種外形規格,最廣為人知的有 AIC(附加卡)、U.2、U.3 和 M.2。 NVMe SSD,通過直接連接到計算機或服務器中,利用外圍組件互連高速 (PCIe) 高速總線。 從本質上講,NVMe 減少了 CPU 開銷並簡化了操作,從而降低了延遲,提高了每秒輸入/輸出操作數 (IOPS) 和吞吐量。 例如,NVMe SSD 提供高於 3,000MB/s 的寫入速度。 如果我們與 SATA SSD 進行比較,這意味著比旋轉磁盤快 5 倍或 30 倍。

使用 NVMe,IOPS 並行執行,允許同時進行許多計算。 大任務可以拆分成幾個小任務獨立處理。 類似於多核 CPU,使用多個線程。 每個 CPU 核心都可以彼此獨立工作以執行特定任務。

隊列深度 (QD) 是 NVMe 相對於 AHCI 的另一個優勢。 ACHI 和 SATA 可以處理 32 個隊列深度(1 個隊列和 32 個命令),而 NVMe 可以處理高達 65K 的隊列深度。 這些是 65K 隊列,其中每個隊列最多可以容納 65K 個命令。 除了減少延遲外,這還可以提高處理同時請求的繁忙服務器的性能。

NVMe-oF q 深度表 2:隊列比較

然而,數據中心的問題仍然在於存儲網絡協議。 儘管 NVMe 興起,但其收益僅限於每個單獨的設備。 事實上,閃存和其他企業級(昂貴的)設備,如 AFA,並不是為了將其卓越的性能隔離在機箱內。 相反,它們旨在用於大規模並行計算機集群,將它們與其他和多個設備(例如其他服務器和存儲)連接起來。 這種設備的互連就是我們所說的結構,即存儲網絡,包括交換機、路由器、協議橋、網關設備和電纜。

2016 年,NVMe-oF 行業標準已經推出。該協議規範將 NVMe 令人難以置信的性能從存儲陣列控制器擴展到結構,使用以太網、光纖通道、RoCE 或 InfiniBand。 NVMe-oF 使用備用數據傳輸協議(通過結構)作為傳輸映射,而不是 NVMe 使用的 PCIe 總線。 Fabric 建立在端點之間沒有共享內存的情況下發送和接收消息的概念之上。 NVMe 結構消息傳輸將 NVMe 命令和響應封裝到一個基於消息的系統中,該系統包括一個或多個 NVMe 命令或響應。

在 NVMe-oF 中,目標以命名空間的形式呈現,相當於 SCSI LUN。 NVMe-oF 允許主機跨越更遠的距離與這些存儲目標進行通信,同時保持超低延遲,以微秒 (μs) 為單位。 簡而言之,我們在系統和閃存之間獲得更好的性能,而不會顯著增加結構延遲。 這種低延遲在一定程度上可以達到前面提到的 NVMe 隊列深度。 NVMe-oF 可以處理與 NVMe 相同的隊列,65K這個驚人的數字使 NVMe-oF 可以在主機和驅動器之間設計高度並行的架構,為這些設備中的每一個使用單獨的隊列。

NVMe 架構傳輸 

NVMe 支持和使用的三種結構傳輸類型是使用 RDMA 的 NVMe-oF、使用光纖通道的 NVMe-oF 和使用 TCP 的 NVMe-oF。

基於 RDMA 的 NVMe-oF

此規範使用遠程直接內存訪問 (RDMA) 並使數據和內存能夠通過網絡在計算機和存儲設備之間傳輸。 RDMA 是一種在網絡中兩台計算機的主內存之間交換信息的方式,無需涉及任何一台計算機的處理器、緩存或操作系統。 因為 RDMA 避免了操作系統,所以它通常是通過網絡傳輸數據的最快和最低開銷的機制。

NVMe-oF over RDMA 使用 TCP 傳輸協議跨 IP 網絡傳輸數據典型的 RDMA 實現包括虛擬接口架構、RDMA over Converged Ethernet (RoCE)、InfiniBand、Omni-Path 和 iWARP。 目前使用最多的是 RoCE、InfiniBand 和 iWARP。

基於光纖通道的 NVMe

使用 NVMe over Fibre Channel (FC) 的組合通常稱為 FC-NVMe、NVMe over FC,有時也稱為 NVMe/FC。 光纖通道是一種用於在存儲陣列和服務器之間傳輸數據的強大協議,大多數企業 SAN 系統都使用它。 在 FC-NVMe 中,命令被封裝在 FC 幀中。 它基於標準的FC規則,匹配支持訪問共享NVMe閃存的標準FC協議。 SCSI命令封裝在FC幀中; 但是,將它們解釋和轉換為 NVMe 命令會造成性能損失。

基於 TCP/IP 的 NVMe

這種傳輸類型是 NVMe-oF 的最新發展之一。 NVMe over TCP(傳輸控制協議)使用 NVMe-oF 和 TCP 傳輸協議跨 IP(以太網)網絡傳輸數據。 NVMe 通過以太網作為物理傳輸在 TCP 數據報內部傳輸。 儘管有 RDMA 和光纖通道,TCP 提供了可能更便宜和更靈活的替代方案。 此外,與同樣使用以太網的 RoCE 相比,NVMe/TCP 的性能更像 FC-NVMe,因為它們使用 I/O 的消息傳遞語義。

將 NVMe-oF 與 RDMA、光纖通道或 TCP 結合使用,可構建完整的端到端 NVMe 存儲解決方案。 這些解決方案提供了顯著的高性能,同時保持了通過 NVMe 提供的極低延遲。

NVMe over RDMA over 融合以太網 (RoCE)

在 RDMA 協議中,RoCE 脫穎而出。 我們知道 RDMA 和 NVMe-oF 是什麼,現在我們有了融合以太網 (CE),即通過以太網網絡支持 RDMA。 CE就像一個增強的以太網版本,也被稱為數據中心橋接和數據中心以太網。 它封裝了以太網上的 InfiniBand 傳輸數據包。 它的解決方案提供了鏈路級流量控制機制以確保零丟失,即使在網絡飽和時也是如此。 RoCE 協議允許比其前身 iWARP 協議更低的延遲。

RoCE 有兩個版本,RoCE v1 和 RoCE v2。 RoCE v1 是以太網第 2 層(鏈路)協議,允許同一以太網廣播域中的兩台主機之間進行通信。 因此,它不能在子網之間路由。 新選項是 RoCE v2,它是 UDP/IPv4 或 UDP/IPv6 協議之上的協議。 RoCE v2 是以太網第 3 層(互聯網)協議,這意味著它的數據包可以被路由。 對 RoCE v2 的軟件支持仍在不斷湧現。 Mellanox OFED 2.3 或更高版本支持 RoCE v2 以及 Linux Kernel v4.5。

NVMe over RoCE 是一種新型的 SAN。 該協議提供與 SAN 硬件和軟件相同的企業數據服務性能和靈活性。 儘管 RoCE 協議受益於融合以太網網絡的特性,但該協議也可以用於傳統或非融合以太網網絡。 要配置 NVMe over RoCE 存儲結構,NIC、交換機和 AFA 必須支持融合以太網。 NIC(稱為 R-NIC)和全閃存陣列必須提供對 RoCE 的支持。 帶有 NVMe over RoCE 接口的 R-NIC 和 AFA 的服務器將與已安裝的 CE 交換機即插即用。

NVMe-oF over RoCE 支持 VMware

VMware 添加了對使用 NVMe-oF 的共享 NVMe 存儲的支持。 對於外部連接,vSphere 7.0 支持 NVMe over Fibre Channel 和 NVMe over RDMA。 ESXi 主機可以使用 RDMA over Converged Ethernet v2 (RoCE v2)。 要使用 RDMA 啟用和訪問 NVMe 存儲,ESXi 主機使用主機上的 R-NIC 適配器和 SW NVMe over RDMA 存儲適配器。 必須在兩個適配器中配置配置以將它們用於 NVMe 存儲發現。

使用 NVMe-oF 時,目標以主動/主動或非對稱訪問模式 (ALUA) 的名稱空間形式呈現給主機。 這使 ESXi 主機能夠發現和使用提供的命名空間。 ESXi 在內部將 NVMe-oF 目標模擬為 SCSI 目標,並將它們呈現為主動/主動 SCSI 目標或隱式 SCSI ALUA 目標。

NVMe over RDMA 要求:

  • 支持 RDMA (RoCE v2) 傳輸的 NVMe 陣列
  • 兼容的 ESXi 主機
  • 支持無損網絡的以太網交換機。
  • 支持 RoCE v2 的網絡適配器
  • SW NVMe over RDMA 適配器
  • NVMe 控制器
  • RoCE 目前在支持 ZTR(零接觸 RoCE)的有損結構上運行,或者需要配置網絡以在第 2 層單獨或在第 2 層和第 3 層(使用 PFC)實現無損信息流量

在 ESXi 主機上設置 NVMe-oF 時,應遵循一些做法。

  • 不要混合傳輸類型來訪問相同的名稱空間。
  • 確保所有活動路徑都呈現給主機。
  • 不使用/不支持 NMP; 相反,HPP(高性能插件)用於 NVMe 目標。
  • 您必須具有指向 NVMe 目標的專用鏈接、VMkernels 和 RDMA 適配器。
  • 專用第 3 層 VLAN 或第 2 層連接
  • 限制:
    • 命名空間-32
    • Paths=128(主機上最多 4 個路徑/命名空間)

結論

隨著越來越多的人依賴雲服務中的數據,對數據中心更快的後端存儲的需求也越來越大。 NVMe 是一種與閃存設備連接的更新方式,並且隨著 NVMe-oF,這些技術一直在推進外部連接選項。 NVMe-oF 及其不同類型的傳輸開始被認為是數據存儲的未來。 這些存儲設備和設備被認為是數據中心的核心,因為互連結構中的每一毫秒都很重要。 NVMe 技術減少了內存映射輸入/輸出命令,並適應操作系統設備驅動程序以實現更高的性能和更低的延遲。

NVMe 因其低延遲和高吞吐量的多任務處理速度而變得越來越流行。 雖然 NVMe 也被用於個人電腦以改進視頻編輯、遊戲和其他解決方案,但真正的好處是通過 NVMe-oF 在企業中看到。 IT、人工智能和機器學習等行業不斷進步,對增強性能的需求也在不斷增長。 現在經常可以看到軟件和網絡供應商,例如 VMware 和 Mellanox 向企業市場提供更多 NVMe-oF 相關產品和解決方案。 借助現代化的大規模並行計算機集群,我們處理和訪問數據的速度越快,它對我們的業務就越有價值。

資源中心

Storagehub:VMware NVMeoF vSphere

NVMexpress:NVMe Over Fabrics

NetApp AFF A800 NVMeOF 評測

參與 StorageReview

電子通訊 | YouTube | 播客 iTunes/Spotify | Instagram | Twitter | Facebook | RSS訂閱