摘要:为解决福建电信数据库性能不足问题,本文从平台架构的角度分析了硬件和软件对性能的影响,创新地提出了使用远端内存直接访问技术(RDMA)构建云存储平台的思路。在标准以太网框架内,运行 RDMA over Converged Ethernet (RoCE),在云端数据库上实现对非本地存储的高速访问,从而极大程度的提升了应用的吞吐。通过进一步的实验和现网试运行验证,该框架对于改善系统整体延时也有非常好的效果。 基于理论分析和实践结果的互相论证,本文最后对于基于分布式存储构建高性能数据库云进行了总结,概括了其中的关键技术点,同时给出了可能存在的问题和下一步研究方向。
关键词: RDMA, RoCE,分布式存储,数据库,网络概述
伴随着数据的指数级增长,给我们的生活带来便利的同时,也给电信网络带来更高的压力和需求。随着数据中心流量的增加,许多平台都迫切需要提高服务器和网络带宽。除此之外,数据中心还需要一种可以有效扩展以适应未来需要的产品,10GE 作为当前部署的主流带宽在这方面已有些力不从心。在互联网企业中,25GE 以太网逐步开始承载云平台和关键业务,25GE 拥有 10GbE 无可比拟的带宽优势,同时也具备极好的可扩展行来满足未来节点数增长的需求。25GE 技术可在成本和功耗较低的情况下在单个通道中提供较高带宽,从而提供更高的服务器和交换机端口密度。25GE 是一种新标准,可利用为 100GE 以太网(作为在四个光缆或铜缆对上运行的四个 25Gbps 通道 (IEEE802.3bj) 而实施)定义的技术。以 25GE 为基础构建的解决方案可与 10GE、50GE、100GE 以及未来的 200GE 和 400 GE 产品向后和向前兼容,从而可确保适应未来解决方案的升级途径。随着高带宽互连越来越普遍,网络请求处理向 CPU 施加了沉重负担。借助网卡端的卸载和交换端的流控技术(如 RoCE, PFC 和 ECN),可以实现高效率以便进一步提高 25GbE 网络的性能。RDMA 使网络适配器可以直接访问应用程序缓冲区,从而绕过内核、CPU 和协议堆栈,因此 CPU 可以在 I/O 传输进行期间执行更有用的任务。这样可提高服务器中的性能,从而使应用程序工作负载可以在高带宽网络中高效扩展。
存储是除了 CPU 和网络之外,影响系统性能极为关键的一环。客户相关的各类数据,网络运行的日志和维护记录等都需要通过存储保存。传统的 FC 存储使用不同于标准以太网的 FC 网络,而存储介质以硬盘为主,对于当前大量的非结构化数据来说,单盘每秒能进行的书写次数在 100 以内。要搭建高性能的系统,一是要有能支持更高读写速度的介质,二是要有合适的协议能高效承载数据,然后就是配套的网络和 CPU 能满足对应的性能要求。
根据国际权威机构 Wikibon 对未来存储市场的预测,存储市场整体稳步增长。但传统SAN/ NAS 存储的市场占比则持续降低,Hyper-Scale Server SAN 和和企业级 Server SAN 等分布式存储在 2021 年市场份额预计占比超过 80%,2026 年将超过 90%。决定分布式存储的关键则是核心软件和分布式的通讯互联。
图 1. 存储市场预测当前的问题和解决思路
目前主要问题是越来越大的需处理数据量与传统低速存储的矛盾。要解决这一问题,在本文开头的概述中我们提到需要更高性能的介质配合网络和 CPU,以提升节点的性能并打造可扩展的系统,应对日益增长的数据需求和性能要求。因此,福建电信探索通过 25G 网络及 RoCE 技术,实现高效的分布式数据解决方案,解决当前数据仓库的性能问题。
首先需要解决的是存储的架构问题。在资源池化的大环境下,传统存储肯定无法继续使用。出于海量数据本身的需求,为优化不同节点对存储的并行访问性能,使用分布式存储来解决问题是一个较好的思路。在分布式存储系统中,如何提升存储的远端访问性能,进而提升分布式存储整体效率,这是一个挑战。从协议的角度,可以使用 iSER 或 NVMF 等基于 RoCE 的访问技术;从网络的角度,更好利用网卡的卸载特性、以太网交换机的低延时、零丢包特性和先进的流控机制,能有效提高网络效率并降低 TCO,进一步提升分布式存储的性能和效率。
其次,对于使用哪种存储介质能满足高性能存储的要求,笔者认为 NVMe SSD 拥有较好的随机读写性能。且可以选择 U.2 接口的 NVMe SSD,可支持热插拔,也可根据需要实现 RAID,以满足存储的高可靠性要求。由于单块 NVMe SSD 的读写就需要高于 20Gb/S 的带宽,25GE 网络成为满足存储 IO 需求的起步配置。 然后,对于解决容量问题的需求,解决的思路是使用高速的 NVMe SSD 作为缓存,在之后使用大容量的硬盘来存储冷数据,这样通过智能缓存加速 IO 读写,同时通过海量硬盘实现大容量。
在既定的分布式架构下,存储性能的关键在于如何实现存储访问的加速。这个技术可以分为两个方面,一方面是保证远端存储和本地存储有近似的 IO 性能,另一方面是怎么样通过硬件卸载来保证 CPU 不被过度占用进而影响存储性能。之前提到的基于 RoCE 的网络技术能非常好的实现这个存储访问的加速。
除上述问题之外,由于是分布式架构,网络如何保证数据的完整性也是非常重要的。这里需要交换机和网卡端的配合来实现端到端的流控机制。如果硬件本身的可靠性和可用性都非常高,这也是对系统性能的一个有力保证。
采用以 Mellanox 为代表的高带宽低延迟智能网络和 RDMA/RoCE 技术能加速数据传递和高效无损无疑是构建分布式存储网络的关键之一。
方案框架
图 2. 分布式存储方案简图
基于上一章节的分析,此处给出实现分布式存储的框架,用于数据库云的承载。在图2 中计算节点和存储节点都连到 25GE 组网。无论计算节点还是存储节点,都使用双路25GE 捆绑替换原来的双路 10GE 网络。在前期实验网络中,共接入 27 个存储节点,每个存储节点配 4 块 3.2T NVMe 硬盘。在云平台之上承载容器化数据库,根据应用的需要,可以扩展计算节点或存储节点,以支持更高容量或更多用户。由于方案侧重远端资源池化的实现,因此我们的性能对比测试也主要针对不同网络的场景。
o 网络交换
在网络交换上,我们选择了业界低延时的存储网络交换机 Mellanox MSN2410,每台MSN2410 能支持高达 48 个 25GE 接口,同时支持 8 个 100GE 接口。在提供可靠硬件和灵活的端口支持基础长,MSN2410 能为分布式存储提供无与伦比的网络特性:
- 支持低至 300ns 的延时,且抖动小;
- 任意 64 字节及以上报文都能实现线速转发;
- 公平、可预测的端口资源分配保证最合理的带宽使用;
在报文处理的细节方面,MSN2410 能够通过其大缓存实现对于 Micro Burst 的最佳支持,同时先进的 ECN 标记方法和最快的 PFC 响应都能极好保证存储数据无损到达对端。
Mellanox 交换机配置简单,降低了安装和管理高速网络的复杂性,具有完善的监控和管理功能,可以通过软件实现监测管理。
o RoCE 网卡
在数据不断增长的环境中,所有数据的快速传输对于高效使用信息至关重要。基于远程直接内存访问 (RDMA) 的互连可为提升数据中心效率、降低整体复杂性以及提高数据交付性能提供理想选择。RDMA 使数据可以从存储传输到服务器,而无需通过 TCP/IP 以太网的 CPU 和主内存路径传递数据。可获得更高 CPU 和整体系统效率,因为存储和服务器的计算能力只用于计算(而不是处理)网络流量。尽管高带宽十分重要,但是如果没有低延迟,带宽就没什么价值。通过网络移动大量数据可以使用 TCP/IP 来实现,但是只有 RDMA 才能实现低延迟,避免成本高昂的传输延迟。而且,RDMA 卸载可减少抖动,这意味着低响应时间的一致性显著提高 RoCE 最终将 RDMA 技术引入基于以太网的数据中心,从而使这类数据中心可以受益于 RDMA 的低延迟。
Mellanox 从 ConnectX-4 系列网卡开始,可利用网卡中内置的基于管线的可编程 eSwitch 来快速处理虚拟化换将下的数据交互,ConnectX-4 Lx 可以在硬件中处理大部分数据包处理操作。这些操作包括 VXLAN 封装/解封、基于一组通用 L2-L4 包头字段的数据包分类、QoS 和访问控制列表 (ACL)。在存储方面,ConnectX-4 Lx 能支持 iSER 和 NVMf,此外,该网卡还能实现基于 VF 的限速机制以及纠删码的卸载,大大降低服务器与、网络交换机和存储节点之间的协调复杂性问题,提升服务质量。
性能对比
福建电信以 8 计算节点情形作性能测试,以衡量技术创新带来的优势。在关键的 4K 随机读写测试中,25GE RoCE 网络的吞吐是 10GE 网络的 9~14 倍左右,而延时相比 10GE 网络仅为其 5~10%。明显可见,25GE RoCE 网络大大提升了分布式存储的吞吐,也极好的降低了系统延时。在相同环境下,25GE 网络顺序读写的带宽也是 10GE 网络 2.2 倍以上,而延时则仅为 10GE 网络的 5%左右。
图 3. 顺序读写带宽对比
图 4. 顺序读写时延对比
图 5. 随机读写性能对比
图 6. 随机读写时延对比
结论与下一步展望
在相同高性能分布式存储上,使用 25GE 网卡比使用传统万兆以太网卡不仅有更高的IOPS 和 IO 吞吐量,特别是 IO 时延方面有明显优势。本文验证了分布式存储在核心生产系统部署的可行性、稳定性及高性能。下一步的工作可以结合应用来看,如何提升分布式存储和应用之间的贴合度,这是在电信生产系统中面临的进一步性能优化问题。此外 RoCE 技术在电信网络其他领域的推广也是一个值得探讨的方向。
参考文献:
1. RoCE in the Data Center. http://www.mellanox.com/relateddocs/whitepapers/roce_in_the_data_center.pdf
2. Application Acceleration with Mellanox RDMA enabled Networking Solutions. http://www.mellanox.com/related-docs/solutions/RoCE_MSFT_StorageSpaces_SB.PDF
3. MySQL Database Acceleration over Mangstor Low latency Storage and Mellanox Low Latency Networking. http://www.mellanox.com/relateddocs/solutions/SB_Mangstor_MySQL.pdf
4. 海量数据分布式存储技术的研究与应用, 李存琛, 2013, 北京邮电大学.
5. 基于云计算的分布式存储系统的研究和应用, 刘飞, 2012, 西安工业大学.