GBase 8a的管理集群gcwre服务需要扩容的几个原因和方法

GBase 8a分为管理集群(gcware),调度集群(coor/gcluster)和计算集群(gnode),其中gcware负责集群状态,一致性等。在集群创建时,根据规模,基本部署3/5个节点即可。所以管理节点数量也就基本不会更改。本文介绍集中需要扩容gcware服务的情况,以及GBase 8a里扩容缩容管理节点的方法。

当前(2026-06-29)该功能仅在部分版本支持。如果你用的当前版本不支持,且会较频繁使用该功能,可以联系GBase 8a支持人员申请支持该功能的版本。

管理节点数量的选择

管理节点不负责具体的计算,所以一般低于20个节点的1+1副本集群,有3个节点即可。超过50个,或者集群副本为1+2共3副本时,可以部署5个节点。再多的没有实际意义。

管理节点的Master是投票选出的,所以建议部署奇数节点,比如3,5,不建议部署偶数,比如2,4。

需要扩容缩容管理节点的情况

实验局变正式局,要扩容

初期是实验局,给了部分数据,验证方案的可用性,一般是1-2个节点。等半年或一年之后验证通过变成正式局时,需要在原有集群上扩容而不是全新建一套。此时需要扩容管理节点。

业务数据规模明显增加,要扩容

业务初期可能有多个产品承接,后续全部转到一个产品,需要扩容。

在线主机更换,需要扩容和缩容

现有管理节点主机遇到遇到不可解决的问题,比如性能低下,配置差,RAID卡缺少电池等,需要更换成新的高性能主机。而业务上不允许走耗时长的节点替换流程(主要是复合节点数据重建耗时长)。此时需要通过扩容一台新的管理节点,等待数据自然老化,几个月后,数据自然重分布完成,再通过缩容的方式来剔除该管理节点。

集群业务减少,需要缩容

这个,也算个可能吧。上线时没分析对,最终发现整体规模要缩容到5个或更少,导致管理节点被迫缩容。

版本限制

953版本在制作时,考虑到业务上线后不可能做管理服务的扩容和缩容,最多做节点替换,故在产品手册里明确:不支持管理服务gcware的扩容和缩容。如果你的业务必须要用这个功能,可以联系服务人员确认版本是否支持。

如果现场不允许更换版本,可以联系支持人员考虑手工扩容。该方法有可能需要研发支持,不建议重要的生产环境使用。

如果现场允许更新版本,建议申请支持gcware扩容的新版本,升级后再操作。

管理服务gcware扩容操作

如下从单节点集群扩容到3节点集群。

所有节点服务全部要停止,包括管理,调度和计算。

环境

集群规模

单节点集群

[gbase@rh151 gcinstall]$ gcadmin
CLUSTER STATE:         ACTIVE
VIRTUAL CLUSTER MODE:  NORMAL

====================================
| GBASE GCWARE CLUSTER INFORMATION |
====================================
| NodeName |  IpAddress   | gcware |
------------------------------------
| gcware1  |  10.0.2.151  |  OPEN  |
------------------------------------
====================================================
|      GBASE COORDINATOR CLUSTER INFORMATION       |
====================================================
|   NodeName   | IpAddress  | gcluster | DataState |
----------------------------------------------------
| coordinator1 | 10.0.2.151 |   OPEN   |     0     |
----------------------------------------------------
=========================================================================================================
|                                    GBASE DATA CLUSTER INFORMATION                                     |
=========================================================================================================
| NodeName |                IpAddress                 | DistributionId | gnode | syncserver | DataState |
---------------------------------------------------------------------------------------------------------
|  node1   |                10.0.2.151                |       1        | OPEN  |    OPEN    |     0     |
---------------------------------------------------------------------------------------------------------

版本

9.5.3.28.18.r1_patch.10

扩容命令

安装目录/gcware/gcware_server/gcserver.py,参数如下:

[root@vm151 gcware_server]# ./gcserver.py  --help
Usage: gcserver.py [options]

Options:
  -h, --help            show this help message and exit
  -a                    do not prompt the user for confirmation
  --prefix=INSTALLPREFIX
                        gcware installation directory
  --host=GCWAREHOST     replaced node(s) of gcware which splitting by comma
  --gcwareHostNodeID=GCWAREHOSTNODEID
                        gcwareHosts' id which splitting by comma
  --dbaUser=DBAUSER     dba user
  --dbaPwd=DBAPWD       dba user password
  -r, --replace         replaced node
  -e, --extend          new gcware node
  -u, --uninstall       gcware node to be uninstalled
  --overwrite           new and complete overwrite
  --license_file=LICENSE_FILE
                        import license file
