RDG:在 VMware vSphere 7.0 中使用 Pavilion 存储配置 NVMe-oF RoCE 数据存储
创建于 2020 年 10 月 5 日。本文档介绍如何在 VMware vSphere 7.0 中使用 Pavilion Hyperparallel Flash Array 系统,通过 NVIDIA Mellanox 端到端 100 Gb/s 以太网解决方案配置 NVMe-oF RoCE 数据存储。
文档目录
Created on Oct 5, 2020
Scope
本文档介绍如何在 VMware vSphere 7.0 中使用 Pavilion Hyperparallel Flash Array 系统,通过 NVIDIA Mellanox 端到端 100 Gb/s 以太网解决方案配置 NVMe-oF RoCE 数据存储。
Abbreviations and Acronyms
| Term | Definition | Term | Definition |
|---|---|---|---|
| DAC | Direct Attached Cable | RDMA | Remote Direct Memory Access |
| DHCP | Dynamic Host Configuration Protocol | RoCE | RDMA over Converged Ethernet |
| HFA | Hyperparallel Flash Array | QSG | Quick Start Guide |
| NOS | Network Operation System | vDS | vSphere Distributed Switch |
| NVMe | Non-Volatile Memory express | VM | Virtual Machine |
| NVMe-oF RoCE | NVMe over Fabrics over RoCE |
Introduction
vSphere 7.0 新增了一项功能,可大幅提升 I/O 密集型虚拟机(如数据库或商业智能)的性能——NVMe over Fabrics (NVMe-oF)。
借助 NVMe-oF 软件,现在可以虚拟化以前需要在裸机上运行的 I/O 密集型工作负载。
NVMe-oF 还可以提高传统虚拟机的性能,允许在同一硬件上运行更多虚拟机。
Pavilion HFA 是首批通过 VMware 认证、可与 vSphere 7.0 配合使用的 NVMe-oF 全闪存阵列之一。
在本文档中,我们将介绍如何通过 NVIDIA Mellanox 端到端 100 Gb/s 以太网解决方案,在 VMware vSphere 7.0 中配置位于 Pavilion HFA 上的 NVMe-oF RoCE 数据存储。
将使用 HCI Bench v2.5.1 VDBENCH 进行基准测试,以展示在相同硬件上基于 RDMA 的 NVMe-oF 与 iSCSI 协议之间的性能提升。
References
- What is RDMA?
- RDMA over Converged Ethernet (RoCE)
- Pavilion.io
- ConnectX® Ethernet Driver for VMware® ESXi Server
- Cumulus Linux 4.1 User Guide
- What is NVMe over Fabrics (NVMe-oF)
Solution Architecture
Key Components and Technologies
-
NVMe-oF over RoCE support for VMware NVMe-oF(即 NVMe over Fabrics)是一种协议规范,旨在通过使用 NVMe 协议的网络结构将主机连接到存储。 VMware 增加了对使用 NVMe-oF 的共享 NVMe 存储的支持。对于外部连接,vSphere 7.0 支持 NVMe over RDMA。ESXi 主机可以使用 RDMA over Converged Ethernet v2 (RoCE v2)。
-
NVIDIA Cumulus Linux Cumulus Linux 是唯一一款开放网络操作系统,可让您像全球最大的数据中心运营商一样经济高效地构建和高效运营网络,为各种规模的企业解锁 Web 规模网络。
-
NVIDIA MELLANOX CONNECTX SMARTNICS 业界领先的 ConnectX® 系列智能数据中心网卡提供最广泛、最先进的硬件卸载功能。NVIDIA® 以太网网卡可为超大规模、公有云和私有云、存储、机器学习、AI、大数据和电信平台提供最高的 ROI 和最低的 TCO,每个端口的以太网数据速率可达 10GbE、25GbE、40GbE、50GbE、100GbE 和 200GbE。
-
NVIDIA Mellanox Spectrum Open 以太网交换机 Mellanox Spectrum® 交换机系列为数据中心应用日益增长的性能需求提供了最高效的网络解决方案。Spectrum 产品系列包括广泛的架顶式 (TOR) 和汇聚交换机,物理端口数量从 16 到 128 个不等,每个端口的以太网数据速率可达 1GbE、10GbE、25GbE、40GbE、50GbE、100GbE 和 200GbE。Spectrum 以太网交换机非常适合构建经济高效且可扩展的数据中心网络结构,可从几个节点扩展到数万个节点。
-
NVIDIA Mellanox LinkX Ethernet Cables and Transceivers Mellanox LinkX® 线缆和收发器使 100Gb/s 部署变得像 10Gb/s 链路一样简单和通用。由于 Mellanox 提供业界最广泛的 10、25、40、50、100 和 200Gb/s 直连铜缆 (DAC)、铜缆分支线缆、有源光缆 (AOC) 和收发器产品组合,因此可支持从 0.5m 到 10km 的每个数据中心距离。为了最大限度地提高系统性能,Mellanox 在端到端环境中测试每个产品,确保误码率低于 1e-15。1e-15 的 BER 比许多竞争对手好 1000 倍。
-
Pavilion Hyperparallel Flash Array Pavilion Hyperparallel Flash Array 是业界功能最强大、性能最高的解决方案之一,可在所有人都能触及的范围内提供实时性能。
Logical Design

