华为云新型分布式数据库 Taurus 之谜

阅读数:28 2019 年 11 月 26 日 08:00

华为云新型分布式数据库 Taurus 之谜

3 月 30 日,由中国 MySQL 用户组主办的 ACMUG 全国巡讲深圳站圆满结束,华为云新一代企业级分布式数据库 Taurus 亮相技术峰会,其一系列高精尖特性背后的设计理念和技术原理也在外界的期盼中徐徐展现。

Taurus 是华为云自研的最新一代云原生分布式数据库,完全兼容 MySQL 8.0,采用计算与存储分离、日志即数据的架构设计,支持 1 写 15 读,性能达到原生 MySQL 的 7 倍。此外,Taurus 构建在共享分布式存储上,存储空间最高达 128T,能跨 AZ 部署。

纵观业界,华为云 Taurus 无论是功能还是性能,均走在了数据库领域的最前沿。那么,Taurus 又是如何推陈出新一步步走到今天的呢?

云上 MySQL 架构的不足

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

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

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

数据库作为承载业务和应用的核心所在,提供高扩展、高性能、高可用的分布式服务日渐成为用户刚需。如何兼容 MySQL 生态、对原有 MySQL 应用无需任何改造就能轻松迁移?如何存储互联网业务下的海量数据?如何保障无缝弹性扩容、高可用、高并发性能?而现在,这些问题都找了答案。

华为云 Taurus 分布式架构满足用户数据库高要求

华为云的宗旨一向是想客户之所想,急客户之所需,华为云数据库 Taurus 也正是在这样的背景下诞生。

架构上,Taurus 采用计算与存储分离,日志即数据,将 IO 密集型负载卸载到存储节点完成。Taurus 还充分利用云存储的能力,实现存储层实现独立容错和自愈服务和共享访问 (单写多读)。

此外,Taurus 还采用软硬件结合,充分利用 RDMA 网络、NVME SSD 等硬件优势,对内核进行深度优化,使性能有大幅提升。

对于大量对数据库有高要求的行业而言,华为云 Taurus 的推出无异于“雪中送炭”。不但性能强悍,而且数据安全可靠、业务有保障,可广泛应用于下面的应用场景。

强悍性能支撑业务拓展

随着 SaaS 应用在企业级市场的切入,高吞吐和高性价比随之成为大型互联网公司、传统大企业对数据库的要求。一方面,庞大的业务和高吞吐量使得开源库无法解决数据处理问题,另一方面,SQL Server、Oracle 等商用数据库的 license 费用也成为企业高成本的一大忧患。

Taurus 具有 RDMA、V5CPU、Optane 等硬件优势和数据库逻辑下推、释放算力、减少网络开销的架构优势,完全兼容 MySQL 8.0 并提供 7 倍于原生 MySQL 的性能,对用户而言不用改造业务就能充分享受超高性能的数据库服务。且成本只有商用数据库的 1/10。

极致可靠助力金融行业实现数据 0 丢失

故障闪恢复

受监管诉求驱动,可靠性和可用性是金融行业的核心诉求。第一要务是数据不能丢,其次是故障秒级恢复。但传统 MySQL 并不能支持此高要求。

Taurus 的共享存储架构,将数据持久化放入新一代存储中,充分保障数据强一致性和 0 丢失。Taurus 的存储 3 副本容错能力,使得数据库的单点故障 0 中断得以实现,加之对跨 AZ 部署和跨 Region 容灾的支持,让计算节点故障秒级恢复不再是难题。

多维扩展和海量存储

满足游戏行业高速发展需求

轻资产,快速扩容作为游戏行业使用云数据库驱动力,其主要目标在于解决无法预测用户流量以及产生的数据量、业务高峰时用户体验会受到影响甚至要停服扩容的问题。

Taurus 基于云虚拟化,单节点可规格变更,且计算节点支持双向扩展,支持 1 写 15 读,扩展比达 0.9。此外数据存储池化后最大可支持 128TB 容量,且存储按需计费, 扩容不中断业务,计算节点扩容也不会带来存储成本上升。

Taurus 的愿望很简单,希望用户同时享受商业级的技术服务和开源软件的生态红利。

本文转载自 HW 云数据库公众号。

评论

发布