首頁 企業 NVIDIA 推動 vSphere 7 環境的 NVMe-oF 性能

NVIDIA 推動 vSphere 7 環境的 NVMe-oF 性能

by StorageReview 企業實驗室
連接X-5

VMware 最近添加 NVMe over Fabric (NVMe-oF) 作為 vSphere 7.0 中的存儲網絡協議選項。 世界上最流行的虛擬化軟件現在可以使用最快的共享存儲解決方案這一事實改變了遊戲規則,為虛擬化數據中心開闢了全新的用例集。 這也意味著現在有能夠在 vSphere 上啟用 NVMe-oF 的虛擬機 (VM) 上運行的裸機應用程序。 其中包括人工智能 (AI)、機器學習 (ML)、內存數據庫、高性能計算 (HPC)、高頻交易 (HFT)、在線交易處理 (OLTP),以及任何其他需要極低的延遲和大容量存儲。

VMware 最近添加 NVMe over Fabric (NVMe-oF) 作為 vSphere 7.0 中的存儲網絡協議選項。 世界上最流行的虛擬化軟件現在可以使用最快的共享存儲解決方案這一事實改變了遊戲規則,為虛擬化數據中心開闢了全新的用例集。 這也意味著現在有能夠在 vSphere 上啟用 NVMe-oF 的虛擬機 (VM) 上運行的裸機應用程序。 其中包括人工智能 (AI)、機器學習 (ML)、內存數據庫、高性能計算 (HPC)、高頻交易 (HFT)、在線交易處理 (OLTP),以及任何其他需要極低的延遲和大容量存儲。

在 StorageReview.com,我們始終對測試最新技術感興趣,以了解它們在現實世界中的工作方式。 鑑於我們之前使用 NVMe-oF 的經驗,我們完全期望它能夠顯著提高 vSphere 的應用程序性能。 為了真正了解 NVMe-oF 將如何影響性能,我們將其與 iSCSI 進行比較,iSCSI 是 vSphere 數據中心塊存儲的當前標準載體。 但是我們的測試將有一個獨特的轉折點,因為我們不會使用高度專業化的小眾技術。 相反,我們將使用當今數據中心中常見的產品。 我們的測試將在戴爾 R720XD 服務器上進行,該服務器通過以 5GbE 運行的 NVIDIA ConnectX-25 雙端口適配器連接到 純存儲FlashArray//X 支持 NVMe-oF。

在得出測試結果之前,我們將首先概述 VMware 在 NVMe-oF 方面的支持,然後向您介紹 NVMe 和 NVMe-oF 的一些背景知識,並解釋為什麼它們的性能比iSCSI。 我們還將介紹在 vSphere 上設置 NVMe 所採取的一些步驟。

VMware 最近啟用了 NVMe-oF 支持(2020 年 2016 月),儘管 NVMe-oF 標準於 2018 年發布。Linux 自 2020 年以來就能夠使用它,存儲陣列中的 NVMe-oF 支持也已經可用了幾年. NVMe-oF 被認為是一種新興但穩定的技術。 7.0 年 XNUMX 月,VMware 發布了 vSphere XNUMX,此版本包括對 NVMe-oF 的支持,允許使用 NVMe over Fibre Channel (NVMe/FC) 或 NVMe over RDMA Converged Ethernet(NVMe-RoCE,也稱為NVMe/RDMA)。

NVMe 和 NVMe-oF 概述

直到最近,SSD 還是 事實上的 附加存儲的標準媒體。 然而,它們也有一個關鍵的瓶頸。 SSD 使用 SATA 或 SAS 連接器,這些連接器設計用於 HDD,這嚴重限制了 SSD 的性能。 為了解決這個問題,一個由 90 多家公司組成的聯盟在 2011 年聯合發布了一項新規範,將 SSD 連接到不會有此 SATA 瓶頸的計算機。 該解決方案最終被稱為 NVMe。

NVMe 設備速度很快。 SATA/SAS SSD 在過去十年徹底改變了存儲行業,而 NVMe 在本世紀徹底改變了存儲行業。 例如,在我們最近使用 4K 讀取工作負載進行的測試中,我們發現 SATA 驅動器 (Kingston DC500M) 可以提供略低於 80,000 IOPS,但 NVMe 驅動器 (Kingston DC1000M) 可以提供 580,000 IOPS,相差高達 7.25 倍。 有許多技術原因可以解釋為什麼 NVMe 的性能比 SATA 驅動器高得多,但最重要的原因之一是它具有更短的數據路徑。 下圖顯示了與上一代存儲(如 SAS)相比,NVMe 的數據路徑如何顯著縮短的簡化說明。

