tidb3.0.11, TIKV服务器如果想要修改静态IP如何操作

前提:生产环境使用的TIDB3.0.11版本
想要更换tikv节点的静态IP,该如何配置使其生效重新加到集群中。
比较紧急,多谢

数据的静态 ip 一般不做修改,应该在服务器规划时做此考虑

再确认下当前集群是否可以容忍停机进行操作。因为 pd 和 tikv 中存在静态 ip 地址,不可在线变更地址。

不可以停机操作,因为是生存环境,一共四台tikv

那建议在现有集群基础上,通过扩缩容的方式,将这几台迁移出去,变更完 ip 在迁移回来,这也是标准流程之一

1、更改静态IP后只能通过扩容缩容的方式重新添加到集群中么还是有其他更便捷的方法?
2、一共四台tikv,可以容忍三台TIKV正常运行,我缩容一台tikv改完静态IP再扩容回来。那我缩容完tikv更改静态IP后需要userdel -r tidb 么

这个是有什么考虑吗,仅仅更改服务器 ip,貌似对 user 没有影响。但是需要重新做下互信。需要更新公钥

目前更改 ip 的标准做法就是如此,可在线操作。

1、就是等待tikv下线完毕后,再重新按扩容的方式添加回来是吧。
2、如果在tikv下线的过程中静态IP被修改了,那我这台服务器再按改过的ip扩容回来,需要清理哪些文件么,不清理之前冗余的文件直接扩容会不会对数据有影响

在群里已经回复。如有问题可继续跟贴

多谢老师

OK,线上环境,有问题可以继续跟贴,这边会积极配合处理

多谢老师!
1、在tikv下线的过程中静态IP被修改,之后这台服务器再按改过的ip扩容回来需要清理的文件。是不是直接删除deploy文件夹或是mv deploy_back,还是删除deploy文件夹下的data*文件夹即可
image
2、还有另一个疑问,就是集群中想要删除中途下线的kv节点。是不是修改inventory.ini文件删除想要删除的冗余kv,
后执行ansible-playbook deploy.yml,
更新 ansible-playbook rolling_update_monitor.yml --tags=prometheus
就可以了。

  1. 将 deploy 目录删除或者 mv 走
  2. 删除中途下线的 kv 节点是指,执行了下线操作,但是没有等待 tikv 变成 tombstone 状态就停止了 tikv 进程的节点吗?

2、执行了下线操作,但是没有等待 tikv 变成 tombstone 状态,就修改了这台节点的静态IP

curl -X POST http://127.0.0.1:2379/pd/api/v1/store/${store_id}/state?state=Tombstone

可以通过这个 API 将 store 节点状态强制修改,但是这时非常规操作,正常不建议使用

1 个赞

多谢老师:smiley:
1、但是因为某一台kv节点做了非法操作导致无法连接,例如变更了这台服务器的静态IP
通过这 API 将 store 节点状态强制修改 Tombstone状态,后修改inventory.ini配置文件更新监控就可以了是吧
ansible-playbook rolling_update_monitor.yml --tags=prometheus
因为是修改了ip那么ansible-playbook stop.yml --tags=tikv -l kv-ip 就无法执行了

2、如果我想删除这个非法操作的kv节点在集群中的信息,不强制修改成Tombstone状态。还可以以什么形式删除
例如:
需要删除inventory.ini中的相关IP,是不是之后执行ansible-playbook rolling_update.yml 就可以了

关于第一点 第二点都无法简单通过修改 inventory.ini 文件来删除这个节点

节点的信息是存在 pd 的 etcd 中的,所以主要是需要删除 etcd 中的节点信息,删除 inventory.ini 只是将这个节点不通过 tidb-ansible 进行管理

对于失连的kv,例如这台机器烧毁了。我们想要删除这台服务器在集群中的信息,如下两种情况该如何操作
1、关机、火灾
2、/home/tidb/tidb-ansible/resources/bin/pd-ctl -u “http://172.16.10.1:2379” -d store delete 10 过程中电脑出现问题了

通过修改 API 的方式,修改节点状态为 tombstone 状态