Ansible 部署方式,扩容过程不顺畅,感觉文档有缺陷。

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。

  • 【TiDB 版本】:v3.0.5
  • 【问题描述】:
fatal: [10.8.200.205]: FAILED! => {"changed": false, "msg": "The default maximum number of open file descriptors is too low 4096, should be 1000000"}

按照文档提示,第一步应该是初始化。但是没有,直接上来,就让 bootstrap.yml了,这个是有问题的。 先加到 hosts.ini 里面,执行创建用户和NTP。

ansible-playbook -i hosts.ini create_users.yml -u root -k

然后在执行

ansible-playbook bootstrap.yml -l 10.8.200.205

报错了,说我的硬盘 IO 不够,那么我加个参数。

ansible-playbook bootstrap.yml -l 10.8.200.205 --extra-vars "dev_mode=True"

一些顺利。但是我执行。ansible-playbook deploy.yml -l 10.8.200.205 就又提示了

fatal: [10.8.200.205]: FAILED! => {"changed": false, "msg": "The default maximum number of open file descriptors is too low 4096, should be 1000000"}

综上所述,bootstrap.yml 这一步,并没有做好除了 io 以外的一些设置。应该是个缺陷。

若提问为性能优化、故障排查类问题,请下载脚本运行。终端输出的打印结果,请务必全选并复制粘贴上传。

有没有根据错误信息,修改过操作系统的 open files 参数通过 ulimit -a 查看下 open file limit 是多少

在报这种错误的时候,我第一时间去查询了/etc/security/limits.conf

# BEGIN ANSIBLE MANAGED BLOCK
tidb        soft        nofile        1000000
tidb        hard        nofile        1000000
tidb        soft        stack         10240

但是依然会报这种错误,很奇怪,我扩容过2 个节点都这个错误,实在是不清楚那个环节出了问题,那么就重启吧,重启以后,在一次运行。 扩容的节点,ansible-playbook deploy.yml -l 10.8.200.207 10.8.200.205 确实就好了。

会不会是这个参数没有生效

ulimit -a 看一下当时limit的配置是否真实生效了呢

这些参数修改后有没有生效呢?按照楼上的先检查下ulimit -a ,如果在这个链接配置的,可能需要重新开一个链接

我也出现了这个问题,我是手动执行了 立即生效就好了

 ulimit -n 1000000