Software Stack Components
本指南假定已安装以下软件和驱动程序:
- VMware ESXi 7.0.1, build 16850804
- vCenter 7.0.1, build 17005016
- Distributed Switch 7.0.0
- VM Guest OS: Ubuntu 18.04.3
- VM Hardware Version: 18
作为网络操作系统 (NOS),我们将使用:
- NVIDIA Cumulus Linux: 4.1.1
作为存储系统,我们将使用 Pavilion Hyper Parallel Flash Array (HFA),采用 NVMe over RoCE 协议。
- Pavilion Data System: 2.3.3.0_11378
Bill of Materials
本指南中描述的 vSphere 环境使用以下硬件设置:

Deployment and Configuration
Wiring
布线
本文档涵盖高可用性 VMware vSphere 集群部署。

网络
前提条件
- 交换机操作系统 NVIDIA Cumulus Linux 4.1.1
- 网卡 ConnectX-5 及以上版本,支持 RoCE。
- NVMe-oF 要求: ESXi 服务器中需配备支持 RDMA 的以太网网卡(RNIC),且 MTU 为 9000(巨型以太网帧)。
- 管理网络 需要 DHCP 和 DNS 服务。组件的安装和配置不在本指南范围内。
网络配置
下表提供了 ESXi 服务器、交换机和存储系统的名称及其网络配置详情。
需要 2 个端口组(NVMe-RoCE-A 和 NVMe-RoCE-B)来支持主/备 NVMe-oF 连接,作为到存储系统的多路径。
在我们的环境中,Pavilion 存储配置为 5 个双控制器,每个控制器有 2 个 IO 端口(共 20 个端口)。
| 服务器 | 服务器名称 | IP 和网卡 |
|---|---|---|
| 高速以太网网络 | ||
| ESXi-01 | qavmw-235 | vmk1: 172.101.10.35 (NVMe-RoCE-A)vmk2: 172.101.20.35 (NVMe-RoCE-B)vmk3: 172.101.2.135 (vMotion-DPG) |
| ESXi-02 | qavmw-237 | vmk1: 172.101.10.37 (NVMe-RoCE-A)vmk2: 172.101.20.37 (NVMe-RoCE-B)vmk3: 172.101.2.37 (vMotion-DPG) |
| ESXi-03 | qavmw-239 | vmk1: 172.101.10.39 (NVMe-RoCE-A)vmk2: 172.101.20.39 (NVMe-RoCE-B)vmk3: 172.101.2.39 (vMotion-DPG) |
| 交换机 | sw-qa-sx-053 | |
| 存储 | qa-pavilion10 | 双控制器 - C1100g-1/1: 172.10.10.106 (Controller11)100g-1/2: 172.10.20.106 (Controller11)100g-1/3: 172.10.10.101 (Controller1)100g-1/4: 172.10.20.101 (Controller1)双控制器 - C2100g-2/1: 172.10.10.107 (Controller12)100g-2/2: 172.10.20.107 (Controller12)100g-2/3: 172.10.10.102 (Controller2)100g-2/4: 172.10.20.102 (Controller2). . .双控制器 - C5100g-5/1: 172.10.10.110 (Controller15)100g-5/2: 172.10.20.110 (Controller15)100g-5/3: 172.10.10.105 (Controller5)100g-5/4: 172.10.20.105 (Controller5) |
RoCE 传输的网络交换机配置
NVIDIA Cumulus Linux 网络操作系统
RoCE 传输用于加速 NVMe 网络。为获得最佳效果,我们将网络配置为无损。
在两台 Leaf 交换机上运行以下命令,为 NVIDIA Cumulus 4.1.1 及以上版本配置无损网络:
交换机控制台
net add interface swp13-32 storage-optimized pfc
net commit
在左 Leaf 交换机上,通过运行以下命令将 VLAN 10 添加到 端口 13-32:
交换机控制台
net add interface swp13-32 bridge trunk 10
net add interface swp13-32 bridge trunk vlans 10
net commit
在右 Leaf 交换机上,通过运行以下命令将 VLAN 20 添加到 端口 13-32:
交换机控制台
net add interface swp13-32 bridge trunk 20
net add interface swp13-32 bridge trunk vlans 20
net commit
存储
前提条件
要设置 Pavilion HFA 环境,需要满足以下条件:
- 连接到控制台和管理接口。
- 安装程序权限:安装需要在目标机器上具有管理员权限。
- 高速网络连接。
使用 GUI 配置 NVMe over RoCE
以下是使用 GUI 配置 Pavilion 控制器以支持 NVMe over RoCE 的详细步骤说明。
-
登录 Pavilion GUI。
-
导航到 System > IO Controller。
-
配置控制器 1 和 2 以支持 NVMe Over RoCE。
警告:所有
controllers by default are configured for NVMe Over RoCE.
To change protocol type for a controller, **select** the **controller** and **click** on **Configure** button displayed at the top-right corner of the page.
-
Select the Protocol as NVMe over RoCE and click OK.
-
To assign a DataPort IP address for Pavilion controller.
Select any available DataPort slot for controller 1 and click Set IP.
-
On the Set DataPort IP dialog box set IP address and Netmask.
-
Repeat steps 5 and 6 to assign a DataPort IP address for second DataPort (Sample: 172.10.20.101).

