近两年,AWS、Azure等公有云巨头纷纷推出自研数据库服务。QingCloud不仅推出了分布式数据库RadonDB,还将这款经过公有云验证的数据库产品应用于企业数据中心。通过将分布式技术与数据库相结合,再加上SSD的性能加成,性能好得令人难以置信。例如网联宣布去年“双十一”时,交易量峰值达到每秒9.2万笔。如果使用RadonDB,可能只需要几台电脑就可以支持。温馨提示:阅读这篇较长的测试文章大约需要10分钟。如何根据企业需求建设面向未来的数据中心,是大多数CIO都在思考的问题。尤其是在智能终端时代,数据的普及让这个问题变得更加复杂。比如营业厅固定营业窗口使用手机银行,固定数量销售渠道使用手机APP,起源于网购的人为“狂欢节”等。节”……对于企业来说,IT负载变得不可预测,与此同时,生态系统内外的数据流转也变得越来越复杂和频繁。数据蔓延正在给企业的性能、容量和管理带来巨大的挑战。企业IT在IT演进的过程中,云计算一直被认为是企业IT的必由之路,这一点在过去几年得到了充分的印证,尤其是公有云的实践,将企业IT的需求和成本统筹为一体它们之间的矛盾使得混合云的趋势越来越明显,公有云的成功经验正越来越多地应用到企业内部数据中心,帮助企业更顺利地上云,已经成为一种企业级存储市场最主流趋势RadonDB分布式数据库:从公有云验证到企业级数据中心应用随着公有云服务在企业数据中心的应用,不仅可以帮助用户解决实际问题,也可以让公有云厂商更好地了解企业业务的特点,为后续推出符合用户需求的产品和解决方案做准备提供条件。一个典型的例子是数据库产品。近两年,AWS、Azure等公有云巨头相继推出了自研数据库服务。QingCloud不仅推出了分布式数据库RadonDB,还发布了这款经过公有云验证的数据库产品,应用于企业数据中心。与公有云环境相比,企业数据中心的业务更为复杂,对IT基础设施的要求也更高。数据库不仅需要部署在数据中心的物理服务器、虚拟机、容器等私有云环境中,必要时还可以扩展到公有云。软件定义存储和SSD的应用推动分布式数据库进入企业数据中心。其实存储和数据库的结合也更紧密(比如ServerSAN的一个主要场景就是数据库)。SSD的高性能优势在一定程度上有助于提升数据库的性能,简化数据库架构,使分布式成为可能,理论上实现了容量的极致扩展,性能也呈线性增长。RadonDB是青云QingCloud的新一代分布式数据库,基于开源的MySQL技术开发,MySQL是目前全球应用最广泛的数据库。其开源性可以消除厂商锁定,开源社区的蓬勃发展培养了一大批精通MySQL的人才,为企业部署、应用和管理MySQL提供了便利。与x86服务器一样,它不仅易于使用,而且易于管理,有助于降低企业数据中心的成本。然而在海量数据时代,单机版的MySQL数据库已经难以满足企业应用的需求,部署集群版的MySQL更多是出于可靠性的考虑。虽然也有一些公司开发了基于MySQL的分布式部署版本,但更多是面向特定产品,距离成熟的产品还有很长的路要走。RadonDB率先在公有云应用改进,然后根据企业应用的特点进行优化,进而形成标准的商业产品,方便企业用户使用。具体来说,RadonDB主要包括两个模块的改进和创新:radon和xenon。radon是一个分布式SQL层,主要负责数据路由和计算;xenon是MySQL集群的高可用组件,用于构建分布式存储层,具有秒级选主(Master),选主后数据快速回放,并实现主从切换后数据零丢失的功能.在技??术上,RadonDB进一步扩展了分库分表的概念,使其成为一个开源的高可用、满足Snapshot隔离级别分布式事务的分布式数据库,而不仅仅是一个分库分表组件。RadonDB分布式数据库架构图(来源:QingyunQingCloud)RadonDB性能测试环境搭建及组件说明一般来说,数据库和存储(准确的说是块存储)的关系非常密切,通常数据库的性能与存储性能。一方面,分布式存储的性能取决于硬件,也与分布式存储软件本身的优化有关。RadonDB测试架构如下图所示:整个测试环境由6台服务器和一台25GbE交换机组成,主要分为分布式存储环境和RadonDB分布式数据库环境。每台服务器配备2颗IntelXeonE5-2650v4处理器(12核,2.2GHz)和64GB内存。在存储方面,为了更好地体现RadonDB分布式数据库的性能,E企业研究院采用分布式存储的“全闪存”配置作为RadonDB数据库存储。分布式存储最少部署3个节点,每个节点配置4块4TB大容量IntelDCP4510SSD。这是英特尔第四代U.2接口的NVMeSSD。更好的性能和更大的容量,更容易观察到RadonDB数据库的性能上限。分布式存储方案采用新一代25GbE网络,增加内部数据流通带宽。根据以往的测试经验,在全闪存配置环境下,10GbE网络通常会成为存储瓶颈,进而影响应用性能。因此本次RadonDB测试使用了25GbE网络,分布式存储通过iSCSI连接RadonDB数据。iSCSI是企业环境中标准通用的数据传输技术,可以将对企业现有环境的影响降到最低。同时,25GbE可以更好地支持RDMA技术(RemoteDirectMemoryAccess,远程直接内存访问),即RoCE或iWARP,在iSCSI连接无法提供存储性能的情况下,可以轻松升级到新的数据传输协议应用程序需要,例如iSER(RDMA的iSCSI扩展)或NVMeoverFabric。在数据库方面,RadonDB最少可以部署两个节点(满足最低可用性),通常从三个节点开始。本次测试采用三节点部署,以两节点数据库的性能为参考,考虑RadonDB数据库的扩展性。使用RadonDB的自动化部署和运维工具Ansible进行简单的端口和变量设置,实现一键安装。整个部署过程简单方便。E企业研究院希望尽可能贴近真实应用环境,通过测试模型尽可能逼真地模拟实际应用环境,但实际环境中通常存在很多不可预知的情况,这些情况与具体应用负载。E企业研究院在本次测试中使用了Sysbench软件对RadonDB数据库的性能进行了评估,并根据大部分应用的运行负载构建了测试数据,为尽可能多的用户提供参考。同时,为了进一步探索RadonDB分布式数据库的极限,因为关系到RadonDB数据库的应用场景,E企研究院对测试组件做了一些调整,使用了IntelDCP4800XSSD作为RadonDB数据库的数据缓存。IntelDCP4800XSSD是Intel公司的Optane(傲腾)。与SSD相比,读写能力更均衡,延迟更低。根据Intel实验室数据:与NANDSSD相比,Optane作为数据库缓存使用,数据库有dataMultiplier性能提升。Intel使用Optane作为数据库缓存,有超过3倍的性能提升,数据库的平均响应时间减少了大约3倍,可见Optane的优秀性能(来自Intel)。随着人工智能、大数据分析等的应用,随着互联网的兴起,企业场景化、个性化服务等创新业务越来越依赖移动互联网。手机和互联网交易已成为主流交易渠道。促销、抢购等活动往往会导致业务突然出现高点,业务数据量和交易量的激增对企业数据库提出了很高的要求。为此,易企研究院的测试是围绕“性能”展开的。一个是RadonDB数据库在最低配置下的性能,另一个是RadonDB数据库从2节点扩展到3节点后的性能变化。RadonDB小测:数据库领域分布式技术验证E企业研究院使用Sysbench软件在RadonDB和MySQL数据库中建了16张表,共计2亿行数据,占用存储空间约80GB。在读写性能测试中,一个事务就是一个SQL;在混合读写中,一个事务包含4条读SQL和1条写SQL。E企业研究院首先分别测试了RadonDB数据库在2节点和3节点下的性能,并以单机MySQL(社区版5.7.22)的性能作为参考组。两者的软硬件配置完全相同,均采用同容量的SSD作为数据存储。部署在两个节点上的RadonDB数据库在写场景下与单机部署的MySQL数据库性能大致相当,前者略高。可以理解,在分布式环境中,双节点部署通常是为了可用性而设计的,单节点部署的写入性能相差不大。但是在读性能上,部署在两个节点上的RadonDB数据库的性能相比单机部署的MySQL数据库性能有很大的提升(这有点类似于RAID1的读写性能特点).在部署了3个节点的RadonDB数据库环境中,与2个节点相比,其性能提升了1倍左右。如上图所示,三节点RadonDB的8万TPS相比双节点RadonDB的3.5万TPS提升了一倍多,读取性能也提升了50%左右。在混合场景下(读写比8:2)性能提升约80%。与2节点的最低部署配置相比,3节点正常部署下,性能会是单机部署MySQL的2倍左右。在延迟方面,RadonDB数据库发挥了“分布式”技术的优势,即通过多节点并行读写,不仅可以提升数据库的性能,还可以大大降低数据库中的瓶颈延迟。事务处理过程。如上图所示,在读性能方面,3节点RadonDB数据库的平均延迟仅为MySQL的60%。在写入性能方面,RadonDB数据库的平均延迟约为MySQL的三分之一,在混合读写测试中,也有所降低。大约是MySQL数据库平均延迟的一半。更高的性能和更低的平均延迟意味着RadonDB数据库可以支持更多核心和关键的应用场景。分布式原则不仅提供了更好的可用性,而且性能和延迟可以满足更苛刻的应用需求。而更重要的是,这验证了分布式技术同样适用于数据库领域,能够为应用需求提供“弹性”,即可伸缩的性能和容量。不可预测性是现代IT面临的主要问题。分布式与数据库的结合意味着RadonDB可以像分布式计算或分布式存储技术一样,可以根据企业现有的应用需求进行部署。根据性能需求的变化,通过增加或删除数据库节点来进行灵活的调整(性能或容量)。对于OLTP应用:如何进行性能扩展之前的测试是验证RadonDB数据库在实验室极端环境下的性能,同时也验证环境是否安装配置正确,其性能数据不代表生产环境中的性能。排除极少数极端情况,实际环境中数据库的读写负载模型更为复杂多变,与具体应用直接相关。在本次测试中,E企业研究院希望通过模拟一个真实的应用负载,来考量QingCloudRadonDB数据库在性能扩展方面的表现。OLTP是数据库最常见、最核心的应用场景之一。它通常是关键企业应用程序的同义词。它通常意味着可靠性、可用性和高性能。在海量数据时代,也增加了一个要求。即(性能和容量)可扩展性,从数据库层面来看,即数据库的管理和优化,通常是一个长期的过程,与应用负载的变化密切相关。数据库优化方法与存储系统特性的变化密切相关。随着云计算时代的深入,尤其是分布式技术的不断普及和深入,越来越多的企业IT架构正在发生变革,例如分布式计算和存储行业的技术革新。公有云提供商将分布式技术应用到数据库领域,也会影响和改变数据库的管理和优化方式。数据库优化,在一定程度上就是根据应用的特点,对数据的处理方式和存储位置做出相应的改变,因为(SAN)存储很难做出改变。而云计算时代的数据库,在引入分布式技术之后,为数据库性能优化提供了另一种选择,借用了存储界的两个名词:Scale-out水平扩展和Scale-up垂直扩展。典型的数据库如RadonDB,可以通过分布式原理增加节点数,提高性能和容量;而计算、存储、网络等硬件技术的发展,为单个数据库节点的性能提升带来了条件。但对用户来说有一个重要前提:RadonDB等新兴数据库都是基于标准的x86硬件,这意味着他们可以享受到x86带来的性能红利及其周边硬件更新更快。比如支持U.2接口的NVMeSSD和25GbE网络几乎是主流x86服务器的标配。时间,更不用说支持RDMA的25GbE网络了。因此,围绕这两个特点设计了以下测试:一方面,测试配置了两节点和三节点的RadonDB数据库的性能,并考虑其Scale-out水平扩展后的性能变化;在不改变其他条件的情况下,添加性能更好的存储介质(即Optane作为缓存),以反映RadonDB数据库在使用新硬件后的性能变化。以下是测试结果:RadonDB分布式数据库从2节点扩展到3节点后,数据库性能从6824TPS(TransactionsPerSecond,每秒在线事务处理数,衡量数据库性能的单位)提升到11285TPS,TPS提升了约1倍左右;平均延迟从2个节点的75ms下降到3个节点的45ms,时间几乎减少了一半。对于基于开源的商业数据库产品来说,将单个数据库系统的TPS从几千提升到几万,是一个不小的进步。比如说到网购,第一反应可能就是“双十一”。该政策规定,所有网购支付必须通过网联清算公司(简称“网联”)的结算平台。根据网联公布的2019年“双十一”数据:当天共处理交易笔数11.7亿笔,高峰时每秒处理交易笔数约9.2万笔。虽然不能等同于实际情况,但说不定一个10节点的RadonDB数据库就可以支撑这个负载呢?当然,为了可靠性,还需要几个额外的备份。这只是使用NANDSSD进行数据库存储的情况。如果使用性能更好的新硬件来支持每秒100,000个事务,RadonDB数据库节点的数量可能会减少到个位数。因为在另一项测试中,E企业研究院在每个RadonDB数据库节点上增加了两块容量为375GB的IntelOptaneSSDDCP4800X(简称Optane,即傲腾SSD),互为冗余,用作数据库缓存,主要利用Optane的高写入性能来加速数据库写入IO。同样在两节点和三节点RadonDB数据库环境下进行了测试,其性能变化如下:使用Optane作为缓存后,RadonDB数据库两节点性能提升至26900TPS,约为是不使用Optane情况下的4倍;三节点性能从11285上升到60996,RadonDB数据库性能至少提升了5倍。而且,数据库响应时间也有很大的提升。如上表所列,在不使用Optane时,2节点和3节点RadonDB数据库的响应时间分别为75ms和19ms。使用傲腾后,在相同的测试条件下,响应时间分别下降到45ms和8ms,约为使用傲腾前的四分之一。就数据库而言,或许只有少数RadonDB数据库能够支撑“双十一”的庞大交易量。这是由于分布式技术的应用;借助x86生态系统,RadonDB数据库可以在最短时间内验证和应用更新的硬件技术或性能更好的产品,从而进一步提升数据库本身的性能。当然,虽然这只是实验室数据,但还有待于实际环境的验证。不过,从电子商务研究院以往的测试数据来看,RadonDB分布式数据库已经初步具备成为企业关键应用数据库的条件,具有良好的性能、可用??性和易维护性,将带来“分布式”技术“弹性”与数据库相得益彰,虽然本次测试的结果主要以性能数据呈现,但背后是RadonDB数据库区别于传统数据库的特点,比如RadonDB数据库性能和容量的可扩展性。也可以从新硬件的采用上获得,这离不开x86强大的生态;另一个强大的生态是MySQL开源社区。开源社区,还可以获得宝贵的学习经验和数据库管理人才,以及尽可能降低企业用户更新所需的学习成本;而青云QingCloud公有云提供商的基因助推了RadonDB的产品化进程,不仅可以了解企业用户的应用,同时也可以加快其研发速度,让RadonDB更具体地满足海量数据时代数据库的性能和容量需求。2018年初,RadonDB已经在GitHub上开源,大家可以通过radondb.io了解更多细节和深度体验。
