tiup 同时扩容2台pd和2台tidb,有几率pd其中一台的Status为down,有时成功

tiup 同时扩容2台pd和2台tidb;

scale-out.yaml内容是:
pd_servers:
- host: 172.24.0.8
- host: 172.24.0.5
tidb_servers:
- host: 172.24.0.8
- host: 172.24.0.5

执行 tiup cluster display 集群名 ,显示其中一台pd 的status为down。

pd 的status为down的主机报错信息为:
[stream.go:682] [“request sent was ignored by remote peer due to cluster ID mismatch”] [remote-peer-id=25a71a0b2bad4d7] [remote-peer-cluster-id=caaffa8607785b68] [local-member-id=c991d690a8c2047c] [local-member-cluster-id=3a0aee7120825efe] [error=“cluster ID mismatch”]

知道什么原因吗?会不会是因为同时加入2台pd的ip到 --initial-cluster中,而其中一台pd的服务还没有启动成功?

2 个赞

在 asktug 论坛中有一些关于『cluster ID mismatch』报错的帖子,可以先参考看下,是否有帮助:

2 个赞

你好,我之前看过,虽然原因一样,但是看了之后没得帮助。

1 个赞

我觉得根本原因可能是这个https://blog.csdn.net/weixin_42257277/article/details/106822173;现在我想知道tiup有没有好的解决方案

1 个赞

确认下,你那里在部署集群环境时,出现上面的报错后,将要扩容的目标 pd server 使用的 data-dir ,deploy-dir 都 rm 后,再次重新 scale-out pd 还是会出现 cluster id mismatch 的报错吗?

如果彻底清除要扩容的目标 pd 的 deploy-dir 和 data-dir 再 scale-out pd 这样的方式无效,那么当前这个问题最后是怎样处理的?

2 个赞

您提出的方式,虽然可以解决,但是我想在部署的时候就避免这个问题,所以扩容时,同时扩2个PD和2台tidb时我准备,串行化去扩容(循环执行tiup scale-out -y clustername scale-out.yaml),2次的scale-out.yaml内容分别是
pd_servers:
- host: 172.24.0.10
tidb_servers:
- host: 172.24.0.10

pd_servers:
- host: 172.24.0.11
tidb_servers:
- host: 172.24.0.11
。这样扩新问题来了扩容时报Error: port conflict for ‘4000’ between ‘tidb_servers:172.24.0.10.port’ and ‘tidb_servers:172.24.0.10.port’,请问这个知道什么原因吗?

这个报错比较明显,是端口冲突了,如果要在同一台环境中部署多个实例,那么需要单独定义端口,避免冲突,建议你那里在扩容前,先看下目标服务器上的端口是否已被占用,如果已被占用,建议你那里单独指定各个组件的端口,具体可以看下相应的文档:

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