-
Repeat the above steps to configure protocol and assign IP address for all the controllers.
Creating Datastore Volumes on the Pavilion HFA
Note: Before creating volumes, ensure that controllers are configured for RoCE and media groups are created.
To create Datastore volumes:
-
Navigate to Storage>Volumes>Create Volume.
-
On the Volumes page, click Create button to create a volume.
-
Fill in the details in the Create Volumes page.
Warning: Check the Enable 512e format and Discover storage entity by name checkbox. As, VMFS requires 512-byte emulated sectors to function
-
Subsequently, new volume is created.
Assigning the Datastore Volumes for High Availability
Once the volume is created, it needs to be assigned to a pair of controllers to serve as active and passive controllers for High Availability.
-
Select the volume just created and use the Pavilion GUI navigate to: Storage>Volumes>Assign.
-
On the Assign Volumes dialog box, tick the boxes.
Warning: Make a note of the two IP addresses present (one from each controller), as these are required to configure the ESXi server.
-
The volume is assigned, and volume state is changed from unassigned to online, see image below:
Warning: Save the Sub NQN.
-
At this point the volume will be visible on the network via two different IPs and the ESXi servers can be set up.
ESXi Host Configuration
Prerequisites
- VMware vSphere ESXi 7.0.0 or later.
- vCenter 7.0.0 or later.
- Installer privileges: The installation requires administrator privileges on the target machine.
- Connection to ESXi host management interface.
- High speed network connectivity.
Firstly, we need to create a vSphere Distributed Switch (vDS) with 2 distributed port groups with one Active and Standby uplink.
Creating a Distributed Switch for Storage Traffic
To create a new vDS:
-
Launch the vSphere Web Client and connect to a vCenter Server instance.

