暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

华为GaussDB T 系统架构

墨天轮 2019-09-28
2598

系统架构

GaussDB 100采用Shared-nothing架构的分布式系统,它是由众多拥有独立且互不共享CPU、内存、存储等系统资源的逻辑节点组成。在这样的系统架构中,业务数据被分散存储在多个主机上,数据访问任务被推送到数据所在位置就近执行,通过控制模块的协调,并行地完成大规模的数据处理工作,实现对数据处理的快速响应。

Share-nothing架构

Share-nothing又称为无共享架构,和其他架构的对比请参见图1。

图1 架构对比

Share-nothing架构具备如下优点:

  • 最易于扩展的架构。
    • 为高并发、大数据量访问提供按需扩展的能力。
    • 自动化的并行处理机制。
  • 内部处理自动化并行,无需人工分区或优化。
    • 数据加载和访问方式与一般数据库相同。
    • 数据分布在所有的并行节点上。
    • 每个节点只处理其中一部分数据。
  • 最优化的I/O处理。
    • 所有的节点同时进行并行处理。
    • 节点之间完全无共享,无I/O冲突。
  • 增加节点实现线性扩展。

GaussDB 100软件架构

GaussDB 100是基于Share-nothing架构的分布式、并行数据库集群。

  • 单机/主备部署产品架构请参见图2,如果单机部署则无备DN。
  • 分布式部署产品架构请参见图3。
图2 GaussDB 100产品架构图(单机/主备)
图3 GaussDB 100产品架构图(分布式)

CN实例并不是每个物理节点都存在的,实例的详细介绍请参见表1。

GaussDB 100提供多种不同的数据库管理工具,帮助用户更好地维护GaussDB 100,详情请查看数据库管理工具。

Database Manager是一款基于Web的数据库监控工具,提供丰富的界面展示,可有效监控多个集群数据库。通过管理员用户和普通用户区分查看和操作权限,对集群数据库进行安全的监控和运维操作。Database Manager提供的主要功能包括:
  • 导入并监控集群

  • 集群、主机和实例运行监控

  • 数据库运行监控

  • 故障诊断分析和上报

  • 告警分析和上报

Data Studio是一个集成开发环境,帮助数据库开发人员便捷地构建应用程序的一款工具,以图形化界面形式提供数据库关键特性。Data Studio主要为数据库开发人员提供以下功能:

  • 浏览数据库对象。

  • 创建和管理数据库对象(例如:数据库、user、表、索引)。

  • 执行SQL语句和SQL脚本。

  • 编辑和执行PL/SQL语句。

GaussDB 100逻辑架构如图4所示。

图4 软件架构
表1 模块说明

名称

描述

说明

OM

运维管理模块(Operation Manager)。提供集群日常运维、配置管理的管理接口、工具。

不同于集群中的实例(CM、CN、DN)模块,OM为用户提供了相关工具对集群进行管理。

CM

集群管理模块(Cluster Manager)。管理和监控分布式系统中各个功能单元和物理资源的运行情况,确保整个系统的稳定运行。

CM由CM Agent、daemon和CM Server组成。

  • CM Agent:负责监控所在主机上CN、主备DN的运行状态并将状态上报给CM Server。同时负责执行CM Server下发的仲裁指令。GaussDB 100集群的每台主机上均有CM Agent进程。
  • daemon :看护CM Agent的定时任务。负责在CM Agent意外停止的情况下将CM Agent重启。
  • CM Server:根据CM Agent上报的实例状态判定当前是否需要修复,并下发指令给CM Agent执行。

GaussDB 100提供了CM Server的主备实例方案,以保证集群管理系统本身的高可用性。正常情况下,CM Agent连接主CM Server,在主CM Server发生故障的情况下,备CM Server会主动升为主CM Server,避免出现CM Server单点故障。

CN

协同调度节点(Coordinator Node)。负责接收来自应用的访问请求,并向客户端返回执行结果;负责分解任务,并调度任务分片在各DN上并行执行。

集群中,CN有多个且CN的角色是平等的(执行DML语句时连接到任何一个CN都可以得到一致的结果)。只需要在CN和应用程序之间增加一个负载均衡器,使得CN对应用是透明的。CN故障时,由负载均衡自动路由连接到另外一个CN。

当前分布式事务框架下无法避免CN之间的互连,建议CN配置数目<10个。

DN

数据节点(Datanode)。负责存储业务数据,执行数据查询任务以及向CN返回执行结果。

在集群中,DN有多个。每个DN支持设置多个存储备机。

使用Zenith_HA内核的DN支持设置同步备机和异步备机,使用Zenith_ZPAXOS内核的DN则不做此区分。

DN主、备机1、备机2、备机3间的工作原理如下:

  • 主机同时向备机1,备机2同步数据。
  • 主、备机1间无法正常同步数据时,主DN会持续向备机2同步数据,不会阻塞。
  • 主、备机1间数据同步恢复正常后,主DN会将异常期间的数据同步到备机1DN上。

    备机1DN从主DN同步数据期间,如果主DN突然故障不可用。此时,备机2升主,备机3不会升主,只有手动切换或者同城所有DN故障备机3才会升主 。

ETCD

ETCD是一个高可用的分布式键值(key-value)数据库。

负责存储集群各个节点和实例集群状态,便于集群CM管理各个实例。

在集群中,ETCD至少要有3个,可以有多个但必须是奇数个,角色分leader和follower。ETCD leader和ETCD follower间工作原理如下:

  • ETCD leader同时向所有ETCD follower同步数据。
  • 写入数据到ETCD leader时,会根据raft一致性协议,与ETCD follower达成大多数一致后才能写入成功。
  • 当ETCD 没有leader时,所有ETCD follower会自发启动抢主流程,重新选举出新的ETCD leader。

GTS

全局时钟服务器(Global Time Server)。 用于强一致场景下,为各个节点提供逻辑时钟。

全局时钟服务器(GTS)通过提供全局逻辑时钟,实现sharding间数据的强一致性读;集群中GTS节点可设置多个备节点,主备节点间的时钟通过配置NTP服务保障时间的递增属性。

时间服务器的优点有:无状态、批量处理、无锁化、无瓶颈点。GTS针对每个请求获取本地时间,多并发之间没有互斥锁或内核互斥锁,但取时间需要经过内核态调用。

Storage

服务器的本地存储资源,持久化存储数据。

-

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论