当前位置: 首页 >> 技术文章 >> GaussDB T 系统架构
GaussDB T 系统架构
发布时间:2020-03-30 发布人:华为 169

墨天轮原文链接:https://www.modb.pro/db/22185


华为 GaussDB T 系统架构,单机部署架构、主备部署架构、分布式部署架构。

1. 单机部署架构

单机部署产品架构请参见图4-1

image.png

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

– 集群、主机和实例运行监控
– 数据库运行监控
– 故障诊断分析和上报
– 告警分析和上报

● Data Studio是一个集成开发环境,支持Windows和Linux安装,帮助数据库开发人员便捷地构建应用程序,以图形化界面形式提供数据库关键特性。Data Studio主要为数据库开发人员提供以下功能:
– 浏览数据库对象。
– 创建和管理数据库对象(例如:数据库、user、表、索引)。
– 执行SQL语句和SQL脚本。
– 编辑和执行PL/SQL语句。

软件架构如图4-2所示。

image.png

各个模块的详细介绍请参见表4-1。

名称

描述

说明




CM

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

CM由CM Agent和CM Server组成。 ● CM Agent:负责监控所在主机上主、备 DN节点的运行状态并将状态上报给CM Server。同时负责执行CM Server下发的 仲裁指令。GaussDB T集群的每台主机 上均有CM Agent进程。 ● CM Server:根据CM Agent上报的实例 状态判定当前是否需要修复,并下发指 令给CM Agent执行。

DN

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

DN由SQL引擎和存储引擎两部分构成: ● SQL引擎:用于解析SQL,优化SQL执行 计划,并行执行调用存储层接口并返回 结果。 ● 存储引擎:负责管理和持久化数据。

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。

Storage

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

-

2. 主备部署架构

主备部署产品架构请参见图4-3。

图 4-3 GaussDB T 产品架构图(主备)
image.png

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

– 集群、主机和实例运行监控
– 数据库运行监控
– 故障诊断分析和上报
– 告警分析和上报

● Data Studio是一个集成开发环境,支持Windows和Linux安装,帮助数据库开发人员便捷地构建应用程序,以图形化界面形式提供数据库关键特性。Data Studio主要为数据库开发人员提供以下功能:
– 浏览数据库对象。
– 创建和管理数据库对象(例如:数据库、user、表、索引)。
– 执行SQL语句和SQL脚本。
– 编辑和执行PL/SQL语句。

软件架构如图4-4所示。

图 4-4 软件架构(主备)
image.png

表 4-2 模块说明

名称

描述

说明




CM

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

CM由CM Agent和CM Server组成。 ● CM Agent:负责监控所在主机上CN节 点、主、备DN节点的运行状态并将状态 上报给CM Server。同时负责执行CM Server下发的仲裁指令。GaussDB T集群 的每台主机上均有CM Agent进程。 ● CM Server:根据CM Agent上报的实例 状态判定当前是否需要修复,并下发指 令给CM Agent执行。 GaussDB T提供了CM Server的主备实例方 案,以保证集群管理系统本身的高可用性。 正常情况下,CM Agent连接主CM Server,在主CM Server发生故障的情况 下,备CM Server会主动升为主CM Server,避免出现CM Server单点故障。

DN

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

DN由SQL引擎和存储引擎两部分构成: ● SQL引擎:用于解析SQL,优化SQL执行 计划,并行执行调用存储层接口并返回 结果。 ● 存储引擎:负责管理和持久化数据。 DN主、备机1、备机2的工作原理如下: – 主机同时向备机1,备机2同步数据。 – 主、备机1间无法正常同步数据时, 主DN会持续向备机2同步数据,不会 阻塞。 – 主、备机1间数据同步恢复正常后, 主DN会将异常期间的数据同步到备 机1上。 备机1从主DN同步数据期间,如果主 DN突然故障不可用。此时,备机2升 主。 注:最多支持1主8备,不支持级联备 份,只支持并行备份;

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。

Storage

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

-

3. 分布式部署架构

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

分布式部署产品架构请参见图4-5。

图 4-5 GaussDB T 产品架构图(分布式)
image.png

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

– 集群、主机和实例运行监控
– 数据库运行监控
– 故障诊断分析和上报
– 告警分析和上报

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

– 浏览数据库对象。
– 创建和管理数据库对象(例如:数据库、user、表、索引)。
– 执行SQL语句和SQL脚本。
– 编辑和执行PL/SQL语句。

软件架构如图4-6所示。

图 4-6 软件架构(分布式)
image.png
CN实例并不是每个物理节点都存在的,实例的详细介绍请参见表4-3。

表 4-3 模块说明

名称

描述

说明




CM

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

CM由CM Agent和CM Server组成。 ● CM Agent:负责监控所在主机上CN节 点、主、备DN节点的运行状态并将状态 上报给CM Server。同时负责执行CM Server下发的仲裁指令。GaussDB T集群 的每台主机上均有CM Agent进程。 ● CM Server:根据CM Agent上报的实例 状态判定当前是否需要修复,并下发指 令给CM Agent执行。 GaussDB T提供了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支持设置多 个存储备机。 DN主、备机1、备机2、备机3间的工作原 理如下: ● 主机同时向备机1,备机2同步数据。 ● 主机与备机1间无法正常同步数据时,主 DN会持续向备机2同步数据,不会阻 塞。 ● 主机、备机1间数据同步恢复正常后,主 DN会将异常期间的数据同步到备机1 上。 ● 当主机发生故障时,CM Server决策由哪 个备机自动接管。

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节点可设置多个备节点,主、备 节点之间通过数据复制保证GTS主、备时钟 一致性; 全局时钟服务器的优点:批量处理、无锁 化、无瓶颈点。GTS针对每个请求获取本地 时间,多并发之间没有互斥锁或内核互斥 锁,但取时间需要经过内核态调用。

Storage

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

-