在数据量为1.5 TB的集群中,新增Tikv的标签,pd的标签和隔离级别,希望达到region的副本按照pd的隔离级别平均分配,但失败了。

【 TiDB 使用环境】测试环境
【 TiDB 版本】v7.5.1
【遇到的问题:问题现象及影响】
新增了Tikv的标签和pd的标签以及隔离级别,按照官网多AZ的说法,我的region会按照pd的隔离级别进行分别分配到pd隔离级别所限制的tikv中,实际操作下来,有部分并没有分配到pd隔离级别所限制的tikv上
【操作过程】

设置pd的location-label为rack,host

tiup ctl:v7.5.1 pd -u http://10.42.34.145:22379 config set location-labels rack,host

设置pd的isolation-level为rack

tiup ctl:v7.5.1 pd -u http://10.42.34.145:22379 config set isolation-level rack

新增tikv和pd的标签配置

tiup cluster edit-config tidbname
server_configs:
pd:
replication.enable-placement-rules: true
isolation-level: rack
replication.location-labels:
- host
- rack
tikv_servers:

  • host: 10.42.34.71
    config:
    server.labels: { rack: “r1”, host: “10.42.34.71” }
  • host: 10.42.34.72
    config:
    server.labels: { rack: “r1”, host: “10.42.34.72” }
  • host: 10.42.34.174
    config:
    server.labels: { rack: “r2”, host: “10.42.34.174” }
  • host: 10.42.34.175
    config:
    server.labels: { rack: “r2”, host: “10.42.34.175” }
  • host: 10.42.34.176
    config:
    server.labels: { rack: “r3”, host: “10.42.34.176” }
  • host: 10.42.34.177
    config:
    server.labels: { rack: “r3”, host: “10.42.34.177” }

加载配置

tiup cluster reload tidbname -R tikv,pd

重启tidb集群

tiup cluster restart tidbname -R tikv,pd

【验证操作】

tikv的标签

pd的标签和隔离级别


实际region副本的分布情况

可以先从监控或者是pd-ctl的scheduler show 查看下是否还在调度region。先排除后台任务没完成这个情况。


从我十二点改完配置重启完集群后,我看region没怎么动过,,

十点半左右开始修改配置的。reload的时候,leader发生了变化, 然后我去检查配置是否生效了,发现region副本未按照我的想法分配, 我十二点尝试重启TIDB集群,leader和region稍微动了一下,之后到现在都没什么动静,,,

有没有类似让pd重新分配region的命令,让他用最新的规则去分配,我查了半天,可能能用的就是用 tiup ctl:v7.5.1 pd -u http://10.42.34.145:22379 operator add scatter-region region-id 去分散region,但是我的region一共有34w, operator add scatter-region命令又只能通过region-id去分散,34w个id,写脚本去执行我怕集群撑不住,,不知道有没有别的方案


根据tiup ctl:v7.5.1 pd -u http://10.42.34.145:22379 operator show命令查询到后台确实有副本在做迁移,由于每天TIKV节点默认消费速度是每分钟5个任务,所以在1.5TB数据量下,查看监控没有明显变化,修改Store Limit为每分钟消费200个任务,查看监控发现有明显的正在迁移的动作, Store Limit | TiDB 文档中心

:+1:自行解决了

此话题已在最后回复的 7 天后被自动关闭。不再允许新回复。