企业云原生数据库ArKDB介绍

企业云原生数据库ArKDB介绍

时间:2019-5-31 作者:极数云舟

关于云原生数据库

云原生思想是由技术大神Matt Stine 提出。2015年,Google发起成立云原生计算基金会(CNCF),逐步把云原生思想和技术体系发扬光大。现在CNCF已成为全球广泛认可的顶级技术组织,有关云原生的技术项目也层出不穷。

云原生数据库的思想来自于公有云厂商,他们总结了云上大规模数据库服务经验,结合云原生思想打造的新一代企业级分布式存储数据库。通过计算与存储解耦、共享日志存储、软硬件分层优化等革命性的技术变革,大大提升了数据库的性能和可用性,同时还拥有非常灵活的横向及纵向扩展能力,具有开源数据库的简单性和成本效益。

 

关于ArkDB

  • ArkDB是极数云舟基于崭新的云原生数据库思想自主研发的一款企业级云原生数据库。
  • ArkDB最大限度地兼容MySQL语法,并且全面支持MySQL 8.0。
  • ArkDB实现了计算与存储分离,其存储容量不受限制,能够快速弹性伸缩。 数据库集群共享同一份数据文件,能提供并行计算、无锁备份、数据分层治理、全局数据强一致性和整套的自动化运维管理方案。
  • ArkDB集群实现了计算节点分钟级弹性扩容,无论集群数据量有多大,都可以轻松扩展出任意从库节点, 集群一主多从的架构适用于企业多样化的数据库应用场景,尤其适用于读多写少、数据量大的场景。
  • ArkDB计算节点可以实现秒级切换, 解决了传统数据库异步同步数据切换时的数据延迟等数据不一致的风险,完美实现数据库读写高可用架构。
  • ArkDB解决了传统数据库单实例数据量大、备份迁移扩容频繁、分库分表人肉sharding、无法动态扩缩容节点的痛点,一切有关分库分表、扩容缩容、备份迁库等运维难题可以迎刃而解。
  • ArkDB具有完善的技术生态体系,结合数据库中间件Arkproxy、分布式监控套件Arksentinel、数据库同步工具Arkgate、数据库云管平台Arkcontrol,全面解决企业对数据库的技术需求。
  •  ArkDB让一切变得简单。

ArkDB整体架构

ArkDB主要包括两大核心组件ArkDB Server和 ArkDB Engine。整体架构图如下:

企业云原生数据库ArKDB介绍

ArkDB Server

       ArkDB Server 为数据库接入层,负责响应客户端链接和权限验证,接收并处理SQL请求,包含有连接管理、权限验证、分析器、优化器和执行器等。ArkDB Server为无状态节点在,自身不存储数据,可以快速无限水平扩展,同时通过操作ArkDB Server节点,实现整个数据库机器的高可用切换。在ArkDB Server层处理SQL请求的时候,需要适当内存和CPU资源,对存储则无要求,可以做针对性的硬件优化。

 

ArkDB Engine

 

       ArkDB Engine负责数据存储和读取,底层采用分布式存储。每个数据存储单位默认存储3副本,副本间的数据保持强一致性和容灾。ArkDB Engine负责存储数据并实现数据共享。上层ArkDB Server节点访问ArkDB Engine同一份数据。ArkDB Engine支持根据业务访问策略对数据存储分级,用户可以根据预算、性能指标、容量请求、访问场景按需使用不同的存储硬件,同时针对闪存卡进行软硬件结合优化。

ArkDB Engine是将数据存储于开源分布式存储系统,支持将ArkDB Server构建在Ceph和TiKV之上。

 

ArkDB核心特性

ArkDB核心特性如下:

 

简单易用

 

          MySQL是全球最流行的关系型开源数据库,实例安装部署和相关技术人员的数量都远远领先其他数据库。ArkDB兼容MySQL,并且在设计之初就确定兼容MySQL 8 开发,配置、接口、SQL语法全面兼容MySQL 8.0。 MySQL用户可以无缝迁移到ArkDB。ArkDB可以作为MySQL的分布式存储引擎存在,对于开发人员和DBA而言不需要学习新的知识和技术栈,可以快速运维ArkDB。

 

 

