【TiDB 使用环境】生产环境
【TiDB 版本】v6.5.3
我们通过扩容缩容的方式给tikv换存储盘。
有没有配置可以设置缩容时region不往端口为20161的那几个将要缩掉的tikv中调度?
你现在是 pending offline,可以等待 store 状态变成 tombstone ,就可以随便移除换盘了。
我知道。
但是兄弟根本没看我提问的是什么
给这些store设置region/leader weigth权重
缩容自动就不会往这几个 tikv 中调度了
我知道,但是我不能同时缩容5个节点。
应该只能一个一个来吧
你至少得把所有的主事务从要缩容的节点拿掉,而不是不住里面写,否则 更新一样会出问题
通过 Placement Rules 应该能达到你要的效果,但动静似乎有点大
你的意思你有很多tikv节点,想一个一个缩容,缩掉6个节点,但是缩容第一个节点时又不想让这个节点的region自动迁移时迁移到即将缩容的剩下5个节点上,如何处理,可以保持这个5个节点上的region暂时不往外迁移,也不接受其他region?
这样如果你pd-ctl store weight <store_id> 0这样设置权重的话,这些节点上的region应该都会往外迁移,应该只能通过打label来解决,
store delete 的时候,就不会往上面调度了吧。offline的时候基本上就是往外挪。
可同时store delete 5个,不影响,store delete 5个并不是说5个下线了,是要把这5个上面的数据全迁移走。
我经常这么干,线上如果有缩容好几个的,我就把后面几个同时执行 store delete ,避免 最后节点的数据挪到倒数第二个,然后再从 倒数第二个往前挪。
store delete ,把store状态标记为 offline,只是一个状态,只影响 pd 的调度。 在真正 tombstone之前,这个store还能正常提供服务。所以放心大胆的搞就可以。没什么影响。
别加 force就可以,加了force就相当于标记了物理删除,那如果标记了2个,就可能导致2副本不可用了。
看来还是胆子小了,网上容易看到缩容失败的,所以总觉得同时多个的话,万一出问题就头大,如果只做一个,万一出问题,大不了强制下线后重做
缩容失败几乎没遇到过,就是迁移数据,动作也基本上就是平时的region平衡,只不过下线就是把 region 平衡改为往别的节点挪,并且速度可能会快点。除非说磁盘在迁移过程中挂了,机器网络在缩容中断了,那缩1个还是缩多个,都一样。正常运行也会遇到这些情况。
如果说缩着缩着不想缩了,直接 curl -X POST http://pd:2379/pd/api/v1/store/${store_id}/state?state=Up 改成 up 也可以。
或者如同上面几位大神说的:
store weight 0 0 改权重为0也一样,最终目标就是把上面的数据挪走。
对了,还有就是磁盘不足,缩容的时候没估计好容量,导致缩着缩着剩余节点装不下了,region就迁移不动了。这时候也需要改下状态,放弃缩容。其他的情况不大多见。
我的那几个20160端口的tikv都是新加入的,数据还没有平衡,直接一口气缩掉原始20161端口的那几个tikv会有问题吧。
https://docs.pingcap.com/zh/tidb/stable/pd-control/#设置-store-weight
进入pd设置权重可以做到
https://docs.pingcap.com/zh/tidb/stable/command-line-flags-for-tikv-configuration/#--capacity
设置可用空间应该也是可以做到的。
精细化调整, Placement Rules这种方式应该可以的,不过这个最好是再规划阶段就完成,后续调整动作有点大。。。
不会的,执行缩容第一步是迁移数据,迁移完数据才真正开始缩容。
没问题,你随便迁移,只要节点不是物理销毁、断网之类的,pd会保证数据的3副本可用。
此话题已在最后回复的 7 天后被自动关闭。不再允许新回复。