数据库
首页 > 数据库> > 性能达到原生 MySQL 七倍,华为云 Taurus 技术解读

性能达到原生 MySQL 七倍,华为云 Taurus 技术解读

作者:互联网

吴林、黄伟

近日,华为云自研关系型数据库 Taurus 公开亮相。作为华为云自研的最新一代云原生分布式数据库,Taurus 完全兼容 MySQL 8.0,采用计算与存储分离、日志即数据的架构设计,支持 1 写 15 读,性能达到原生 MySQL 的 7 倍。

过去多年,数据库技术本质上并没有出现颠覆式发展。作为核心基础设施,数据库是一款用户粘性非常高的产品,一旦核心业务数据落定,企业轻易不会尝试更换,因此很长一段时间内,大众习惯于老牌 IT 厂商垄断数据库市场的状况。然而,云厂商涉足数据库领域的消息近年层出不穷,比如 AWS Aurora、阿里云 PolarDB 以及华为云 Taurus。

在互联网、移动和物联网等新场景之下,图片、音频、视频等非结构化数据开始出现爆炸性增长,传统数据库不堪重负,企业客户急切需要新的数据库产品。在云计算技术不断成熟的背景之下,云数据库开始崛起,并因为按需扩展、按需付费等特性获得大量中小企业及互联网客户的拥护。

从云厂商的入局也不难看出,现在做数据库的门槛并不像从前那么高,并不只有传统的数据库厂商可以做,单就这一领域的创业者也不少。在这种情况下,核心竞争力只可能从差异性发展而来,人人都在做且会做的东西很难形成核心竞争力。据此,华为云近日公开亮相的自研关系型数据库 Taurus 有什么不同?核心竞争力是什么?为什么性能足以达到原生 MySQL 的 7 倍?与云上 MySQL 相比,后者的不足之处有哪些?华为云进行了哪些修补?

云原生数据库技术趋势

传统的数据库体系结构已有 30 多年的历史,专为本地部署,本地存储和单机数据库实例而设计和优化,此后很长一段时间内,该体系结构未针对公有云环境进行优化。在公有云环境下,计算和存储通过网络分离以支持多租户数据库实例并 scale out 向两端扩展;并不要求单个节点的高可靠性。

举例来说,假设一个本地数据库的每个数据库实例都有本地存储,为了支持高可用性,通常部署一个备实例并使用数据库内部复制机制将数据库日志(MySQL binlog)发送到备实例重建数据库副本。目前,大多数云厂商都采用类似机制来支持云数据库高可用性。但是,这种内部复制机制并没有利用云存储已经通过存储层复制提供的可靠性,这导致大量存储和带宽浪费。实际上,备数据库实例可以通过云存储与主实例共享数据,不仅可以节省磁盘空间和带宽,还可以为云数据库服务提供快速 RTO。

很明显,在将传统数据库迁移上云时,需要重新设计和优化数据库系统。过去几年,主要云供应商,比如 AWS 和阿里云,已经做了部分工作。预计未来几年,更多云和数据库供应商将遵循这一趋势,构建某种形式的云原生数据库技术。此外,Gartner 预测,到 2019 年,90%的云数据库架构将支持计算和存储分离。

值得注意的是,除了基于云环境的数据库架构重新设计之外,这一领域还存在两大趋势:

云上 MySQL 的不足

当前,对于 RDS for MySQL,各大云厂商基本都采用主备高可用模式、主备间使用 Binlog 复制,该架构下每添加一个从库都需要全栈式资源,这导致了一些问题:

1、资源浪费

备库往往不承担流量;复制线程会消耗主库 / 从库计算资源,造成计算资源浪费;EVS 的 3 副本冗余机制下,N 个备库最大需要 3*(N+1) 个副本,造成存储资源浪费以及多种数据需要走存储网络进行刷盘,造成网络资源浪费等。

2、扩展性不佳

添加只读时需要拷贝数据,重放 binlog,对于大数据量情况下速度很慢,尤其是采用本地盘方案。主从复制延迟问题会让主备倒换受影响,难以保证 RTO。此外,采用物理备份、逻辑备份时备份恢复速度很慢, 1T 以上数据量都以小时计,使得数据库扩展性受限。
在这里插入图片描述

华为云 RDS 架构演进

华为云 Taurus 与 Amazon Aurora 数据库进化的方向是一致的,然而进化路径各有不同,这是由各自的数据库云服务实现方式不同所决定的。华为云 RDS MySQL 有如下几个版本,这些产品形态满足不同的用户业务场景,具有不同的特点,可以进行优势互补。

MySQL 单机版

MySQL 单机版采用数据库计算节点和存储节点分离的方式,利用云盘数据本身的可靠性和多副本的特性,同时也利用 ECS 云服务器虚拟化来提升标准化部署、版本和运维管理效率,能够满足低端用户不太注重高可用服务的业务场景。

MySQL 主备版