-
On the vSphere Web Client home screen, select the vCenter object from the list on the left. Hover over the Distributed 交换机 from the Inventory Lists area, then click New Distributed Switch (see image below) to launch the New vDS creation wizard:
-
提供新分布式交换机的名称,并选择要在 vCenter 清单中存储新 vDS 的位置(数据中心对象或文件夹)。 点击下一步。
-
选择要创建的 vDS 的版本。
-
指定上行链路端口数为 2,取消选中“创建默认端口组”框,并为该组命名。
-
点击完成。
-
设置新创建的分布式交换机的 MTU。 选择创建的交换机,转到操作并点击编辑设置。
在 Storage-DSwitch-Edit Settings 对话框中,设置 MTU 为 9000,发现协议为 链路层发现协议,操作为 两者。
将主机添加到 vDS
要将 ESXi 主机添加到现有 vDS:
-
启动 vSphere Web Client,并连接到 vCenter Server 实例。
-
导航到分布式交换机列表。
-
右键单击对象列表中的新分布式交换机,然后从操作菜单中选择添加和管理主机。
-
选择“添加主机”按钮,然后点击下一步。
-
点击“新主机”绿色加号图标以添加 ESXi 主机。这将打开“选择新主机”对话框。
-
从新主机列表中,勾选要添加到 vDS 的每个 ESXi 主机名称旁边的框。
完成后点击确定,然后点击下一步继续。
-
在下一个管理物理适配器屏幕中,配置 ESXi 主机中的 vmnic6 作为上行链路 1。
for vDS.
-
On the Select an Uplink dialog box, select the Uplink. Make sure to check the Apply this uplink assignment to the rest of the hosts checkbox.
-
Repeat steps 7 and 8 to Configure vmnic7 in a ESXi host as an Uplink 2 for vDS and click OK.
-
Verify NICs are assigned to Uplinks and click NEXT.
-
In the next Manage VMkernel adapters and Migrate VM networking screen click NEXT to continue.
-
Click FINISH.
Creating Distributed Port Groups for Storage Traffic
This section lists the steps required to create 2 distributed port groups with one Active and Standby uplink.
-
Adding VMkernel 网卡 for Distributed Port Groups Right click on Distributed switch and select Distributed Port Group > New Distributed Port Group.
-
On the New Distributed Port Group dialog box, enter Name as and click on Next.
-
Check Customize default policies configuration checkbox and click Next.
-
On the Security dialog box, click NEXT.
-
On the Traffic shaping dialog box, click NEXT.
-
On the Teaming and failover dialog box select Uplink 1 as active uplink and set Uplink 2 to standby uplink. Click NEXT.
-
On the Monitoring dialog box set NetFlow to Disabled, and click NEXT.
-
On the Miscellaneous dialog box set Block All Ports to No, and click NEXT.
-
On the Ready to complete dialog box review all the changes before you click Finish.
-
Repeat steps 1 and 9 to create second Distributed Port Group for Storage Traffic with: The Second Port Group Name
And in the Teaming and failover dialog box select Uplink 2 as active uplink and set Uplink 1 to standby uplink.
Note: The same steps are applicable for both the port groups.
To add VMkernel 网卡 for distributed port groups please execute following steps.
- Right click the distributed port group and select Add VMkernel 网卡.
-
单击添加主机。
-
选择主机并单击确定。
-
在选择主机对话框中单击下一步。
-
将 MTU 设置为 9000,然后单击下一步。
-
输入网络设置和网关详细信息,然后单击下一步。
-
单击完成。
完成所有 ESXi 集群网络配置后,可以在分布式交换机 > 配置 > 拓扑选项卡下验证配置。
VMware 软件 NVMe over RDMA 存储适配器配置
要访问 Pavilion 卷,用户需要创建软件 NVMe over RDMA 存储适配器。
-
导航到主机和集群,选择 ESXi 主机,选择配置选项卡,找到存储部分,然后选择存储适配器。 单击添加软件适配器。
-
在添加软件适配器对话框中,选择添加软件 NVMe over RDMA 适配器,并选择 RDMA 设备,例如:vmrdma2。单击确定。
-
在存储适配器 > 配置选项卡上,验证 DMA 存储适配器 vmhba64 已添加。
-
下一步,选择添加软件 NVMe over RDMA 适配器以添加第二个 RDMA 适配器(示例:vmrdma3)。
-
在存储适配器 > 配置选项卡上,验证 DMA 存储适配器 vmhba65 已添加。
-
重复步骤 3 到步骤 6,为集群中的所有主机配置 VMware NVMe over RDMA 存储适配器。
NVMe-oF 卷连接
下一步,需要连接到 NVMe-oF 卷。
-
要连接到 NVMe-oF 卷,选择集群中的任意主机,选择新生成的 vmhba,并使用页面底部的控制器选项卡添加控制器。
-
您可以自动发现控制器或手动输入控制器详细信息。在此实例中,控制器是自动发现的。 输入控制器 IP、端口,然后单击发现控制器。
-
在添加控制器对话框中,选择 NQN ...f93,然后单击添加。
-
验证与 IP 地址为 172.10.10.101 的控制器的连接已建立。
-
现在通过另一个控制器 IP 地址进行连接。选择 NQN,然后单击添加。
-
如下所示,已建立通过主动和备用控制器的连接。
-
验证 Paths。
-
验证 Host 到 NVMe 设备的连接。
-
类似地,您可以连接到 ESX 集群中的所有主机,并验证主机是否能看到 NVMe 设备。
多路径配置
-
添加控制器后,导航到 Storage > Storage devices,然后选择 NVMe 设备,点击 Edit Multipathing,如下图所示页面右下角。
-
选择 vmhba(状态为 Active (I/O)),并将 Path selection policy 设置为 FIXED。