[root@vm151 gcware_server]# 

扩容操作

参数

  • -e 表示扩容
  • --prefix 数据库安装目录
  • --host 扩容的管理节点IP,多个用逗号分割
  • --dbaUser 默认是OS的gbase用户,
  • --dbaPwd 密码,一般是OS的gbase用户密码
[gbase@rh151 gcware_server]$ ./gcserver.py -e --prefix=/opt/gbase --host=10.0.2.152,10.0.2.153 --dbaPwd=111111
Check gcware server version ...
check dba home path privilege
10.0.2.152    10.0.2.153
Are you sure to extend gcware cluster install these nodes ([Y,y]/[N,n])?

。。
update cluster_common file successful
Starting all gcware nodes...
Starting all coordinator and data host ...
extend gcware node successful.
[gbase@rh151 gcware_server]$

扩容后效果

[gbase@rh151 gcware_server]$ gcadmin
CLUSTER STATE:         ACTIVE
VIRTUAL CLUSTER MODE:  NORMAL

====================================
| GBASE GCWARE CLUSTER INFORMATION |
====================================
| NodeName |  IpAddress   | gcware |
------------------------------------
| gcware1  |  10.0.2.151  |  OPEN  |
------------------------------------
| gcware2  |  10.0.2.152  |  OPEN  |
------------------------------------
| gcware3  |  10.0.2.153  |  OPEN  |
------------------------------------
====================================================
|      GBASE COORDINATOR CLUSTER INFORMATION       |
====================================================
|   NodeName   | IpAddress  | gcluster | DataState |
----------------------------------------------------
| coordinator1 | 10.0.2.151 |   OPEN   |     0     |
----------------------------------------------------
=========================================================================================================
|                                    GBASE DATA CLUSTER INFORMATION                                     |
=========================================================================================================
| NodeName |                IpAddress                 | DistributionId | gnode | syncserver | DataState |
---------------------------------------------------------------------------------------------------------
|  node1   |                10.0.2.151                |       1        | OPEN  |    OPEN    |     0     |
---------------------------------------------------------------------------------------------------------

[gbase@rh151 gcware_server]$

管理服务gcware缩容操作

与扩容基本一样,有如下注意事项

  • 被缩容的节点,不能是当前节点,必须在其它节点操作
  • 参数为 -u

缩容操作

从前面3个管理节点,缩容成2个管理节点的操作样例

[gbase@rh152 gcware_server]$ python gcserver.py -u --prefix=/opt/gbase --host=10.0.2.151 --dbaPwd=111111
Check gcware server version ...
check dba home path privilege
10.0.2.151
Are you sure to uinstall gcware cluster uninstall these nodes ([Y,y]/[N,n])?
...
update cluster_common file successful
clear gcware host ...
clear gcware host successful
Starting all gcware nodes...
Starting all coordinator and data host ...
uinstall gcware node successful.
[gbase@rh152 gcware_server]$ 

缩容后效果

[gbase@rh151 bin]$ gcadmin
CLUSTER STATE:         ACTIVE
VIRTUAL CLUSTER MODE:  NORMAL

====================================
| GBASE GCWARE CLUSTER INFORMATION |
====================================
| NodeName |  IpAddress   | gcware |
------------------------------------
| gcware1  |  10.0.2.152  |  OPEN  |
------------------------------------
| gcware2  |  10.0.2.153  |  OPEN  |
------------------------------------
====================================================
|      GBASE COORDINATOR CLUSTER INFORMATION       |
====================================================
|   NodeName   | IpAddress  | gcluster | DataState |
----------------------------------------------------
| coordinator1 | 10.0.2.151 |   OPEN   |     0     |
----------------------------------------------------
=========================================================================================================
|                                    GBASE DATA CLUSTER INFORMATION                                     |
=========================================================================================================
| NodeName |                IpAddress                 | DistributionId | gnode | syncserver | DataState |
---------------------------------------------------------------------------------------------------------
|  node1   |                10.0.2.151                |       1        | OPEN  |    OPEN    |     0     |
---------------------------------------------------------------------------------------------------------

[gbase@rh151 bin]$

总结

管理节点的扩容和缩容极其少见。本文介绍的方法,就是在客户遇到但没有方法解决时,客户不允许手工操作,必须完全脚本化,自动化才允许,故在部分版本才支持。