NVMe-oF vSphere SAS其性能的提升,加上價格的急劇下降,讓NVMe成為了現代數據中心的寵兒。

NVMe 驅動器在數據中心得到廣泛應用後不久,人們就意識到這些設備並沒有充分發揮其潛力,它們作為直連存儲的局限性變得更加明顯。 NVMe 設備需要與服務器分離,因此另一組公司聯合起來製定了關於如何通過網絡交付 NVMe 的規範。 一旦 NVMe 存儲的傳輸機制可用,我們就可以將存儲系統中的 NVMe 設備聚合、抽象和共享到許多不同的系統,包括 ESXi 主機。 NVMe-oF 使用目標/啟動器術語。

NVMe-oF 拓撲
RoCE 允許通過以太網網絡進行遠程直接內存訪問 (RDMA)。 RoCE 有兩個版本:RoCE v1 和 RoCE v2。 RoCE v1 允許同一以太網廣播域(第 2 層)中的任意兩台主機之間進行通信,而 RoCE v2 運行在 TCP(第 3 層)之上,因此是可路由的,允許它連接到以太網廣播域之外的主機。 由於其先天的優勢和在數據中心的流行度,VMware只支持v2。 在本文中,我們將 RoCE v2 簡稱為 RoCE。

RoCE 需要 RDMA 網絡接口控制器 (rNIC) 而不是標準 NIC。 RoCE 網絡通常需要配置優先流量控制,但 Spectrum 交換機在與 ConnectX 適配器一起使用時針對擁塞控制進行了優化,從而允許零配置。 RoCE 非常受歡迎,並且擁有一個繁榮的生態系統,可以提供 rNIC 和 NVMe-oF 子系統。 目前,世界上一些最大的超大規模數據中心正在使用它,這使得 rNIC 的價格比首次推出時大幅下降。

通過使用 RDMA,數據可以直接從 NVMe-oF 設備傳輸到主機,而不必像使用標準傳輸控制協議/互聯網協議 (TCP/IP) 堆棧那樣複製到內存緩衝區。 通過繞過緩衝區,RDMA 減少了主機上的 CPU 使用率並減少了訪問遠程 NVMe 設備上的數據的延遲。 NVMe-oF 比上一代網絡存儲技術性能更高的技術原因有很多。 值得注意的是 NVMe-oF 支持的大量隊列 (64K),但也許最有說服力的是 NVMe-oF 數據路徑。 下圖顯示了與 iSCSI 存儲相比,NVMe-oF 的數據路徑如何短得多的簡化說明。

NVMe-oF vSphere iSCSI

NVMe-oF vSphere NVMe

RoCE 使用 UDP,這會影響性能,因為 UDP 需要較少的開銷。 但是,RoCE 依賴於端到端兼容性來提供完全無損連接。 儘管現代網絡交換機支持無損連接,但必須注意確保不支持無損連接的舊交換機不在 NVMe-oF 的網絡路徑中。

所有這一切的結果是 NVMe-oF 允許訪問網絡的 NVMe 驅動器,就好像它們是訪問服務器的本地驅動器一樣。 早期報告顯示,池化存儲的延遲約為 100 微秒,而不是 iSCSI 全閃存存儲陣列的 500 微秒或更多。

NVMe-oF 與 vSphere

NVMe-oF with vSphere 的要求很簡單:

  • 支持 RDMA (RoCE) 傳輸的 NVMe 陣列
  • 兼容的 ESXi 主機
  • 支持無損網絡的以太網交換機
  • 支持 RoCE 的網絡適配器
  • 軟件 NVMe over RDMA 適配器
  • NVMe 控制器
  • 第 2 層和第 3 層的無損網絡或使用 NVIDIA 的 ZTR(零接觸 RoCE)解決方案的有損網絡
  • 到 NVMe 目標的專用鏈接、VMkernels 和 RDMA 適配器
  • 專用第 3 層 VLAN 或第 2 層連接

由於 NVMe-oF 是 VMware 的新功能,因此並非所有 vSphere 功能都適用於它。 我們注意到缺少的一些功能包括對共享 VMDK、原始設備映射 (RDM)、vVol 的支持以及從 NVMe-oF 啟動的能力。

實施 NVMe-oF

我們使用了 NVIDIA 的 ConnectX-5 rNIC,這是數據中心中最常見的網卡之一。 這些卡是支持 RDMA 的單端口或雙端口網絡適配器。 它們可用於 PCIe Gen 3.0 和 Gen 4.0 服務器,並支持 1、10、25、40、50 和 100 Gb。 它們具有 750 納秒的延遲,每秒最多可傳遞 200 億條消息。 當與存儲工作負載一起使用時,它們支持廣泛的加速技術。