透明读写分离

 

ArkDB采用一主多从架构,主节点负责处理读写请求,从节点负责处理只读请求,ArkDB接入层通过分布式中间件Arkproxy提供透明读写分离、高可用、自适应负载均衡的能力。业务通过访问接入层地址,SQL请求会被自动分发到ArkDB集群各个节点,最大化提升集群处理能力。

 

计算存储分离

 

ArkDB将数据计算层和数据存储层完全分离, 可按不同业务场景进行定制化分层优化。 其中数据存储层是将数据通过Hash算法均匀分散在不同数据节点,集群存储数据量不受限制,可以弹性扩缩容。数据节点默认三副本,保证数据的高可用。同时 ArkDB将数据访问分散到不同的数据节点上实现数据库的并发读写,从传统数据库的磁盘IO压力转化为网络IO压力,按需配置万兆网卡可提升整体性能。

 

分布式存储

 

ArkDB数据节点底层使用分布式存储系统,具有自动管理、自动修复、无单点故障等特性。 ArkDB数据节点支持的高可用有两种方式,一种是默认的数据多副本且数据副本能够跨机房存储、感知机架位,大大提高了容灾率。当主副本出现损坏时会选举从副本为新的副本继续提供服务;另一种是纠删码,该方式能够容忍一定数量的磁盘故障,如果某些数据块丢失可以通过剩余的可用数据进行恢复。相比数据多副本的方式来保证系统可用性,纠删码可以节省大量存储空间,从数据多副本到单副本即可保证相同可用性,企业的总体成本在海量数据规模下得到极大的降低。

 

弹性伸缩

 

面对具有季节性(例如双11、双12促销)和突发性爆炸式增长的业务场景,系统的弹性伸缩能力往往成为决定系统可靠性的核心标准。ArkDB借助计算存储分离、秒级快照等优势,可以动态增删计算节点和存储节点以实现弹性扩缩容,ArkDB扩缩容内部自动完成,包括数据rebalance和热点削峰,彻底告别分库分表人工resharding的烦恼。当业务高峰旺季时可以快速扩容,当业务低峰淡季时可以按需缩容,ArkDB弹性伸缩是平台即服务的一个重要体现。

 

物理复制

      

          ArkDB主从实例直接读取物理Redo日志,将日志应用到数据页中。主实例获取各个从实例的应用LSN,以控制主库脏页的刷盘与检查点推进。从实例读取主实例最新的LSN,来决定是否需要应用新日志。相比传统基于逻辑日志的主从复制,ArkDB从节点没有SQL解析执行,极大减轻了从节点引擎的负担,也不存在主从之间的延迟。

同时ArkDB 作为MySQL一个引擎存在, Binlog方式仍然保留,可以完全兼容传统的复制方式,灵活组成MySQL高可用集群。例如线上已有MySQL为主库,ArkDB为从库。

 

数据分层治理

 

对于不同业务需求场景的数据访问,ArkDB根据数据访问策略不同其数据存储策略也不同。ArkDB支持根据访问策略对数据存储分级,用户可以根据预算、性能指标、容量请求、访问场景按需使用不同的存储硬件,能够极大的降低企业成本(TCO)。

根据常见的数据访问策略,ArkDB将数据存储分为如下三类存储需求:

  • 高性能,针对追求超高IOPS性能的业务场景,可以将 SATA SSD、PCIe SSD及NVMe等高性能闪存设备组建高性能池,物理对应的库表数据存储到高性能池。
  • 高吞吐, 使用高性能SSD作为日志盘,同时配合高带宽的业务场景。
  • 大容量, 针对温数据、冷数据甚至历史数据的业务场景,可以将大容量的机械盘构建成大容量池,通常历史统计分析库可以将数据存储到大容量池,同时使用纠删码来最大化存储容量和降低企业成本。

ArkDB支持不同存储需求间数据的在线变更,后台会自动rebalance。

 

无锁备份和快速恢复

              

              ArkDB利用分布式存储的快照技术可以实现无锁备份,整个备份过程在分钟级别即可完成数据库的备份。通过快照可快速恢复到指定时间点的数据,同时ArkDB支持延迟删除。对于集群存储节点而言,ArkDB底层共享同一份数据文件,数据支持多副本和纠删码。当ArkDB Server计算节点出现问题,分布式监控套件Arksentinel会从集群计算节点中选举出最新节点为写节点,集群读写节点切换对业务几乎无感知。

 

