——谈高性能分布式存储在核心数据库的应用
作者:中国电信福建分公司企业信息化部郭建海
为解决福建电信数据库性能不足问题,本文从平台架构的角度分析了硬件和软件对性能的影响,创新地提出了使用远端内存直接访问技术(RDMA)构建云存储平台的思路。在标准以太网框架内,运行RDMA over Converged Ethernet(RoCE),在云端数据库上实现对非本地存储的高速访问,从而极大程度的提升了应用的吞吐。
通过进一步的实验和现网试运行验证,该框架对于改善系统整体延时也有非常好的效果。 基于理论分析和实践结果的互相论证,本文最后对于基于分布式存储构建高性能数据库云进行了总结,概括了其中的关键技术点,同时给出了可能存在的问题和下一步研究方向。
伴随着数据的指数级增长,给我们的生活带来便利的同时,也给电信网络带来更高的压力和需求。随着数据中心流量的增加,许多平台都迫切需要提高服务器和网络带宽。
除此之外,数据中心还需要一种可以有效扩展以适应未来需要的产品,10GE作为当前部署的主流带宽在这方面已有些力不从心。在互联网企业中,25GE以太网逐步开始承载云平台和关键业务,25GE拥有10GbE无可比拟的带宽优势,同时也具备极好的可扩展行来满足未来节点数增长的需求。
25GE技术可在成本和功耗较低的情况下在单个通道中提供较高带宽,从而提供更高的服务器和交换机端口密度。25GE是一种新标准,可利用为100GE以太网(作为在四个光缆或铜缆对上运行的四个25Gbps通道(IEEE802.3bj)而实施)定义的技术。
以25GE为基础构建的解决方案可与10GE、50GE、100GE以及未来的200GE和400GE产品向后和向前兼容,从而可确保适应未来解决方案的升级途径。随着高带宽互连越来越普遍,网络请求处理向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硬盘。在云平台之上承载容器化数据库,根据应用的需要,可以扩展计算节点或存储节点,以支持更高容量或更多用户。由于方案侧重远端资源池化的实现,因此我们的性能对比测试也主要针对不同网络的场景。
在网络交换上,我们选择了业界低延时的存储网络交换机Mellanox MSN2410,每台MSN2410能支持高达48个25GE接口,同时支持8个100GE接口。在提供可靠硬件和灵活的端口支持基础长,MSN2410能为分布式存储提供无与伦比的网络特性:
在报文处理的细节方面,MSN2410能够通过其大缓存实现对于Micro Burst的最佳支持,同时先进的ECN标记方法和最快的PFC响应都能极好保证存储数据无损到达对端。
Mellanox交换机配置简单,降低了安装和管理高速网络的复杂性,具有完善的监控和管理功能,可以通过软件实现监测管理。
不断增长的环境中,所有数据的快速传输对于高效使用信息至关重要。基于远程直接内存访问(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技术在电信网络其他领域的推广也是一个值得探讨的方向。
好文章,需要你的鼓励
临近年底,苹果公布了2024年App Store热门应用和游戏榜单,Temu再次成为美国下载量最多的免费应用。
云基础设施市场现在已经非常庞大,很难再有大的变化。但是,因为人们可以轻松地关闭服务器、存储和网络——就像开启它们那样,预测全球云基础设施开支可能非常困难。