业界普遍认为,这种新的NVMe-oF模式将取代iSCSI协议,作为计算服务器和存储服务器之间的通信标准,并成为解耦合存储(disaggregated storage)方案的默认协议。
然而,NVMe-oF最初的部署选项仅限于光纤通道(Fibre Channel)和远程直接内存访问(Remote Direct Memory Access,RDMA)结构。
如果我们能够提供一种新的、更强大的技术,既能提供NVMe的速度和性能,又不需要高昂的部署成本和复杂性,将会如何?
NVMe over TCP(NVMe/TCP)就可以使用简单高效的TCP/IP结构将NVMe扩展到整个数据中心。
本文将描述NVMe/TCP如何成为面向现有数据中心的一种更优技术及其可提供的优势。这些优势包括:
- 支持跨数据中心可用区域的解耦合
- 利用无处不在的TCP传输和低延迟、高并行的NVMe协议栈
- 无需在应用服务器端进行更改
- 可提供类似直连式SSD(DAS)性能和延迟的高性能NVMe-oF解决方案
- 针对NVMe优化的高效、精简的块存储网络软件栈
- 可并行访问针对当今多核应用/客户服务器优化的存储
- 标准的NVMe-oF控制路径操作
1. NVMe/TCP 概述
NVMe规范已经成为高性能SSD的最新协议。
与SCSI、ISCSI、SAS或SATA 接口不同,NVMe实现了针对多核服务器 CPU 优化的简化命令模式和多队列体系结构。NVMe-oF规范扩展了NVMe,实现了通过网络共享PCIe SSD,其最初是使用RDMA结构来实现的。如今,Lightbits Labs与Facebook、英特尔和其他行业领先企业合作来扩展NVMe-oF标准,以支持与RDMA结构互补的TCP/IP传输。
基于NVMe/TCP的解耦合存储方案具有简单、高效等明显优势。TCP具有普及性、可扩展性和可靠性,对于短暂连接和基于容器的应用而言是一种理想的选择。
此外,通过NVMe/TCP迁移到共享闪存(Flash)也不需要更改数据中心的网络基础设施。无需更改基础设施意味着可以轻松地跨数据中心进行部署,因为几乎所有数据中心网络都被设计为可支持TCP/IP。
基于NVMe/TCP协议的广泛行业合作意味着该协议从设计之初就具有广阔的生态系统,并且支持任何操作系统和网络接口卡(NIC)。NVMe/TCP Linux驱动程序原生匹配Linux内核,可以使用标准的Linux网络协议栈和NIC,无需任何修改。
这种很有前景的新协议为超大规模数据中心量身定制,可以在不改变底层网络基础设施的情况下轻松实现部署。
图1 NVMe/TCP可与Linux内核中的现有NVMe协议无缝集成
2. 现在的数据中心如何处理存储
2.1 直连式存储架构与NVMe
NVMe存储协议旨在从固态驱动器(SSD)中提取全部性能。
NVMe协议中所设计的并行能力有助于实现这种性能。NVMe并未使用单一队列的iSCSI模式。取而代之的是,NVMe在CPU子系统和存储之间可支持多达64000个队列。
SSD是使用多个并行通信信道与多个SSD存储位置相连接的并行设备,这意味着SSD可以在大规模的并行流中高效地接收数据。在NVMe/TCP协议出现之前,利用这种并行模式的最简单方法就是将NVMe SSD直接安装到应用服务器上。换句话说,你必须使用DAS模式来构建自己的存储基础设施。
使用DAS方法,应用可以受益于以下方面:
- 多个CPU
- 多个NVMe I/O队列
- 并行SSD架构
对业界而言,挑战在于将SSD从可能具有多余容量的独立服务器转移到具有更高基础设施利用率且不会损失DAS性能收益的共享存储解决方案。因此,所有NVMe解耦合技术的目标都是在共享NVMe解决方案中实现DAS性能。
2.2 前一代基于 IP 的存储架构
以前,iSCSI标准是通过TCP/IP网络连接至块存储的唯一选择。它是在世纪之交开发的,当时大多数处理器都是单核器件。
在SCSI中,应用(Initiator)和存储(Target)之间只有一个连接。对于iSCSI,也是只有一个TCP套接字(socket)将客户端连接至块存储服务器。
现在,数据中心的处理器都是大规模并行多线程器件。当今处理器的这种复杂性要求对可用的存储协议进行彻底改革。其结果就是NVMe作为SATA和SAS(串行连接 SCSI)的替代者出现了。
所有那些早期协议的开发都是基于一个串行的旋转型磁盘驱动器。
非易失性存储器(NVM)是一种并行存储技术,它不需要一个或多个盘片在一个或一组磁头下面旋转。使用 NVM存储设备,可以并行访问许多存储单元,且具有较低的延迟。
毫无疑问,iSCSI仍然适用于具有低到中等存储性能要求的应用场景。然而,iSCSI却不能满足I/O密集型应用的要求,这类应用需要在大规模下实现低延迟。
2.3 其他替代方案和NVMe/TCP解耦合方案
RDMA、基于聚合以太网的RDMA(RoCE),以及基于光纤信道的NVMe(NVMe over FC),也是试图解决解耦合问题的其他网络存储协议。然而,这些替代方案要求在两端(应用服务器和存储服务器)都安装昂贵的特殊硬件,例如具备RDMA功能的NIC。此外,安装了RDMA硬件之后,在你具备RDMA功能的交换结构中配置和管理流控制也是很复杂的。
RDMA确实提供了适用于某些高性能计算环境的性能,但它要求更高的成本,并且需要进行非常复杂的部署。
TCP/IP已被证明可以在超大规模环境中可靠、高效地工作。NVMe/TCP继承了这种可靠性和效率,它可以作为RDMA的互补解决方案与之共存,也可以完全取代RDMA。
3. 数据中心中的闪存解耦合和 NVMe/TCP解决方案
在DAS环境中,驱动器是在部署到服务器中之前购买的或与服务器一起购买的,随着时间的推移,它们的容量利用率增长得很缓慢。另外,为了避免存储用尽这种尴尬的局面出现,DAS常常会有意将容量配置为过剩的状态。
相比之下,将存储从计算服务器中分离出来的数据中心会更加高效。这样,存储容量就可以独立地进行扩展,并且可以根据需要分配给计算服务器。
随着每GB闪存成本的降低,解耦合存储方法更加经济高效,而且数据中心部署的前期成本也要低得多。通过动态分配存储资源,可以避免过度配置(over-provisioning)开销,从而大大降低总体成本。
NVMe/TCP解决方案释放了基于解耦合高性能固态硬盘(SSD)的云基础设施的潜力。它使数据中心能够从低效的直连式SSD模式转为一种共享模式,在该模式中,计算和存储可以独立扩展,以最大限度地提高资源利用率和运行灵活性。
这种新的共享模式采用了创新的 NVMe/TCP标准。Lightbits Labs发明了这一概念,并且正在引领这一新标准的发展。
NVMe/TCP不会影响应用的性能。实际上,它通常会改善应用的尾部延迟,从而提升用户体验,并使云服务提供商能够在相同的基础设施上支持更多用户。它也不需要对数据中心网络基础设施或应用软件进行任何更改。它还可以降低数据中心的总体拥有成本(TCO),并使维护和扩展超大规模数据中心变得更容易。
NVMe/TCP利用标准的以太网网络拓扑,独立地扩展计算和存储,以实现最高的资源利用率,并降低TCO。
图2 从直连式存储(DAS)转为解耦合存储和计算
4. Lightbits Labs:在数据中心部署NVMe/TCP
Lightbits Labs的解决方案提供了如下性能优势:
- 与直连式存储(DAS)相比,尾部延迟减少多达50%
- SSD容量利用率翻倍
- 数据服务的性能提升2-4 倍
- 可扩展至数万个节点
- 可支持实现数百万IOPS的性能,平均延迟低于200 μs
Lightbits解决方案在不影响系统稳定性或安全性的情况下可实现如下改进:
- 应用服务器及其存储的物理分离
- 支持独立部署、扩展和升级
- 支持存储基础设施比计算基础设施更快地扩展
- 提高应用服务器和存储的效率
- 通过对应用服务器和存储硬件进行独立的生命周期管理,可简化管理并降低TCO
- 提供与内部NVMe SSD相当的高性能和低延迟
- 可利用现有的网络基础设施,无需进行更改
- 可在多跳(multi-hop)数据中心网络架构中实现解耦合
图3 NVMe/TCP可以跨数据中心将存储节点连接至应用服务器
5. Lightbits存储解决方案的工作原理
Lightbits Labs为云和数据中心基础设施提供了解耦合闪存平台。
当数万或数十万计算节点将直连式存储的多个孤岛锁定在每个物理节点中时,云级网络就会暴露出其所存在的极端复杂性。
Lightbits的解决方案释放了解耦合高性能 SSD解决方案的潜力。它使数据中心能够从低效的直连式SSD模式转为一种共享模式,在该模式中,计算和存储可以独立扩展,以最大限度地提高资源利用率和灵活性。
在 Lightbits Labs发明NVMe/TCP时,我们继续使用DAS设备所用的 NVMe模式,然后将其映射到行业标准的TCP/IP协议组中。NVMe/TCP是将多个并行的NVMe I/O队列映射到多个并行的TCP/IP连接上。这种NVMe和TCP之间的配对可以实现一种简单的、基于标准的、端到端的并行架构。
图4 针对并行云架构打造的NVMe/TCP
这种新的共享模式使用了创新的NVMe/TCP标准,该标准不会影响延迟,也不需要更改网络基础设施或应用服务器软件。Lightbits Labs正在与其他市场领导者合作,以推动这一新的 NVMe/TCP 标准的采用。
利用Lightbits Labs的解耦合存储解决方案,存储可以精简的方式配置给应用服务器。精简配置意味着管理员可以将任意大小的卷分配给客户端。而且,只有当应用服务器写数据时,才会消耗底层存储容量。因此,存储在最后一刻(即需要它的时候)才会被使用。这将延迟对更多存储资源的购买,从而进一步降低成本。Lightbits还为以线速运行的数据服务提供了一种硬件加速解决方案。
因此,当使用 Lightbits精简配置技术和面向数据服务的硬件加速方案时,存储成本可以降低到只有性能相当的DAS解决方案成本的一小部分。
5.1 适合闪存的写算法
对于读和写操作而言,闪存介质的延迟都很低。但是,SSD上的闪存控制器必须持续执行“垃圾收集”操作,以便为即将到来的写操作提供可用空间。与硬盘驱动器的写操作可以覆盖现有数据不同,闪存驱动器只允许将数据写入以前未写入或已擦除的闪存块中。
垃圾收集操作会导致“写入放大”。顾名思义,SSD控制器执行垃圾收集时,应用服务器发出的单个写操作会被进行垃圾收集的SSD控制器在实际的闪存介质上放大为更多的写操作。写入放大会增加闪存驱动器的耗损,这将影响它的长期使用。
此外,后台的垃圾收集会导致即将到来的I/O的延迟增加,并且随着更多随机写操作被写入闪存驱动器,垃圾收集会显著增加。不幸的是,很大比例的I/O都是随机的。总的来说,这意味着用户无法获得最好的性能或闪存耐久性。
Lightbits Labs的解决方案通过一个智能的管理层来解决这一问题,该层以不同的服务质量(QoS)等级来管理SSD池。这种解决方案减少了SSD后台操作,并使I/O更快速、更高效。
LightOS架构将多种算法紧密结合在一起,以便优化性能和闪存利用率。这包括将数据保护算法与用于数据服务的硬件加速解决方案以及我们的高性能读写算法紧密结合在一起。最终,跨SSD池管理和平衡所有I/O,从而极大地提高闪存利用率。
这种设计提高了总体性能,减少了尾部延迟、写入放大和SSD上的耗损。这意味着LightOS可以为你的闪存存储提供最高的投资回报率(ROI)。
5.2 高性能数据保护方案
要想实现存储与应用服务器的分离,还需要智能、高效且不影响性能的数据保护功能。
Lightbits结合了高性能数据保护方案,其可与用于数据服务的硬件加速解决方案和读写算法一起工作。
就如何将数据写入SSD池而言,相比传统的RAID 算法,Lightbits的数据保护方法可以防止过多的写入, 以避免SSD遭受更多耗损。
6. 总结
Lightbits Labs实现了高效的闪存解耦合方案,在实施和运行方面具有以下优点:
- 不需要任何昂贵的专用网络硬件,Lightbits解决方案运行在标准的TCP/IP 网络上。
- 使用TCP/IP以机架规模在一个或多个局域网上运行,没有协议方面的限制。
- 提供与DAS相当的性能和延迟,包括尾部延迟比DAS尾部延迟低50%。
- 将高性能数据保护方案与其用于数据服务的硬件加速解决方案,以及可确保性能不受影响的读写算法结合在一起。
- 通过用于数据服务的硬件加速解决方案最大限度地提高闪存效率,该解决方案以全线速运行,且不影响性能。
- 实现了精简配置的存储卷,支持“按需付费”的消费模式。
Lightbits是NVMe/TCP的研发者,也是其广泛采用的推动者。
作为一种新理念的应用,Lightbits的NVMe/TCP解决方案可以实现高效的闪存解耦合,从而获得与 DAS相当甚至更好的性能。Lightbits创造了一种现代的IP存储架构实现方式,可以最大限度地发挥应用服务器、NVMe、TCP和SSD并行架构的潜力。
通过Lightbits Labs的解决方案,云原生应用可以实现云级性能,云数据中心可以降低其云级TCO。