TiDB中kv的扩容和缩容

TiDB中kv的扩容和缩容,第1张

下面是本次测试环境服务器的概况,一共四台机,其中三个KV。按照默认的副本数,一共有三个,也就是说可以允许我的KV能挂掉一个而不影响业务。下面我们来测试一下三种的情况:

我们的测试方法很简单,首先新建一个测试表并插入数据;然后直接kill掉kv的进程,模拟宕机;然后再登录TiDB看下数据是否还在,能否做插入、删除的 *** 作。

select查询确认数据

这时候我们看grafana的tv监控页面,看到leader的分布是很不均匀的,这里我们不探讨。下面我们把tikv_2给kill了看下。

在这里我们要kill的是tikv_2,这里刚好对应的是我的tikv主机IP较小的那个(19216811321)

这样kill掉之后,很快tikv会自己重启启动的,这样的没办法很好地测试的。所以干脆,我直接把tikv_1的服务器给shutdown了,看下是什么样的一个情况。
在grafana的监控面板上我们可以看到有一个tikv down了,还有该服务器上的探测器。

我们看下tikv的leader的情况,可以看到已经有部分的leader转移到tikv_1和tikv_7上了,我们看下那个测试表的数据。

在挂了一个kv的情况下,还是可以正常地插入和删除数据的,也就是说TIDB还是正常运作的。

测试结束后我们开启虚拟机,并重新把tikv01上的tikv的服务打开。

启动后我们还发现了kv的leader并没有转移回给tikv_2上,leader的分布还是很不均匀。

这里我们新增一个kv,新增的一个虚拟机的配置情况如下

使用ansible来初始化并部署tikv

几分钟后我们就可以在grafana上看到新增的tikv实例了,我们看下他的实例名称,以及leader和regions的数量。

从上图我们可以看到新增的tikv的实例叫做tikv_2006,并且已经有region转移到这个实例上了,但是分布还是不均匀,我们等待一段时间看下。
半个钟之后,发现tikv_2006还只是获得6个region。这个问题我们后续再讨论,这里继续下面的缩容实验。

现在我们有4个Tikv了,下面我们缩容一个,只保留三个。我们对实例名为tikv_1也就是19216811322这台服务器下手吧,缩容的过程也命令非常简单。

查看 19216811322节点的 store id,查询到的store id为1,也就是tikv_1,这就是它的实例名称。

从集群移除store id 为 1的tikv:

使用 Grafana 或者 pd-ctl 检查节点是否下线成功(下线需要一定时间,下线节点的状态变为 Tombstone 就说明下线成功了,这个时间可能非常久):

等待了几分钟,下线成功。

下线成功后,停止19216811322 上的服务,没下线成功请不要进行下面的 *** 作,耐心等待。

编辑 inventoryini 文件,移除节点信息:

更新 Prometheus 配置并重启:

打开浏览器访问监控平台:>[root@promethusgrafana ~]# tar -zvxf grafana-750linux-amd64targz -C /usr/local/

[root@promethusgrafana ~]# cd /usr/local/

[root@promethusgrafana local]# mv grafana-750 grafana

[root@promethusgrafana local]# cd grafana/bin/

[root@promethusgrafana bin]# /grafana-server &

[root@promethusgrafana bin]# ss -naltp | grep 3000

[root@promethusgrafana ~]# pkill -9 grafana-server

[root@promethusgrafana bin]# ss -naltp | grep 3000

[root@promethusgrafana ~]# /usr/lib/systemd/system/grafana-serverservice

[root@promethusgrafana ~]# systemctl daemon-reload

[root@promethusgrafana ~]# systemctl start grafana-server

[root@promethusgrafana ~]# systemctl status grafana-server

[root@promethusgrafana ~]# systemctl enable grafana-server

[root@promethusgrafana ~]# firewall-cmd --zone=public --add-port=3000/tcp --permanent

[root@promethusgrafana ~]# firewall-cmd --reload

在浏览者中地址栏输入:>

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/10894216.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-12
下一篇 2023-05-12

发表评论

登录后才能评论

评论列表(0条)

保存