-
类似地,为 ESX 集群中的 所有主机 配置 多路径。
在 Pavilion HFA 中验证启动器
要验证 Pavilion HFA 启动器,请登录 Pavilion GUI,导航到 Storage > Volumes,并在选择卷时查看页面底部的 Initiators 选项卡。
VMFS 文件系统和数据存储创建
要创建数据存储和 VMFS 文件系统:
-
登录 VMware® vSphere™ 客户端。
-
在 vCenter 中,点击 storage 图标。
-
导航到 Actions > Storage > New Datastore。
-
在 New Datastore 对话框中,选择 Select Datastore Type 为 VMFS,然后点击 NEXT。
-
输入 Datastore name,然后点击 NEXT。
-
选择 VMFS Version,然后点击 NEXT。
-
指定分区配置,然后点击 NEXT。
-
验证数据存储信息,然后点击 FINISH。
-
现在,验证新数据存储 NVME-Datastore 已创建并可供使用。
向虚拟机添加 NVMe-oF 磁盘
作为经验法则,对于 I/O 密集型工作负载,只要客户操作系统支持 NVMe 技术,虚拟机的虚拟磁盘应使用 VMware vNVMe Controller 连接,而不是标准的 VMware SCSI 或 SATA 控制器。
现代 Microsoft Windows Server 和 Linux 发行版都原生支持 NVMe,因此对于新部署来说这不是问题。但是,对于不支持 NVMe 的旧版 Microsoft Windows Server 发行版,VMware 半虚拟化 SCSI 或 SATA,甚至模拟的 LSI SATA 控制器仍然可以工作,但性能潜力会降低。
要继续创建 VM,请确保选择 Pavilion 数据存储。本节列出了执行该操作的步骤。
-
在 VMware® vSphere™ 中导航回 Host and Clusters,关闭 VM 电源,然后右键单击 Virtual Machine。

-
在 Virtual Hardware 中,点击 ADD NEW DEVICE,然后选择 网卡。

