扩容TiKV到A节点,但是提示yaml文件与B节点的PD配置冲突

【概述】V4.0.8 Tikv扩容提示配置文件冲突

[root@node opt]# tiup cluster scale-out xxxx-cluster scale-out-tikv.yaml
Starting component `cluster`: /root/.tiup/components/cluster/v1.5.3/tiup-cluster scale-out xxxx-cluster scale-out-tikv.yaml

Error: Deploy directory overlaps to another instance (spec.deploy.dir_overlap)

The directory you specified in the topology file is:
  Directory: log directory /data1/tidb/log
  Component: pd 192.168.1.67

It overlaps to another instance:
  Other Directory: log directory /data1/tidb/log
  Other Component: tikv 192.168.1.67

Please modify the topology file and try again.
Error: run `/root/.tiup/components/cluster/v1.5.3/tiup-cluster` (wd:/root/.tiup/data/SeK5dLH) failed: exit status 1
[root@node opt]# cat scale-out-tikv.yaml 
tikv_servers:
  - host: 192.168.1.70
    ssh_port: 22
    port: 20176
    status_port: 20186
    deploy_dir: /data2/tidb
    data_dir: /data2/tidb/data
    log_dir: /data2/tidb/log
    config:
      server.labels:
        host: tikv70
      storage.block-cache:
        capacity: 24G
        
        
 [root@node opt]# curl 192.168.1.67:2379/pd/api/v1/stores?state=2
{
  "count": 0,
  "stores": []
}
[root@node opt]# curl 192.168.1.67:2379/pd/api/v1/stores?state=1
{
  "count": 0,
  "stores": []
}

麻烦反馈下集群原先的拓扑文件,tiup cluster edit-config {cluster-name}

1 个赞

meta.yaml (8.4 KB)

1 个赞

怎么感觉你的拓扑文件中的路径设置的很奇怪,比如:
image
image
麻烦再确认下吧

1 个赞

1、 global的配置我没有特意去定义。
2、每次扩容我都是单独的yaml配置,如顶楼所示。
3、 log_dir: /data1/tidb//log 此处无法通过edit删除多余的斜杠,我是否需要直接修改meta文件,对我原题的问题有何关联?

1 个赞

你这个集群是升级上来的还是直接部署的,可以到服务器上核实下各组件 log_dir 真实路径,配置文件内容看起来不准确。

1 个赞

很久一起一路升上来的。核实路径之后呢?调整过来? 直接修改meta.yaml行不行?

1 个赞

1.直接修改 meta.yaml 会有一定风险,如果实际路径和配置文件中不一致的话,调整方法可以参考下面内容,不过需要协调停机窗口了:

2.从上面的报错内容看,pd 和 tikv 在配置文件中的路径确实是完全一样的,没有写到下一级的子目录做区分;
3.这个集群目前 tikv 节点数也不算少,之前节点扩容时没有报错错误吗?

1 个赞

67这个节点 /data1/tidb 确实存在pd和tikv共用,但是按理说是完全不干扰的。因为默认端口、文件命名都不一样。我所有pd节点都是跟混部的。
以前扩容没遇到过这个问题,怀疑跟tiup新版本的检查机制有关系。

1 个赞

tiup 新版本在检查机制上比之前严格点,你原先是从什么版本的 tiup & tiup cluster 升级上来的?

1 个赞

记不清了,1.2 1.3 1.4一路上来的

1 个赞

现在问题是,tiup对于过往配置的合规检查阻挡了合规配置下新节点的扩容。。。。

1 个赞

1.麻烦查看下目前 tiup cluster 都安装过哪些版本,在路径 .tiup/components/cluster 中能看到对应目录名称;
2.这个问题考虑降级下 tiup 和 tiup cluster 版本,可以按照下面这个步骤尝试先降级到 v1.3.2 版本:

  • 完整备份下 .tiup 目录;
  • 把 tiup cluster 卸载,直接在 tiup 目录下删除 .tiup/components/cluster/v1.5.3 或其他高版本
  • 然后安装旧版本, tiup install cluster:v1.3.2
  • ./tiup/bin 目录下面的 tiup 也需要替换成以前版本的。 把 bin 目录备份一下,然后再 bin 目录下的 root.json tiup 都删除掉
  • 下载 https://tiup-mirrors.pingcap.com/tiup-v1.3.2-linux-amd64.tar.gz ,将下面的所有文件解压到 bin 下面
  • 查看下当前版本 tiup --version & tiup cluster --version

意思就是新版本的 tiup 和 cluster 组件,在检查配置文件的时候,会过分的要求 log 文件的父目录不能一样,是吗
请问以后的版本会继续保持这样的检查规则吗?

这样操作行不行,利用老版本的tiup-cluster bin文件

[root@node cluster]# ll
total 20
drwxr-xr-x 2 root root 4096 Dec 18  2020 v1.2.0
drwxr-xr-x 2 root root 4096 Dec 18  2020 v1.2.4
drwxr-xr-x 2 root root 4096 Jan 10  2021 v1.3.1
drwxr-xr-x 2 root root 4096 Jul  7 15:31 v1.5.2
drwxr-xr-x 2 root root 4096 Jul 27 09:12 v1.5.3
[root@node cluster]# cd v1.3.1/
[root@node v1.3.1]# ll
total 29360
-rwxr-xr-x 1 root root 30064640 Jan 10  2021 tiup-cluster

[root@node v1.3.1]# ./tiup-cluster scale-out xxxx-cluster /opt/scale-out-tikv.yaml 
Please confirm your topology:
Cluster type:    tidb
Cluster name:    xxxx-cluster
Cluster version: v4.0.8
Type  Host       Ports        OS/Arch       Directories
----  ----       -----        -------       -----------
tikv  192.168.1.67  20173/20183  linux/x86_64  /data3/tidb,/data3/tidb/data
Attention:
    1. If the topology is not what you expected, check your yaml file.
    2. Please confirm there is no port/directory conflicts in same host.
Do you want to continue? [y/N]:  

你可以先测试下,如果不行的话再按照上面的方式调整下。

老版本扩容可以成功,但是tikv启动异常

["request failed"] [err_code=KV:PD:gRPC] [err="Grpc(RpcFailure(RpcStatus { status: 2-UNKNOWN, details: Some(\"duplicated store address: id:226504275

看起来只降级 tiup cluster 还是有问题,tiup 也需要降级到相应版本,可以考虑先把该 tikv 节点先缩容,待 tiup & tiup cluster 都调整好后再扩容进去;
另外你这个是生产集群还是测试集群?从配置文件中看 tikv 的部署不统一,存在多种混合部署方式。

测试环境。
具体哪里配置不统一?
目前首要问题是解决顺利扩容。

1.配置不统一指的是单机2 tikv 部署,也有单机 4 tikv 部署,不过是测试环境倒无所谓了,生产环境建议保持统一;
2.可以先把有问题的那个节点缩容掉,按照上面的方法把 tiup 也降级后,再重新扩容试下。