为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
你好,我扩容前,集群结构如下:
现在计划把每个tikv服务器上增加一个tikv实例,即每台tikv服务器,部署两个tikv节点
扩容前后的inventory.in文件见压缩包
inventory.ini.tar.gz (1.1 KB)
安装官网文档,执行了
ansible-playbook bootstrap.yml -l 10.8.48.203,10.8.48.204,10.8.48.205
ansible-playbook deploy.yml -l 10.8.48.203,10.8.48.204,10.8.48.205
发现tikv服务器上的/data/deploy目录下没有任何文件,执行上述命令没有任何报错信息扩容命令及结果.txt (47.7 KB)
请帮忙看下,是什么情况,谢谢。
若提问为性能优化、故障排查类问题,请下载脚本运行。终端输出的打印结果,请务必全选并复制粘贴上传。
是这样,如果是单机多实例在部署时,在配置文件中指定了实例的别名,那么在配置时,需要指定别名来进行部署,并且建议使用单独的部署目录,示例如下:
1、指定单独的部署目录
TiKV1-1 ansible_host=172.16.10.4 deploy_dir=/data1/deploy tikv_port=20171 tikv_status_port=20181 labels="host=tikv1"
2、部署或者启动单个 tikv 节点,参考命令如下:
ansible-playbook bootstrap.yml --tags=tikv -l TiKV1-1
那请问,我的tikv1-1其实就是之前的ip地址,那么tikv1-1还需重新部署吗,如果不需要重新部署,系统能不能自动把它从ip识别为别名呢
别名和实际的 ip 地址是两件事情,多实例混部后,要操作该服务器上的某个服务,则需要指定别名,因为同一个 ip 上的多个服务,无法辨别是什么类型的服务。
你可以看我新的inventory.ini里面已经没有ip方式了,需要怎么操作,才能把之前的ip方式,调整成tikv*-1的方式呢,然后再增加tikv*-2服务
之前我的tikv组成方式,是三个服务器IP : 10.8.48.203,10.8.48.204,10.8.48.205
现在需要做的步骤:
1 把三个IP方式,变更为使用别名tikv1-1\tikv2-1\tikv3-1
2 再在每个服务器上面增加一个tikv实例:tikv1-2 \ tikv2-2\ tikv3-2
操作完成后,想达到的效果,是三个tikv服务器,上面各自运行两个tikv实例,最终达到扩容tikv的目的
1、配置文件中的 ini 文件是启动和配置时候通过别名来区分服务类型,和服务本身没有直接关系
2、配置单机多实例部署,需要使用单独的 deploy 目录
这是我新修改的ini文件,里面是设置了多个deploy目录的
inventory.ini (2.8 KB)
1、好的,在启动和部署时请指定别名,参考命令如下:
ansible-playbook bootstrap.yml --tags=tikv -l TiKV1-1
2、在指定别名 bootstrap 和 deploy 遇到问题,请继续跟帖
你好, 我执行下面的命令
ansible-playbook bootstrap.yml -l tikv1-1,tikv1-2,tikv2-1,tikv2-2,tikv3-1,tikv3-2
ansible-playbook deploy.yml -l tikv1-1,tikv1-2,tikv2-1,tikv2-2,tikv3-1,tikv3-2
并没有在/data/deploy目录中,有新文件产生,但是在/etc/systemd/system目录下,已经有了新的启动文件
再执行命令
ansible-playbook start.yml -l tikv1-1,tikv1-2,tikv2-1,tikv2-2,tikv3-1,tikv3-2
最终报错如下
1、首先,先确认下这个现象:tikv1-1 、tikv2-1、 tikv3-1 是已有的 tikv 实例,tikv1-2 、tikv2-2、tikv3-2 是新增的实例
2、现在是新增的 tikv 实例 tikv1-2 、tikv2-2、tikv3-2 的部署目录是 /data/deploy ,但是在 deploy 后,该目录下没有生成相应的文件,但是在操作系统已经出现了相应的 service。
3、在 start 时,最终的报错是原来已有的 tikv实例 tikv1-1,tikv2-1 以及 tikv3-1 的端口没有启动
建议:
1、确认下 /data/deploy 目录的权限情况
2、只部署新增实例,不加已部署的 tikv 实例,示例命令如下:
ansible-playbook deploy.yml -l tikv1-2,tikv2-2,tikv3-2
ansible-playbook start.yml -l tikv1-2,tikv2-2,tikv3-2
3、执行完上述命令后,请提供下 deploy 的 ansible 日志
你好,情况如你所说。
1、确认下 /data/deploy 目录的权限情况
3、执行完上述命令后,请提供下 deploy 的 ansible 日志
日志ansible.log (51.9 KB)
操作完成后,/data/deploy目录下仍然没有任何文件
看下这个 /date/deploy 下面没有生成文件吗?
确实看错目录了,我按照官网文档https://pingcap.com/docs-cn/stable/how-to/scale/with-ansible/,重新卸载了节点tikv1-2,tikv2-2,tikv3-2
然后再扩容到/data目录下,新的ini配置文件inventory.ini (2.8 KB)
执行下面的命令正常
ansible-playbook deploy.yml -l tikv1-2,tikv2-2,tikv3-2
再执行
ansible-playbook start.yml -l tikv1-2,tikv2-2,tikv3-2
一直卡在下面这个界面
查看tikv1-2的tikv.log,一直出现下面的错误信息
请问该如何处理呢,看日志中,节点已经是offline状态呢
之前扩容的 tikv 节点信息已经在 pd 中存在的,新扩容的 tikv 节点,需要更改一下 tikv 端口,可以更改下 tikv_port 重新部署一下
请问,如何把这些信息,从pd中清除呢,好像修改了端口,deploy的目录也要改变,才行呢
pd 中是以 ip+port 方式唯一标识一个 tikv 实例,所以更改端口之后就可以,deploy 目录如果被清空了,可以重复部署的
system
(system)
关闭
19
此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。