GaussDB(DWS)集群拓扑详解

举报
闻鲜生 发表于 2021/08/16 20:02:35 2021/08/16
【摘要】 通过本文对DWS集群组件结构及部署拓扑进行全面深入的了解,可以方便的后续的运维,或者扩展另类的性能调优思路。

逻辑拓扑介绍

DWS集群物理上由3到多个节点组成,目前最大支持256节点。节点可以是ECS,也可以是BMS

DWS逻辑上包括OMCMGTMWLMCNDN六种类型的实例组件,每类组件提供的功能不动,配置的数量也不同,但是共同配合,支撑DWS的运维和业务功能。

想要了解DWS组件,首先再介绍下典型的耳熟能详的DWS集群逻辑架构图。


  • OM:运维管理组件,提供触发式运维管理功能。每个节点都部署。
  • CM:集群管理组件,提供自动化集群管理功能。每个节点都部署。
  • GTM:全局事务管理,负责生成和维护全局事务ID、事务快照、时间戳等全局唯一的信息。DWS集群部署2个,一主一备,分布在不同的节点上。
  • WLM:工作负载管理,控制系统资源的分配,防止过量业务负载对系统的冲击而导致业务拥塞和系统崩溃。内置在CNDN实例内。
  • CN:协调节点。负责接收来自应用的访问请求,并向客户端返回执行结果;负责分解任务,并调度任务分片在各DN上并行执行。决定了对外提供的业务访问能力,默认部署2个,最大支持5个,可以在console上增删CN实例。
  • DN:数据节点。负责存储业务数据(支持行存、列存、混合存储)、执行数据查询任务以及向CN返回执行结果。决定了对外提供的业务处理能力,根据节点规格,每个节点部署2-4个,DWS目前最大支持1024个。

实例ID介绍

如上,DWS包括6类实例,每类实例也支持部署多个不等。在大集群下,这些实例的配合将会特别复杂。那DWS是怎么管理这些实例的呢?

首先,DWS给每类实例的每一个实例都分配了一个ID来唯一标示这个实例。

  • CM-om_monitor:无编号
  • CM-cm_server:主编号:1,备编号:2
  • CM-cm_agent:按节点顺序编号,区间[10001,19999]
  • CM-etcd:按节点顺序编号,区间[7001,10000]
  • gtm:主编号:1001,备编号:1002
  • CN:按节点顺序编号,区间[5001,6000] --pgxc_node加前缀cn_
  • DN-主机/备机:按节点顺序编号,区间[6001,6999] [40000,int_max] --奇数位为master datanode,下一个偶数位为对应的standby datanode  --pgxc_node加前缀dn_
  • DN-从备:按节点顺序编号,区间[3002,4999] [20000,39999]

 

安全环介绍

每个实例已经分配了一个唯一编号,那下一步就是如何组织部署这些实例ID,从而达到可靠性,性能,均衡性的最优解。DWS提出了安全环的概念。

安全环是指DN多副本横向部署的最小主机集合。安全环主要作用是故障隔离,可以抵抗节点故障(物理主机)带来的损失。环内主机出现故障,故障不会扩散到环外。如果环内某一单节点故障,所有DN在环内都有副本存在,数据不会丢失。例如Server1发生故障后,DN1的备节点在Server2上,DN2的备节点在Server3上,DN3的节点在Server3上。每个Server运行4个主DN,环内的各主机性能仍然保证均衡。整个集群可以承受的主机故障的最小数为1台,最大数为安全环的数量。

DWS属于主备从架构,因此最小安全环节点数为3个节点。环内出现故障时,对环外无影响,对整个集群的影响的节点范围最小(3节点),对环内每个节点的影响为1/(N-1),即1/2。极端场景下整个集群是一个安全环。环内出现故障,对整个集群的影响的节点范围最大(整个集群),对环内每个节点的影响最小,为1/(N-1)。一种常见的做法是N+1成环,每个节点把他的N个备机均匀分散部署到环内的其余N个节点上。环内出现故障时,对整个集群的影响的节点范围为N+1,对环内每个节点的影响为1/N

DWS历史版本为3节点成环,末尾不足3节点的追加到上个环。8.1后修改为N+1节点成环,末尾不足成环的节点全部追加到上个安全环。N为每个节点部署的DN数量。


通讯矩阵介绍

DWS网络通道可分运维通道和业务通道。

OM运维操作,CM管理GTMCNDN走运维通道,即运维面。

业务接入时,CNGTMDN间通信走业务通道,即业务面。

典型的组网结构如下,详细的通讯矩阵可参见产品文档《通讯矩阵》。


 三者关联关系

DWS实例ID,集群拓扑,通讯矩阵虽然都是部署架构层面上的事情,但是又是密切关联。通过集群拓扑可以了解CNDN的部署情况,DN主备的分布情况。进一步了解节点的负载情况,节点故障时影响的实例范围等。

可以通过系统表pgxc_node清晰的看到三者的关联关系。

如下是个三节点集群,总共3CN6DN的集群配置。我们将逐个详解:

node_type

C代表CND代表DN

node_name

实例名称,cn或者dn前缀,后面为实例id

DN有两个分别为主及和对应备机的实例id

node_host

CNDN主机的IP地址。

node_host1

DN备机的IP地址。通过node_hostnode_host1可以看到该DN主备的部署位置,从而看出安全环信息。

node_port

CN或者主DN的监听端口号。

node_port1

DN的监听端口号

sctp_port

主节点使用TCP代理通信库或SCTP通信库的数据通道监听端口。

control_port

主节点使用TCP代理通信库或SCTP通信库的控制通道监听端口。

sctp_port1

备节点使用TCP代理通信库或SCTP通信库的数据通道监听端口。

control_port1

备节点使用TCP代理通信库或SCTP通信库的控制通道监听端口。

nodeis_central

标识CN是否为主CN

hostis_primary

表明当前节点是否发生主备切换。

nodeis_primary

replication表下,是否优选当前节点作为优先执行的节点进行非查询操作。

nodeis_preferred

replication表下,是否优选当前节点作为首选的节点进行查询。

 DWS博文后缀.png

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。