-
将 New Network 设置为 Browse,选择 Network,然后点击 NEXT。

-
添加新的 Hard Disk 并指定 size。点击 OK。

-
选择 ADD NEW DEVICE
button and select NVMe Controller. Click OK.

- Open the New Hard Disk line item and select the new NVMe controller just added. Click OK.

-
Power On the VM.
-
With the virtual NVMe controller, the hard drives will not appear in Linux under the typical /dev/sd[a-z] or /dev/hd[a-z] device nodes. Instead, they appear under the new device nodes /dev/nvme0n1. To verify the same, enter the following command:
VM console
nvme list
Disconnecting from a NVMe Datastore
The following steps are required to disconnect from a NVMe datastore.
-
Login to vCenter and navigate to VMs and Templates.
-
Power Off the VM.
-
Change Hard disk 2 NVMe controller controller to SCSI controller.

-
Remove the VM Network adapter 2.

-
Migrate the VM to another Datastore.

-
Navigate to Storage. Right click the datastore and select Unmount Datastore,
-
Select all the Hosts in the cluster and click OK.
-
Select the datastore and right click to Delete Datastore.
-
Make sure VMs are migrated to another datastore before you click YES.
-
From any host in the cluster navigate to Storage 网卡, select the NVMe device and click Detach.
Caution: Be cautious before you proceed with the step.
-
On the Detach Device dialog box, select all the hosts in the ESXi Cluster.
-
For each vmhba select the controllers and click Remove.
Caution: Be cautious before you proceed with the step. Click REMOVE.
-
Perform above steps to Remove controllers for the second adapter vmhba65.
-
In a similar manner, Remove Controllers from all hosts in the ESX cluster.
Done!
Appendix
Test Environment
Hardware and Software Components
硬件和软件组件
被测主机:
- Dell PowerEdge™ R740 主机,配备 2 个 Intel® Xeon® Gold 5218R CPU(每个 20 核,2.10 GHz),96GB 内存。
- 双端口 NVIDIA ConnectX®-6 Dx 网卡,使用默认驱动程序版本。
- VMware ESXi™ 7.0 Update 1
Pavilion HFA:
- Pavilion HFA v2.3.3.0_11378
网络:
- NVIDIA Spectrum® SN3700 开放式以太网交换机
- Cumulus Linux 4.2 网络操作系统
- NVIDIA MCP1650-H001E30 无源铜缆 InfiniBand HDR,最高 200Gb/s QSFP56 LSZH 1m 黑色拉片 30AWG
虚拟机与基准配置
我们使用 HCI Bench v2.5.1 VDBENCH 基准测试工作负载,在以下虚拟机(Ubuntu 18.04)和 VDBENCH 参数配置下测量性能:

性能结果
HCI Bench 使用随机读取和随机写入 IO 模式,IO 大小从 4 KB 到 512 KB。 我们比较了 Pavilion HFA 上 NVMe over RoCE 和 iSCSI 目标的 IOPS、吞吐量和延迟。 基准测试将虚拟磁盘放置在两个包含 10 个控制器的介质组上。



注意: 这些结果是在我们的实验室配置下使用 VDBENCH 基准测试获得的。其他配置、ESXi 服务器数量下的性能可能会有所不同。
结论
本性能研究中的基准测试结果表明,对于所有测试的块大小,NVMe over RoCE 协议始终优于 iSCSI,并且 NVMe over RoCE 能够实现两倍的 IOPS 和 50% 以上的吞吐量,同时延迟更低。 NVMe over RoCE 还允许在同一硬件上运行更多虚拟机。
作者
![]() |
Boris KovalevBoris Kovalev 过去几年担任解决方案架构师,专注于 NVIDIA Networking/Mellanox 技术,负责复杂的机器学习、大数据和基于 VMware 的先进云研究与设计。此前,Boris 在多家公司担任高级顾问和解决方案架构师超过 20 年,最近在 VMware 工作。他撰写了多份参考设计,涵盖 VMware、机器学习、Kubernetes 和容器解决方案,可在 NVIDIA 文档网站上获取。 |