完整性事务支持

 

ArkDB  100%支持数据库事务ACID,同时支持MVCC多版本并发控制。

 

ArkDB技术生态体系

ArkDB有完善的技术生态体系,围绕着ArkDB生态的核心组件有数据库中间件Arkproxy、分布式监控哨兵Arksentinel、数据库实时同步系统Arkgate和数据库管理平台Arkcontrol,ArkDB生态架构图如下:

企业云原生数据库ArKDB介绍

 

 

数据库跨云中间件Arkproxy

Arkproxy是一个高性能、高可靠的数据库跨云中间件,可以屏蔽后端ArkDB的架构,为业务端提供统一的对外访问入口。主要职责是负责用户权限认证、接收并转发SQL访问请求。Arkproxy核心功能有:

  • 透明读写分离。
  • 100%兼容MySQL语法,对MySQL使用者非常友好。
  • 自动负载均衡和权重分发相结合,灵活控制数据库流量。
  • 内部实现消息压缩,同时实现用户连接数限制和统计。
  • 内置高效连接池,在高并发时大大提升数据库集群的处理能力。
  • 提供自定义一致性读和自路由一致性读来满足数据的强一致性读需求。

分布式监控套件Arksentinel

分布式监控套件Arksentinel监控整个 ArkDB 集群、Arkproxy集群的运行状况,实现系统监控、 故障发现、故障自动切换等功能。ArkSentinel 通常部署 3~5 个节点,每个节点都会对 集群节点进行监控,当 集群节点发生宕机或者不可达时,ArkSentinel 能够 自动的发起切换,将可用的从库提升为主库,完成故障转移的功能。具有系统监控、通知、自动故障转移、自身高可用、解决网络分区等核心功能, Arksentinel整合了极数云舟所有产品,使用一套账号和权限体系即可对所有产品进行监控。

 

数据实时同步系统Arkgate

数据实时同步系统Arkgate(也叫数据传输服务) 支持关系型数据库、NoSQL、NewSQL、大数据等异构数据源间的数据传输和实时同步。它是一个集数据迁移、数据传输、数据订阅、数据实时同步及双活切换于一体的数据实时异构同步系统 。

将源端Oracle、MySQL数据库的数据实时同步到ArkDB集群,ArkDB前期可以作为线上Oracle/MySQL集群的从库,通过线上业务的功能准确性和性能指标来评估和验证ArkDB功能和性能是一举两得的事情,经过验证后即可考虑提升为写库。

Arkgate核心功能有

  • 同构、异构数据源间数据迁移和实时同步。例如源端Oracle/MySQL到ArkDB、HBase、ES、Redis、Kafka的实时数据同步。
  • 公有云、私有云、自建IDC之间数据迁移,在云间进行数据传输。
  • 使用透明无侵入,对源端、目的端无任何侵入,只需要访问和执行权限即可。不关心源端、目的端是RDS还是自建数据库实例。
  • 支持库表迁移、增量迁移、全量迁移及规则迁移。
  • 内嵌丰富的ETL逻辑,支持源端和目的端不同库表间的库表聚合和库表数据分离。
  • 并行Apply,数据同步原生多线程支持,并行Apply。
  • 黑白名单,例如仅同步某些库表、某些敏感数据打码及危险操作过滤。
  • 低延迟、实时或准实时,数据同步高效。

 

 

 

数据库管理平台Arkcontrol

数据库管理平台是极数云舟自主研发的统一数据库云管平台,可以作为企业数据库私有云或者企业数据库自动化运维平台使用,它集成了数据库运维过程的所需要解决的多种功能,实现使用一个平台解决企业对数据库的所有需求的目标,目前全面支持MySQL、ArkDB, 逐步支持Oracle/  Redis/HBase/MongoDB等等各种常见的数据库系统,帮助企业统一管理多种数据库,是数据库All in One的管理系统。

企业云原生数据库ArKDB介绍

 

 

010-82833306 发送短信