近年来,我们不断体验到存储性能如何越来越快,这一直在挑战已成为数据中心瓶颈的旧存储协议。 尽管使用了最新的 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 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 的数据传输速度。
表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 个命令。 除了减少延迟外,这还可以提高处理同时请求的繁忙服务器的性能。
表 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
参与 StorageReview
电子报 | YouTube | 播客 iTunes/Spotify | Instagram | Twitter | Facebook | RSS订阅