作者:Ian Sagan,Marvell 现场技术支持工程师
NVMe™作为一种SCSI的替代型协议,其目的在于实现低延迟运行。目前市场上主要的服务器和存储供应商都采用了该协议,用来替代固态硬盘 (SSD)访问过程中的SCSI协议。采用NVMe协议后,基于NVMe的SSD可以消除传统存储实施过程中固有的瓶颈。由此,对于企业数据中心内的各类应用程序的访问操作,相应的访问速度都将大大提升。本文就带您解析下将NVMe 用在 SSD中,以及大规模组网部署时会遇到哪些关键问题。
为何 NVMe的应用范围如此广泛且增长迅猛?
NVMe是一款为了与高速闪存进行通信而全新设计的协议,其仅需30条专为处理 SSD开发的指令。此外,为了利用最新多核处理器的并行处理能力,该协议还支持多深度指令队列。NVMe协议最多可支持到64K个队列(queues),且其每个队列可以支持64K个指令(commands)操作。传统SCSI、SAS和SATA协议的初始开发目的在于传统的机械硬盘(HDD),与之相比,NVMe表现出了巨大进步。
纵观当今全球市场,基于NVMe的SSD驱动器的销量正在赶超SAS和SATA的SSD存储器销量*。这是因为,对于当前和下一代SSD技术(如3D XPoint和NVDIMM非易失性 DIMM)而言,NVMe协议都能带来显著的性能提升。
为何需要考虑采用 NVMe-over-Fabrics?
构建NVMe协议的主要目标在于,允许中央处理器(CPU)使用PCIe总线访问服务器内部基于 NVMe的SSD。但是,存储管理员开始意识到,本地服务器存储引发了严重的管理问题,尤其在过度供应昂贵的SSD存储资源方面最为突出(也就是通过考虑充分的余量应对任何过度需求)。根据应用的工作负载,不同服务器所需的高性能NVMe SSD存储量也不尽相同。这些应用可以迁移至不同的物理服务器,但是所需的SSD存储量始终相同。为避免每台服务器过度占用昂贵的SSD存储器,更加经济高效的模式是建立一个NVMe SSD共享存储池,由此可根据工作负载动态分配存储空间。
对于本地存储,最重要一点在于必须备份所有数据,以防服务器发生故障。此外,过去的存储方式还存在严重的安全隐患,并且不同站点间的复制往往难以管理。通过共享存储,管理员就可以避免上述问题。 换言之,CIO不仅可以跨服务器充分利用高性能闪存,还兼具现代化存储阵列具备的所有更强大的可用性和安全性特点,并且具有类似于本地NVMe SSD存储的高性能和低延迟优势。
NVMe-over-Fabrics的发展趋势如何?
为了理解这一问题,不妨把共享存储阵列和汽车发动机进行类比。具体来说,可以认为传统的光纤通道FC/iSCSI共享存储就相当于传统的汽油发动机。这些方案已经应用多年,非常可靠,它们将在长时间内提供一种优良的运输方式。
随着时间的推移,混合动力汽车越来越普遍,并且兼具电动和汽油的优势。与此类似,更加新颖的NVMe阵列在其内部混合了NVMe,但仍然使用SCSI指令通过FC或以太网传输协议连接至主机。
尽管大多数人同意电动汽车是未来的必然发展趋势,但当下却仍未成为主流。因为与传统方案相比,电动汽车不仅更加昂贵,而且相关基础设施尚且分布不足,无法支撑充电需求。可以想象,处于成长期的NVMe存储阵列与全电动汽车正处于相同的境地。NVMe-over-Fabrics正是落实NVMe存储的基础设施。这种方式将在适当时机成为连接共享存储阵列与服务器之间的主流通信标准,但是在广泛部署NVMe-over-Fabrics并且解决所有相关的新生问题之前,尚且还有很长的发展道路。
您应当选择哪种 NVMe-over-Fabrics 方案?
存储管理员面临的最大难题在于,确定哪种技术是正确的投资方向。与任何新出现的技术一样,整体方案的部署有多种途径。从这个角度来说,NVMe-over-Fabrics 也毫不例外。NVMe指令可以通过FC、启用了RDMA的以太网或使用TCP/IP的标准以太网进行传输。您可通过阅读以下内容,即可了解不同方案间的主要差异。
图 1: 目前可用的主流NVMe光纤连接方案
1. NVMe-over-FC(FC-NVMe)
对于已经部署了光纤通道存储网络(SAN)基础设施的用户而言,FC-NVMe当属最优方案。使用16Gb FC或32Gb FC主机总线适配器(HBA)和SAN交换机,即可将NVMe协议封入FC框架内部。通过升级至最新的HBA固件和驱动程序则能获取Linux服务器上的FC-NVMe支持。因此,投资新型16Gb或32Gb FC HBA和SAN基础设施,能够为应用今后推出的FC-NVMe存储阵列做好提前准备。另外值得注意的是,SCSI (FCP) 和 NVMe (FC-NVMe) 可以共存于相同的FC光纤网络中,因此,基于FC-SCSI的老存储可以与全新的NVMe存储同时运行。
2. 使用RDMA (NVMe/RDMA)的NVMe-over-Ethernet 光纤
这种RDMA兼容型以太网适配器现已获得授权。RDMA有两种不同的部署方式,名称分别为RoCE(v1/v2)和iWARP。然而非常遗憾,以上两种协议无法实现交互操作。下面我将简要说明两种协议各自的优劣势:
a. NVMe-over-RoCE (NVMe/RoCE):如果您使用的是只有以太网的网络,NVMe-over-RoCE是共享存储或超融合基础设施(HCI)连接的最佳方案。正因如此,目前已有多家存储阵列供应商公布了他们的计划,及表示支持NVMe-over-RoCE连接。RoCE能够提供最低的以太网络延迟,并且对于跳数不超过 2 个的小规模存储网络,能达到非常优异的运行效果。顾名思义,RoCE需要聚合或无损的以太网络才能正常运行。此外,该方案还需启用实现额外的网络功能,包括数据中心桥接(DCB)、优先流控制(PFC),以及其他一些更复杂的组织架构和网络拥塞管理机制。如果低延迟是您的首要目标,那么NVMe-over-RoCE很可能是您的最优选择,尽管其网络复杂性也相对较高。
b. NVMe-over-iWARP (NVMe/iWARP):iWARP RDMA协议运行于标准TCP/IP网络之中,因此其部署操作也更加简单。尽管该协议的延迟性能不及RoCE,但更加易用的特性以及更低的管理难度依然具有巨大的吸引力。在现阶段,存储阵列供应商尚未设计出支持 iWARP的阵列,因此目前的iWARP最适合软件定义或者基于Microsoft Azure Stack HCI / Storage Spaces Direct (S2D) 等HCI解决方案。
3. NVMe-over-TCP (NVMe/TCP)
NVMe-over-TCP还处于研发萌芽阶段。该方案于2018年11月获批,在不进行任何必要调整工作的情况下即可在现有的以太网基础设施中运行(这一点利用了TCP/IP广泛的普遍性)。 NVMe-over-TCP发挥的性能表现可能在速度上不及NVMe-over-RDMA或FC-NVMe,但在标准以太网卡和以太网网络交换机上就可以轻松实现部署。无需大量的硬件投资,即可享受NVMe SSD存储的主要优势。Marvell® FastLinQ® 10/25/50/100GbE等部分网卡还能利用网卡内置的TCP/IP协议栈的硬件卸载(offload)功能,发挥为NVMe/TCP报文卸载并加速的潜力。
总结
无论您决定采用哪种NVMe-over-Fabrics路线,Marvell都能为您提供丰富灵活的产品组合,并在部署过程中为您提供一切帮助。尤其要强调的是,Marvell QLogic® 16Gb和32Gb FC主机总线适配器(HBA)支持FC-NVMe;同时,得益于网卡内置的通用型RDMA功能,Marvell FastLinQ 41000和45000系列的10/25/40/50/100Gb以太网NIC和CNA网卡均支持NVMe-over-RoCE和NVMe-over-iWARP功能以及NVMe-over-TCP。因此,管理员可以根据自身需求确定系统架构,同时还能确保现阶段的部署也可应用于未来的网络。