MySQL 高可用版则是针对企业级用户提供的高可用数据库版本,提供 99.95% 的 SLA 保障。采用 Active-Standby 高可用架构,主节点和备节点之间通过 MySQL Binlog 进行数据 Replication。当主节点发生故障,备节点接管服务。同时还支持最多 5 个只读节点,支持负载均衡的数据读写分离的访问方式。

MySQL 金融版

MySQL 金融版是针对金融行业等高端用户设计的高可用、高可靠云服务产品。一主两备三节点架构,可跨 AZ 部署,任意一台服务器宕机不影响业务可用性;基于 Paxos 协议,实现了分布式下数据的强一致性,拥有更加优异的故障恢复时间,满足数据容灾备份等业务场景的需求。

Taurus 的进化

在这里插入图片描述
Taurus 采用计算与存储解耦的技术架构,同时可以最多支持 15 个只读节点。主节点和只读节点之间是 Active-Active 的 Failover 方式,计算节点资源得到充分利用,由于使用共享存储,进一步降低了用户使用成本。

Taurus 的设计思想有几个大的革新:

另外在 DB Server 设计上,完全拥抱开源生态,完全兼容 MySQL 8.0。

华为云 Taurus 和 Amazon Aurora 的一个共同设计哲学就是,先推出一写多读的版本,根据市场需求,适时推出多写版本,满足绝大多数 OLTP 应用场景和性能要求。

Taurus 架构设计原则:

采用华为下一代云存储(DFV)作为快速,可扩展,可靠和共享数据库存储。不复制存储层中的已有功能,例如,数据复制,跨 AZ 可靠性,数据清理。

Taurus 数据库关键技术点剖析

在这里插入图片描述

Taurus 架构

如图所示,Taurus 是一个分布式集群架构设计,采用计算与存储分离的设计理念,满足公有云计算环境下用户业务弹性扩展的刚性需求。数据库计算节点和存储节点之间采用高速网络互联,并通过 RDMA 协议进行数据传输,使得 I/O 性能不再成为瓶颈。

数据库节点采用和 MySQL 完全兼容的设计。主节点和只读节点之间采用 Active-Active 的 Failover 方式,提供 DB 的高可用服务。同时 ,DB Server 之间仅需同步 Redo log 相关的元数据信息。

  1. SQL Nodes
  2. 管理客户端连接、解析 SQL 请求,、分析执行计划并执行和管理事务隔离级别
  3. 一主多读
  4. 主库和只读松耦合
  5. 主库和只读通信少
  6. 快速 Failover
  7. 引入内核中的一些特性
    Query result cache
    Query plan cache
    Online DDL

SQL Replication

只读节点在本地 buffer pool 中维护数据页的多个版本

主库交互

高速网络下的 RDMA 协议

部署 RoCE RDMA 以减少网络延迟并增加带宽。在单个 AZ 中,Taurus 可以利用高速网络(RDMA)来获得更新和读取的低延迟存储 I/O,这对于低客户端连接方案非常有用。

存储抽象层 (SAL)

存储抽象层 (SAL) 是逻辑层,将数据存储和 SQL 前端、事务、查询执行等进行隔离。由一组容量和处理能力按需扩展的分片节点组成,SAL 将所有 SQL 节点需要的数据页按分片管理和横向扩展。随着数据库规模的增长,可用资源(存储、内存)随着分片创建按比例增长。数据处理本地化,数据密集型操作是在存储节点上按分片服务执行。

Taurus Storage

Taurus 存储基于华为云存储 DFV 持久层。DFV 持久层集群包括多个存储节点。每个存储节点包含多个 SSD 设备和适应 SSD 介质的 append 存储服务进程。 DFV 持久层为 SQL 节点提供存储接口。

Taurus 采用日志化方式处理 SQL 节点数据,即通常表述的“日志即数据”。数据组织采用面向 SSD 重新设计的 Append 模式,显著减少系统写放大,减少存储时延。同时,在 Append 模式下,数据回滚和回档变得非常快速。

Taurus 核心竞争力

成本更低

与传统 RDS for MySQL 相比,只有一份存储。添加只读节点时,只需添加计算节点,无需额外购买存储。只读节点越多,节省的存储成本越多。

扩展性、可靠性更高

软硬结合,基于硬件:Hi1822 卸载,NVMe SSD,RDMA,同时内核进行优化:去掉 double write,Query Cache/Plan Cache 优化,Innodb Lock Management 优化,Audit Plugin 效率优化,性能达到原生 MySQL 的 7 倍。

备份恢复更快

专为 Taurus 引擎定制的分布式存储系统,极大提升数据备份、恢复性能

总结

通过以上介绍不难发现,Taurus 的共享存储架构将数据持久化放入新一代存储中,充分保障数据强一致性和 0 丢失;采用软硬件结合,充分利用 RDMA 网络、NVME SSD 等硬件优势,正是这些关键技术的整合创新,才使得 Taurus 的性能有了质的飞跃。

标签:存储,七倍,数据库,Taurus,MySQL,数据,节点
来源: https://blog.51cto.com/u_15214399/2808936