这是学习笔记的第 2318篇文章
最近线上有一套集群的存储存在瓶颈,导致经常会有报警,如果按照存储现状和稍后的假期的数据增长,很可能会带来一些意料之外的问题,所以整体评估后,决定对已有的集群先做在线扩容,待假期结束后再做缩容。
目前集群的整体结构设计如下,其中P1,P2为中间件节点,P2暂时未投入使用,M1->M4是物理分片节点,每个物理分片包含4个逻辑分片,所以一张表被拆分为了16份,目前集群中的数据表为一张周期表,按日写入,即表类似于test_20210105
如果要实现在线扩容,达到的一个中间状态如下,即把已有的从库分片提上来作为物理分片,这样4个分片就可以快速扩展为8个分片。
如果要实践,整个步骤如下:
1)配置数据分片的双主复制,停掉数据分片节点的MHA服务,避免服务扩容期间出现意料之外的情况
2)在中间件节点P2的datahost从4节点配置改为8节点,相应的datanode也需要重新配置一套8分片的映射配置
3)清理T+1的周期表,在中间件节点P1清理,比如清理的是test_20210206
4)新建test_20210206的周期表,在中间件节点P2创建
5)备份P1节点的schema.xml配置,将P2的配置刷新到P1节点
6)重启中间件节点P1,配置重新生效
7)将M1->S1,.. M4->S4的双主配置清理
8)释放中间件节点P2
9)对2021026的数据表进行提前确认,并在零点进行再次确认
切换后的结构如下:
而缩容的场景相对会复杂一些,我们稍后分享。