tikv节点的server.labels设置错了,需要缩容再扩容吗?

【TiDB 使用环境】生产环境
【TiDB 版本】v6.5.7

背景:
6台tikv服务器(分别为A/B/C/D/E/F),每台tikv服务器部署4个tikv节点,每台服务器的server.labels分别设置为host: tikv{1~6},但是有一台tikv服务器F的2个tikv节点的server.labels设置错了,同tikv服务器E 设置成了host: tikv5, 这样就出现了host: tikv5的label存在于服务器E(4个tikv)和服务器F(2个tikv)上

问题:
1、这种情况需要将服务器F上为host: tikv5的2个tikv节点缩容再扩容吗?还是edit-config之后,重启服务器F上的2个tikv节点即可?
2、如果不调整服务器F上server.labels为tikv5的节点,会有什么风险吗?

上面描述的场景,如果不调整会有什么问题吗?

没必要啊,直接修改下配置tiup cluster edit-config ,然后reload下tiup cluster reload -R tikv/-N node,reload下tikv节点就行了

1 个赞

感觉label不调整也可以吧?就是E和F服务器当做同一台服务器,region的副本不会同时分布在E的4个tikv和F的2个tikv上,总的tikv服务器数量也挺多,我的理解对吗?

https://docs.pingcap.com/zh/tidb/v6.5/dynamic-config/ 在线动态改就行 不过确实用tiup会更方便一些

用 tiup 修改就好了,Region 调度是异步的,调整完参数再用 pd-ctl 去确认下

还是改一下吧

需要扩容

理解没问题,就相当于EF变成一台大服务器了,同一个region只可能有1个副本在E或者F上。

1 个赞

嗯,那就是这样的label配置在使用上没有问题的。
至于如何订正label,看评论还是有分歧。

这个方式应该是最优的,让pd自动调整region副本

无需缩容扩容,直接修改配置并重启节点即可

具体步骤:

  1. 通过 tiup cluster edit-config <集群名> 编辑集群配置文件,找到服务器 F 上错误的 2 个 TiKV 节点,将其 server.labels.host 修正为 tikv6
  2. 执行 tiup cluster reload <集群名> -R tikv -N <F节点IP:端口>(指定 F 上错误的 2 个 TiKV 节点),或直接重启这 2 个节点(tiup cluster restart <集群名> -N <节点地址>);
  3. 重启后通过 tiup ctl:v6.5.7 pd -u http://<PD地址:端口> store 检查节点的 labels 字段,确认已更新为 host:tikv6

标签错误会直接影响 PD 的调度策略(PD 依赖labels 做副本放置、负载均衡)

TiDB 的 server.labels 支持通过配置文件修改后重启生效,无需复杂的缩容扩容操作

标签错误会破坏 PD 基于 label 的调度逻辑(尤其是副本分散策略)

只要系统能跑,尽量不要动啊

这种情况也不需要单独再调整吧,看着也是没问题的

使用起来是没有问题,但是确实使用labels上有问题,已经edit-config后重启tikv节点了,看着清爽多了 :joy:

最大的风险就是E宕机会导致丢失多副本,region不可用,调参数逐个tikv节点重启后会自动平衡