关于OB节点重建后的磁盘空间占用问题

【产品名称】社区版OceanBase

【产品版本】3.1.1

【问题描述】

1、OB三副本集群部署于vmware虚机、由于从普通硬盘切换至SSD,关机后迁移存储至固态存储,迁移时间大概为三小时左右(节点下线3小时)、server_permanent_offline_time调整为10个小时 server_permanent_offline_time=36000s 。维护结束后依然触发节点重建操作,恢复时间6-8小时。

2、维护前(正常提供服务,状态正常),磁盘空间使用基本是平均分布 use:1559G、维护后节点触发重建,重建占用大量磁盘空间,差不多增长了1T,早晨恢复正常(监控凌晨2点还在报警磁盘空间不足)如图

问题1:正常维护,且server_permanent_offline_time=36000s 的情况下,为何会触发副本重建

问题2:如果副本触发重建,磁盘剩余使用空间小于500G,重建副本是否失败。正常情况下不可能把空间预留到那么多。如何解决

1 个赞

确认几个问题:

  1. 你是一个节点下线3小时,另外两个节点在正常工作吗?
  2. 你说的触发节点重建是说触发rebuild吗?

对于你的问题1:rebuild的触发条件是clog(事务日志)落后太多,server_permanent_offline_time只是控制这个节点停机后间隔多久还可重新加入集群,与重启的恢复时间和恢复方式无关。

对于你的问题2:rebuild副本是否失败,取决于你的数据量,尤其是最大分区的数据量。ob的数据盘需要预留一定的空间用于转储、合并,至少需要预留的空间为最大分区的数据量,因为转储和合并是按分区执行的。如果你的单分区过大,可以考虑拆散为多个分区。

1 个赞