tidb 3.0.5 导入 tiup 方式后,reload 报错了,求助。 Failed to execute command over SSH for 'tidb@10.10.10.111:22' {ssh_stderr: FAILED: "/data/tidb/deploy/conf/tikv.accelerate.rules.yml" does not point to an existing file

为提高效率,请提供以下信息,问题描述清晰能够更快得到解决:

【TiDB 版本】tidb V3.05 tiup 1.4

【问题描述】

计划把生产环境的 v3.0.5导入到 tiup来管理,然后进行升级操作,先在测试环境进行了一些列测试,第一次导入成功了,第二次,不小心把 tiup 给升级了,就不成功了。我反复,创建v3.0.5集群,导入 tiup,稳定复现这个问题。

tidb@local-pvenode1:~$ tiup cluster reload test-cluster
Starting component `cluster`: /home/tidb/.tiup/components/cluster/v1.4.0/tiup-cluster reload test-cluster
+ [ Serial ] - SSHKeySet: privateKey=/home/tidb/.tiup/storage/cluster/clusters/test-cluster/ssh/id_rsa, publicKey=/home/tidb/.tiup/storage/cluster/clusters/test-cluster/ssh/id_rsa.pub
+ [Parallel] - UserSSH: user=tidb, host=10.10.10.110
+ [Parallel] - UserSSH: user=tidb, host=10.10.10.108
+ [Parallel] - UserSSH: user=tidb, host=10.10.10.112
+ [Parallel] - UserSSH: user=tidb, host=10.10.10.107
+ [Parallel] - UserSSH: user=tidb, host=10.10.10.110
+ [Parallel] - UserSSH: user=tidb, host=10.10.10.106
+ [Parallel] - UserSSH: user=tidb, host=10.10.10.111
+ [Parallel] - UserSSH: user=tidb, host=10.10.10.105
+ [Parallel] - UserSSH: user=tidb, host=10.10.10.112
+ [Parallel] - UserSSH: user=tidb, host=10.10.10.109
+ [Parallel] - UserSSH: user=tidb, host=10.10.10.111
+ [Parallel] - UserSSH: user=tidb, host=10.10.10.104
+ [ Serial ] - UpdateTopology: cluster=test-cluster
+ Refresh instance configs
  - Regenerate config pd -> 10.10.10.110:2379 ... Done
  - Regenerate config pd -> 10.10.10.111:2379 ... Done
  - Regenerate config pd -> 10.10.10.112:2379 ... Done
  - Regenerate config tikv -> 10.10.10.109:20160 ... Done
  - Regenerate config tikv -> 10.10.10.107:20160 ... Done
  - Regenerate config tikv -> 10.10.10.108:20160 ... Done
  - Regenerate config tidb -> 10.10.10.104:4000 ... Done
  - Regenerate config tidb -> 10.10.10.105:4000 ... Done
  - Regenerate config tidb -> 10.10.10.106:4000 ... Done
  - Regenerate config prometheus -> 10.10.10.111:9090 ... Error
  - Regenerate config grafana -> 10.10.10.112:3000 ... Done
  - Regenerate config alertmanager -> 10.10.10.110:9093 ... Done

Error: init config failed: 10.10.10.111:9090: executor.ssh.execute_failed: Failed to execute command over SSH for 'tidb@10.10.10.111:22' {ssh_stderr:   FAILED: "/data/tidb/deploy/conf/tikv.accelerate.rules.yml" does not point to an existing file
, ssh_stdout: Checking /data/tidb/deploy/conf/prometheus.yml
, ssh_command: export LANG=C; PATH=$PATH:/usr/bin:/usr/sbin /data/tidb/deploy/bin/prometheus/promtool check config /data/tidb/deploy/conf/prometheus.yml}, cause: Process exited with status 1: check config failed

Verbose debug logs has been written to /home/tidb/.tiup/logs/tiup-cluster-debug-2021-03-31-21-22-20.log.
Error: run `/home/tidb/.tiup/components/cluster/v1.4.0/tiup-cluster` (wd:/home/tidb/.tiup/data/STF3Vwt) failed: exit status 1
FAILED: "/data/tidb/deploy/conf/tikv.accelerate.rules.yml" does not point to an existing file

tikv.accelerate.rules.yml 找不到啊,到底 要怎么弄,一点思绪都没有,求解药。

tikv.accelerate.rules.yml 这个文件好像并不存在,能否试下用 tiup cluster {stop|start} 代替 reload 启动集群呢?

这个问题会在 https://github.com/pingcap/tiup/pull/1265 这个 PR 中先修复一次(至少保证 reload 会成功,至于这个文件不存在的问题,后续可能还会修复)。修复之后,您可以通过 tiup clsuter reload test-cluster --ignore-config-check 来 reload 集群。

1 个赞

确认下,tiup 未升级前导入是正常的对吗?可以指定使用升级前的版本试下。

例如:升级前是 1.3.7 版本:tiup cluster:v1.3.7 xxx 操作下呢。

测了一下,用 https://github.com/pingcap/tiup/pull/1265 这个 PR 应该没有问题,你这边是如何使用这个 PR 的呢?是先 clone 下来重新编译替换 tiup-cluster 的吗?

git clone --branch fix/regen-ignore-check https://github.com/9547/tiup.git
cd tiup
make cluster
cp bin/tiup-cluster ~/.tiup/components/cluster/v1.4.0/tiup-cluster
tiup cluster reload test-cluster --ignore-config-check

全新部署V3.0.5以后,我 clone 1265 PR下来,make 以后

cp tiup-cluster /home/tidb/.tiup/components/cluster/v1.4.0/tiup-cluster 

直接 reload 就可以成功,没加 --ignore-config-check。

前面使用1265 RP 的姿势没搞对现在可以了。

--ignore-config-check 应该还是要的

这样会失败:

tiup cluster deploy test v3.0.5 ~/test.yaml --ignore-config-check
tiup cluster start test
tiup cluster reload test

这样会成功:

tiup cluster deploy test v3.0.5 ~/test.yaml --ignore-config-check
tiup cluster start test
tiup cluster reload test --ignore-config-check

把集群升级到 4.0.0 以上就不需要 --ignore-config-check 了,4.0.0 以上有 tikv.accelerate.rules.yml

–ignore-config-check
只是在第一次导入成功 以后 reload 的时候要加入 --ignore-config-check ,还是在3.X 以下的版本,每次都需要加上这个 --ignore-config-check 选项呢?

测试了一下,全新部署的 v3.0.5,导入成功以后,reload --ignore-config-check 是可以的,但是,导入成功以后,用 tiup 进行了一些列扩容,缩容以后,再次,reload --ignore-config-check 就会出现各种错误。不加 --ignore-config-check 就没问题。

比如 :

一个全新的 V3.0.5 没做任何修改,仅仅是在ansible 导入 成功以后用
tiup cluster reload test --ignore-config-check 解决了一个 tikv.accelerate.rules.yml没有问题后,现在 node_exporter 路径又不对了。

run_node_expoter.sh 的内容是什么?

其实就是 asktug 上 其它用户反馈的 run_node_expoter 路径不对,我手工改了下,解决了。

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