對於我們的測試,我們通過一對 NVIDIA 的 Spectrum SN3.0 交換機連接到 Pure Storage 閃存陣列的網絡在一對 Dell R5 服務器中以 25GbE 運行 PCIe Gen 720 ConnectX-2010 卡。

我們首先通過輸入 esxcfg 來驗證我們正在運行 nmlx5_core 驅動程序-nics -l |grep -E '名稱|NVIDIA'.

如果我們正在運行 nmlx4_core 驅動程序,我們可以從 ESXi CLI 為它啟用 RoCE。

啟用 NVMe-oF 的過程(類似於設置和啟用 iSCSI 的過程)涉及在 ESXi 主機上配置 vSwitch、端口組和 vmkernel 端口。 主要區別在於我們需要為每個 ESXi 主機添加至少兩個軟件 NVMe over RDMA 適配器。

我們需要完成的最後一步是通過輸入來識別 ESXi 主機的 NVMe 限定名稱 (NQN) esxcli nvme 信息獲取.

在 Pure Storage 陣列上,它類似於設置 iSCSI 陣列,但有一個很大的例外。 我們需要選擇 配置 NQN.

NVMe-oF 與 vSphere 的測試結果

對於此測試,我們保持所有東西不變,但織物除外。 我們想要評估的是從更傳統的 iSCSI 遷移到 RoCE 的影響。 需要明確的是,這不是存儲基準測試。 這是一項檢查,旨在了解 NVMe-oF 在幾乎不需要更改的 VMware 環境中的優勢。 我們使用兩台 Dell EMC PowerEdge 服務器和一台 Pure FlashArray//X R2 作為存儲後端。

我們的測試計劃包括測量 8 個虛擬機(每個 ESXi 主機上 4 個)的總體性能,並使用 vdBench 測量傳統的四個角和混合工作負載。 每個 VM 消耗 64GB 的存儲空間,每個工作負載的總佔用空間為 512GB,可用於比較協議更改時的性能變化。

要解釋這些結果,請注意對於吞吐量來說,改進更好,而在延遲方面,減少更好。

roce vs iSCSI 4k 隨機在我們測量 4% 負載下 80K 隨機讀取性能的第一個工作負載中,我們測得吞吐量增加了 14.6%,讀取延遲降低了 21.4%。

roce 與 iSCSI 64k 順序接下來,查看 64K 順序讀取工作負載中的讀取帶寬,我們看到吞吐量提高了 81.3%,延遲減少了 36.8%——同樣是在 80% 的負載下。

roce 與 iscsi sql server雖然測量到的最大收益是在讀取工作負載中,但我們還查看了一些常見的混合工作負載,其中第一個是 SQL 90/10。 在此工作負載中,我們測得在 78.2% 負載時延遲最多減少了 100%,在 43.4% 負載時延遲減少了 80%。

roce 與 iscsi 甲骨文最後,在我們的 Oracle 90/10 工作負載中,我們發現 13.2% 負載時的延遲下降了 100%,35.7% 負載時延遲下降了 80%。

在此測試中,RoCE 顯然在企業常見的大量工作負載方面有了很大的改進。

結論

我們的測試證明,現實世界中的 NVMe-oF 不僅僅是一個概念。 NVMe-oF 可以使用您數據中心當前的硬件提供出色的性能,例如帶有 Gen 3.0 PCI 插槽的服務器、NVIDIA 的 ConnectX-5 NIC 和 Pure Storage FlashArray//X R2(Pure 現在出貨 //X R3,具有更大的性能)性能改進)。

在我們的測試中,我們看到了小型和大型塊讀取工作負載的顯著提升。 為了查看現實世界的影響,我們關注低於 100% 的工作負載飽和度,因為大多數工作負載並未使底層存儲平台完全飽和。 在我們測量 4K 隨機讀取性能的測試中,延遲在 21.4% 的工作負載下下降了 80%。 64K 工作負載的順序讀取性能在 81.3% 的負載下吞吐量大幅增加了 80%。 在 43.4% 的負載下,我們還看到 SQL 35.7/90 和 Oracle 10/90 工作負載的延遲分別降低了 10% 和 80%。 這些數字表明,還有更多機會可以將要求苛刻的裸機工作負載轉移到 VMware。

我們相信 NVMe-oF 將成為存儲技術的下一件大事,我們預計它在數據中心的流行度將迅速擴散。 隨著該類別在未來幾年的發展,我們將處於該類別的前沿,並期待在發布其他和相鄰的 NVMe 技術時對其進行研究。

有關其他信息:

純存儲FlashArray//X

英偉達網絡

本報告由 NVIDIA 贊助。 本報告中表達的所有觀點和意見均基於我們對所考慮產品的公正看法。