3个节点tikv,一个节点故障后强制缩容后再扩容,该节点不会平衡数据

【 TiDB 使用环境】生产环境
【 TiDB 版本】7.1.2
【复现路径】

  1. 一个节点的磁盘出问题,恢复磁盘后重启节点出现一直报错问题,经过scale-in --force缩容后,再扩容上去。该节点不会同步其他节点的副本数据。
    【遇到的问题:问题现象及影响】
    扩容上去后数据不会平衡,就是说现在就2个副本数据。感觉operator也没有正常运行。
    【资源配置】进入到 TiDB Dashboard -集群信息 (Cluster Info) -主机(Hosts) 截图此页面

【附件:截图/日志/监控】



会的,自动平衡数据的,等等再看呢

应该会吧

目前是过去差不多12个小时了,基本上没有平衡数据,主要是3副本少了一个副本了,感觉是无法自动补齐一个副本呢

3个节点的服务器配置一样么?看上去打分不一样,导致分布不均衡~
image

1 个赞

根据这个检查一下,看看各个节点的打分情况:
https://docs.pingcap.com/zh/tidb/stable/pd-scheduling-best-practices#leaderregion-分布不均衡

这个4.97的服务器的磁盘是小一些的。我是这么理解的,现在就3个kv节点,是3副本,3个副本是分摊到不同kv上的,那么即使配置有些差异,应该也不影响副本数,数据应该是一样的吧

你理解的是对的,现在region是均衡的。但是leader肯定是受配置影响的,配置高的一般leader会多一些,承担更多的读写任务。

1 个赞

嗯嗯,从region的数量可以确定副本数相同是吧。但是副本数相同这里存储占用差别那么大呢。

region是一个左闭右开区间,不是每个region都是相同大小的。

1 个赞

这么说的话,region的数量不能确认副本数据是否完全同步过去是吧,那是否能确认该节点还没缺少数据副本呢,那麻烦问一下怎么确定3个节点是相同数据副本呢。

我也做过这样的实验,不知道咋回事

:thinking:3个节点不是相同数据副本吧。
按我的理解,比如数据分成3份(正常是接近均分),每份数据有1个主副本,2个从副本,数据完全一样。
主副本L1,从副本F11、F12
主副本L2,从副本F21、F22
主副本L3,从副本F31、F32
一般的数据分布如下:
节点1:L1 F21 F31
节点2:L2 F11 F32
节点3:L3 F12 F22
这样分布时,任一节点宕机,都可以从另外两个节点的从副本快速恢复出主副本,并且保证数据准确性。对外提供服务只有主副本提供,也就是L1、L2、L3

1 个赞

看下PD面板中的region健康度
目前从给到的监控看,你一共24个leader,region每个节点是24个,是正常的呢,但是空间差的又比较多

现在region的健康度如下,感觉也没啥问题。

看下store use表达式,从哪个指标获取的数据,发下PD=>balance面板的region size

leader-schedule-limit是多少?
有设置placement policy和sotre weight吗?

大佬们,空region也会按数量平衡吗?

我理解一般都看节点上region leader数量均不均衡

这个是store use的表达式:


这个是region size: