GBase 8a
安装配置
文章

Gbase 8a/UP分片扩容方案

发表于2025-05-10 22:42:0150次浏览1个评论

1.1 分片扩容介绍

1.1.1 执行逻辑

分片扩容为Gbase8a 8611以上版本独有功能,可以做到按全库全表、单库、单表来操作,其实无论任务的下发为何种情况,在UP/8a集群看来均使用表级来操作,减少扩容时的差错。其实现方式为,在Gbase 8a 8611 以上版本时,Gbase table distribution 表新增一列用于标识表所使用的distribution ID,在扩容过程中,目标表会依据新distribution重建,在扩容过程中,会优先选取效率高的数据同步方式即若分片拷贝可达到效果则会舍弃重分布直接使用分片拷贝。在扩容过程中,可不停止业务,仅会对原表加有select锁,阻碍ddl操作,若表数据量不大,则影响时间可忽略。

1.1.2 执行步骤

Gbase 8a/UP 产品分片扩容较为简单,一般可分为如下步骤:

(1) 规划创建新的distribution用于数据分布并进行初始化。

(2)在UP/8a集群,执行扩容命令,发起扩容操作,进行数据重分布。

(3)待分布完成后,将原distribution删除。

1.2 扩容主体规划

在进行扩容之前,分布结构和重分布优先级需要进行规划,介绍如下:

1.2.1 新分布结构选取

1. 主分片数目选取

GbaseUP支持与8611版本相同的多分片模式,弱化逻辑分片与物理分片的对应关系,一个物理分片可对应一至多个逻辑分片,随着每个物理分片对应逻辑分片的个数的提升,单节点CPU、IO会上升,集群处理效率会略微下降,但木桶效应会下降。所以推荐UP在升级后选取两分片作为需使用的分片数目。

2. 备分片数目选取

多副本是Gbase UP/8a集群确保高可用的一项举措,副本数据维持跟主本数据完全一致,且自动维护。在主片数据不可用时,集群会自动切换至副本,保证高可用机制,在出现节点损坏情况下,也可通过备片数据恢复主片数据。但随着副本数目的增多,会带来存储占用过多和执行效率下降的问题,对于此次升级我们建议选取一个副本。

3. 生成模式选取

GbaseUP的生成模式方式也与8611相同支持两种,在生成模式中,引入机架的概念。在第一种备份模式中,每一个机架上分片的第一个备份分片会放置于上一个机架上,第二个备份分片则放置于下一个机架上。在第二种备份方式则为每一台服务器的第一个备份分片放置于上一台服务器,而第二个备份分片则放置于下一台服务器。由于此机架概念也为虚拟概念,通过合理的配置均可做到使得每个分片及其备份分片放置于不同的物理机架上,达到预防物理机架灾难的效果。但鉴于分片IP的易于读取和易于理解,推荐选取备份模式1

1.2.2 优先级规划

1、重分布优先级推荐

在数据重分布过程中,由于主体操作为按表操作,则需要划分优先级,有条理的进行数据重分布计划。

(1)在分布方式上,由于复制表的同步效率优于分布表,可优先将复制表进行数据重分布。

(2)从数据周期分析,可将长时间不用,用于数据存储的冷数据优先进行数据重分布。

(3)从日常使用上考虑,由于扩容过程中,仅添加select锁,阻碍DDL操作,则在扩容中可优先对日常查询的表优先扩容,对日常需要加工的表可考虑在操作时间外进行操作。

(4)从业务方面考虑,可将需扩容的表,避开表的加工时间段进行数据重分布

2、数据重分布规划

整体规划为按库、分时段进行处理,具体的优先级规划如下:

(1)无业务库优先执行;

(2)有业务的库以15天做间隔,15天前做第二梯队执行;

(3)剩下的表做第三梯队处理。

1.2.3 重分布时间预估

1. 重分布并发速率分析

由于项目表基本全为分布表,则评估时可忽略复制表部分,整体的分布表扩容可理解为对每个表的Create ... as select操作,整体的并发量的分析应兼顾整体的服务器硬件情况,建议于扩容开始前

,收集集群每日nmon情况,分析各时间段可支持的重分布并发量。

2. 重分布总时间分析Gbase 8a/UP 集群在整体的扩容过程,在新表的创建上会使用新的distribution,所以在扩容过程中,理论上可不停止集群,但需保证业务可接受短时间的对表的禁写操作,整体的时间规划上可使用如下策略:

(1)生成distribution操作无论何时操作,对集群均不会有影响。

(2)优先使用频度不高历史表重分布,此时间段会占用部分性能,除此外,不会对集群有其他影响。

(3)对需加工的历史表进行重分布,业务需保证可接受短时间的对表的禁写操作,或者避开业务时间段,否则则需要申请时间窗口操作。

3. 扩容停服时间规划

  

(1)不停服操作:总体在执行过程中,可不停止对外服务,缓慢执行重分布任务

(2)停服分段操作:在停服后,扩容总体时间可少量减少,可在每日停服一段时间进行重分布操作。

推荐选取方案(1)。



 

1.4 扩容回退方案

1.4.1 回退现状分析

分片扩容基本没有风险,目前尚未有项目发现分片扩容失败的情况,由于扩容实际上以表作为扩容的最小单位,若存在单表失败的情况,可对该表进行重新操作处理,不会造成影响,若进行整体还原至单分片,可通过上述分片扩容的方式进行重新分布就可。

1.4.2 回退操作步骤

分片扩容若进行回退,则操作步骤也将和扩容步骤相同,具体如下:

(1) 规划创建新的distribution用于数据分布并进行初始化。

(2)在UP/8a集群,执行扩容命令,发起扩容操作,进行数据重分布。

(3)待分布完成后,将原distribution删除。

1.5 扩容风险分析

分片扩容整体风险较低,基本不具有较大风险,仅可能存在单表问题,可根据出现问题进行专项处理,预估可能存在风险如下:

1、物理文件损坏问题造成重分布操作失败。

应对策略:在进行重分布前会进行相应的checksum操作,减少事件发生可能,若重分布过程中发现则需手动对物理文件进行处理。

2、重分布阻碍部分表的加工

    应对策略:在进行重分布的过程中,只会对表添加select锁,若表数据量较小,则影响可忽略不计,在优先级规划时也会尽量减少此种情况发生。


 

评论

登录后才可以发表评论
用户头像
levvel发表于 8个月前
感谢分享