GBase 8a
运维管理
文章

GBase8a集群数据库国产化改造

发表于2024-12-31 11:40:2390次浏览2个评论

1、背景

GBase 8a为目前正在使用的分析型数据库之一,该数据库支撑多个省份的业务,在操作系统国产化的要求下,有十几个业务已稳定上线运行的集群需要完成操作系统改造,且各个业务能接受的改造要求和停服时间都不一样,在此背景下,制定了3个主要的改造方案。

 

  1. 方案说明

2.1方案一:在线升级/重装操作系统

方案说明:该方案的核心思路是当集群业务停止后,使用脚本prepare.py备份集群相关文件、刷新集群Redolog,然后先升级操作系统,将其内核由CentOS7升级为CentOS8;再升级GBase 8a集群为对应CentOS8内核的版本,升级完成后校验数据。

方案评估:

(1)优点

1)采用自动化升级脚本,集群升级后即可使用,升级成本较低。

2)相比其他两个方案可节约数据迁移和数据重分布的长耗时。

(2)缺点

1)所有操作都需要在一个割接窗口中完成。

2)操作系统在线升级/重装时间较长,另外数据库升级操作需要4小时。

3)如果操作系统升级失败会造成集群节点损坏,极端情况下主备节点同时损坏则会导致数据丢失。

如果采用该方案升级,可参考如下步骤示意图进行升级

 

步骤说明

(1)用户停滞集群任务;

(2)检查集群状态,包括节点状态、event情况,确保集群状态正常;

(3)停止集群服务;

(4)备份集群相关文件,刷新Redolog;

(5)操作系统升级;

(6)验证操作系统升级后的集群环境是否正常如:rpm包、防火墙、集群环境变量等;

(7)升级集群版本(所有节点需要正常);

(9)检查集群升级后的状态,检查升级后的开机自启、运维脚本是否生效。

时间周期

数据库产品升级执行时间窗口预计4个小时,且升级时需要确保集群中所有节点的状态正常。在线升级/重装操作系统时间波动较大,特别当机器无法重启的时候。

 

2.2方案二:数据迁移

方案说明:该方案的核心思路是搭建一套新的GBase集群,在原集群和新集群之间部署dblink,业务通过insert本地表select远程表@网关的形式迁移数据到新集群。

方案评估:

(1)优点

  1. 新集群的部署对老集群和现有业务无影响;

  2. 在用户确认新集群业务无问题之前,老集群仍然保留,即随时可以回退。

(2)缺点

1)业务需要负责完成数据迁移;

2)业务需要梳理并重新申请周边网络策略;

3)业务需要重新申请账号权限。

方案实施:

该方案实施的大致步骤如下所示

 

步骤说明

(1)数据库侧负责部署新集群;

(2)数据库侧打通新老集群之间的网络策略,并进行dblink配置;

(3)业务侧在新集群上创建实例,根据业务明确用户资源使用分配;

(4)业务侧申请账号权限;

(5)业务侧梳理并重新申请周边网络策略;

(5)数据库侧导出旧集群元数据(建表语句、视图、存储过程等);

(6)业务侧在新集群依照元数据创建对象;

(7)业务侧通过dblink实现数据迁移(历史+增量数据迁移);

时间周期:

该方案主要耗时在数据迁移上,在带宽不成为瓶颈的情况下,单节点速度在大概在100M/s 左右,具体时间依据业务数据量而定。

 

2.3方案三:集群扩缩容

方案说明:该方案的核心思路是在不影响CentOS7主集群的基础上,将操作系统为CentOS8操作系统的服务器扩容进主集群中,先扩容管理节点再扩容数据节点,通过数据重分布的方式将主集群中的数据搬移到扩容集群中,等待数据搬移完成后,切换业务集群为新扩容集群,同时将原先CentOS7的集群缩容。

方案评估:

(1)优点:

1)业务无需进行数据迁移;

2)业务无需重新申请账号权限;

3)可以保证数据完整性,风险可控。

(2)缺点:

1)根据集群和机器等情况,至少需要2次停服割接;

2)大数据量下的数据重分布耗时较长、且对于跨distribution的表关联查询会拉复制表,影响关联查询速度。

3)数据重分布会占用内存、cpu、网络资源,对于重分布的表在扩容期间跑业务会受到影响。

4)扩容的方式会消耗与原先同等或者更多的服务器资源,需准备足够服务器资源按照该方式升级。

5)业务需要梳理并申请周边网络策略。

方案实施:

如果采用该方案,可参考如下步骤示意图进行操作

 

步骤说明:

  1. 数据库侧升级集群为对应CentOS8内核的版本;

  2. 数据库侧完成新老节点之间的网络策略开通;

  3. 业务梳理并申请周边网络策略;

  4. 业务侧梳理表分布的先后顺序;

  5. 业务侧确定割接时间;

  6. 集群扩容割接:管理节点扩容、数据节点扩容

  7. 数据节点扩容期间,数据进行同步,同步期间占用资源,且对于跨distribution的表关联查询会拉复制表,影响关联查询速度。

  8. 管理节点扩容完毕后,集群元数据同步完成后,再扩容数据节点;

  9. 创建新distribution,新的distribution只能包括新扩容的CentOS8节点(同一个distribution下不能有两种操作系统的主机);

  10. 设置并行度、表先后顺序进行数据重分布

  11. 数据重分布完成,且业务调整连接IP为国产化节点后,缩容下线非国产化节点。

时间周期:

(1)管理节点扩容:预计停服4小时;

(2)数据节点扩容:如果考虑到减少对业务的影响,只在白天重分布,大概1T需要1天时间,以单节点20T数据的集群为例,预计需要20天。对于表特别多的集群,例如xxxx租户集群实际情况需要60天。

 

3、方案实际应用情况总结

(1)在线升级/重装操作系统应用:该方案存在不可控风险,对于业务已稳定上线的系统,基本不在考虑范围之内。

 

(2)数据迁移方案应用:

数据迁移的方案除了可以使用dblink进行迁移,还可使用gbase同步工具gcluster_rsynctool。使用该方式的前提为,新集群需和老集群同构。

数据迁移方式额外空间新集群架构操作难度备注
导出导入要求无要求复杂性能好,但需要落地,调度复杂
DBLink无要求无要求中等逻辑层复制性能稍差,不支持增量。在带宽不成为瓶颈的情况下,单节点速度在大概在100M/s 左右
同步工具无要求主分片数量相同(同构)、数据路径必须一致简单底层二进制文件同步,支持全量和增量(不支持ddl)。该工具常用于主备集群的同步。在带宽不成为瓶颈下,单节点速度在120M/s左右。

(3)集群扩缩容方案应用:

1)业务不想要投入大量的工作量进行数据迁移,且需要保障数据安全,故选择集群扩缩容的方案进行国产化改造。

2)因缺少机器,原有的扩缩容方案无法实施。租户采用缩扩容的方案进行国产化改造(机器保持不变),即先缩容一部分机器,离线进行操作系统升级/重装,然后将这部分完成国产化的机器重新扩容进集群,如此往复,直到所有主机完成国产化。该方案实施的前提为:租户需将数据清理到一定程度(为保证集群稳定运行,数据至少清理到缩容后磁盘使用率不能超过90%),且该方案需要多次停服割接。但是使用该方案,用户无需梳理并申请周边网络策略、重新申请账号权限。

评论

登录后才可以发表评论
用户头像
levvel发表于 8个月前
我看好你哟!
GBase用户51935发表于 2个月前
三人行必有我师