原文链接:https://www.gbase.cn/community/post/4226
更多精彩内容尽在南大通用GBase技术社区,南大通用致力于成为用户最信赖的数据库产品供应商。
随着互联网时代的发展,飞速增长的业务需求使得数据库计算和存储压力急剧增大,而集群部署时间及业务的增长,造成数据库在运行性能及存储上逐渐会达到瓶颈。为了解决此类问题,需要通过增加主机来提升集群的性能及存储能力,为此南大通用GBase 8c多模多态分布式数据库增强了其扩容、缩容能力。
本文主要讲解南大通用GBase 8c分布式数据库的扩缩容方法。
扩容原理
GBase 8c分布式数据库存储节点扩容主要分为集群加节点、数据重分布两个阶段。
测试环境
IP | 硬件 | 软件 |
10.0.3.138 | CentOS7.7/x86_64架构8核/千兆网络/30G硬盘 | GBase 8c V5 |
10.0.3.139 | ||
10.0.3.140 | ||
10.0.3.137 | Benchmarksql 5.0 |
操作步骤
(1)部署GBase 8c分布式数据库后,检查集群状态并获取部署配置,执行如下命令:
gha_ctl monitor all -l http://10.0.3.138:2379 -HI
返回如下信息:
从图中可以看出,该集群采用3 计算节点(CN)+3 数据节点(DN)部署方式。
(2)使用benchmarksql 5.0加载200仓数据,通过bmsql_order_line表查看数据分布,执行命令:
select xc_node_id,count(*) from bmsql_order_line group by xc_node_id;
返回如下信息:
通过count列,可以看出数据分布相对均匀。
(3)缩容操作
集群缩容涉及数据搬迁,会把对被缩节点上的数据重分布到剩余节点,之后删除该节点。
a)生成一串UUID(每次使用的UUID不能重复)
cat /proc/sys/kernel/random/uuid
##例如返回:
42d49f97-a3d8-48da-96a7-7d50be79fd31
b)缩容节点,执行如下命令:
gha_ctl shrink datanode dn3 -l http://10.0.3.138:2379 -u 42d49f97-a3d8-48da-96a7-7d50be79fd31
##返回如下信息,表示正确的执行结果:
{
"ret":0,
"msg":"Success"
}
缩容操作需要一定时间,需要在返回两个Success之后,表示缩容成功。
c)查看集群状态
gha_ctl monitor all -l http://10.0.3.138:2379 -HI
返回如下信息:
对比步骤(1)的结果,可以看到初始的dn3节点组被删除。
d)查看数据分布
select xc_node_id ,count(*) from bmsql_order_line group by xc_node_id;
返回如下信息:
对比步骤(2)的结果,可以看出数据重新分布在当前两个数据节点,分布相对均匀。
(4)扩容操作
a)配置新增节点gbase用户互信,分别在三个节点上执行命令:
su gbase
ssh-keygen -t rsa
ssh-copy-id gbase@10.0.3.138
ssh-copy-id gbase@10.0.3.139
ssh-copy-id gbase@10.0.3.140
b)扩展新节点到集群中,执行如下命令:
gha_ctl deploy 10.0.3.140 -l http://10.0.3.138:2379
c)生成一串UUID,执行命令:
cat /proc/sys/kernel/random/uuid
##例如返回:
4dad80ff-3d1c-4cf6-a281-ab290571448f
d)扩容节点,执行如下命令:
gha_ctl expand datanode 'dn3 (dn3_1 10.0.3.140 15433 /home/gbase/data/dn3_1 7001)' -l http://10.0.3.138:2379 -u 4dad80ff-3d1c-4cf6-a281-ab290571448f
##返回如下信息,表示正确的执行结果:
{
"ret":0,
"msg":"Success"
}
在返回两次Success之后,扩容表示成功。
e)查看集群状态,执行如下命令:
gha_ctl monitor all -l http://10.0.3.138:2379 -HI
返回如下信息:
对比步骤(3)-c)中的结果,可以看出增加的dn3数据节点已经添加成功。
f)查看数据分布,执行命令:
select xc_node_id ,count(*) from bmsql_order_line group by xc_node_id;
返回如下信息:
对比步骤(3)-d)中的结果,可以看出数据已重新均匀分布。
通过以上实操步骤演示,希望对大家后续实现GBase 8c分布式数据库的扩缩容操作起到参考作用。
原文链接:https://www.gbase.cn/community/post/4226
更多精彩内容尽在南大通用GBase技术社区,南大通用致力于成为用户最信赖的数据库产品供应商。