TDSQL赤兔运营平台创建实例卡死不动问题分析解决

本文介绍了在数据库(DB)和代理(Proxy)扩容过程中遇到的实例创建卡在70%的问题及解决方案。问题源于Scheduler机器的日志满载,导致磁盘100%使用。清理日志后,问题得到解决。同时,文章提供了网关组和DB资源扩容的详细步骤,包括Ansible脚本修改和执行。
摘要由CSDN通过智能技术生成

作者:我在听风想你

大家好,这次给大家带来的问题解决方法,还是在实战中研究出来的,非常实用,下面我们不说废话,直接上干货。

我们在客户现场遇到的问题是这样的(由于安全原因,未能截图,请谅解),客户会定期会针对DB与PROXY进行扩容,为产出更多的实例供应用系统使用(DB与Proxy扩容步骤将会在最后也发给大家),但是在每次扩容完成后创建实例的时候,都会卡在70%左右不动。一般来说一个实例的正常创建时间在几分钟左右,但是70%一卡就是十几二十分钟,甚至二三十分钟都不会更进一步,我们也只能在到达一定时间之后,点击删除任务,再次尝试。 这个问题一到我这里,我首先就会想创建实例的流程。在上一期的文章中也有提到,实例的创建是赤免运营平台以jason格式通过http形式传参给OSS API,OSS调用创建实例的函数,然后在zookeeper创建job,通知manager(包括scheduler和manager)创建实例,manager在创建实例前要检查资源是否够,并且lock 资源后再创建资源。各位手中如果有环境资源的话可以去尝试一下,在赤兔平台的实例创建流程到达70%那一块时,已经lock住资源开始创建了,也可以去查看一下安装实例的日志:

#cd /data/home/tdsql/tdsqlinstall/log/

#vim pkginstall.log.开头日志

#vim shell_pkginstall开头日志

查看error记录或者看相应时间的记录,可以看出问题出在scheduler机器上,这个工作到了scheduler后便没有该有的记录了,于是再去看看scheduler的日志,发现日志非常多,几乎每个小时都会产生一个sys_scheduler开头的日志,大小不会超过955MB,然后看一下创建时间覆盖我们创建实例的时间段的日志,正好是最后一个,大小还未达到955MB,我便猜测可能是磁盘满了这个时间段的日志写不进去了。接着看一下磁盘的使用情况,发现已经达到了100%,于是清理一下时间比较久的日志,腾出一些空间来。返回赤兔平台删除卡住的任务重新创建,该问题解决。

schedur日志增长逻辑:在赤兔操作较频繁情况下,/目录磁盘使用会达到100%,导致实例创建Hang住。当前/data/scheduler_log/sys_scheduler日志增长量与增长频率为每天增加26G左右,每天日志将占磁盘容量近30%。

日志增长逻辑:大致按每1小时递增一个sys_scheduler文件,每个大小不会超过1G,当到达954MB左右时,将会自动生成新sys_scheduler文件,后缀从‘当前日期.0’开始递增,步长为1。当天上限一般不会超过30G。

网关组扩容:

在主控机上添加newproxy.yml脚本

到tdsql_install/playbooks目录下

# vim newproxy.yml

添加如下内容:

- name: install newproxy beginning

  hosts: newproxy

  remote_user: root

  gather_facts: false

  roles:

    - tdsql_beginning

- name: install proxy_module server

  hosts: newproxy

  remote_user: root

  gather_facts: false

  roles:

    - tdsql_db_module

(1)修改tdsql_hosts文件内容

在ansible路径下的tdsql_hosts文件中添加类似如下内容

[newproxy]

newproxy1 ansible_ssh_host=1.1.1.1 <------------这里就写要添加的新的proxy机器的ip地址

newproxy2 ansible_ssh_host=2.2.2.2          <------------这里就写要添加的新的proxy机器的ip地址

(2)后台安装proxy

执行前确保新增的proxy机器的时间和集群中其它机器的时间同步和ansible机器到目标的免密登录

执行安装新proxy

# ansible-playbook -i tdsql_hosts playbooks/newproxy.yml

(3)前台上报proxy机器和网关组扩容

前台上报新增proxy机器

image.png

前台网关组扩容

image.png

扩容成功后验证:

image.png

image.png

后台验证 新增proxy机器上执行 # ps –ef|grep proxy

image.png

DB资源扩容:

(1)修改newdb.yml文件内容

在ansible的路径下有一个newdb.yml文件

# cat tdsql_newdb.yml

- name: install db beginning <--------这一块是初始化机器

  hosts: tdsql_newdb

  remote_user: root

  gather_facts: false

  roles:

    - tdsql_beginning

- name: install db_module server <--------这一块是推db包到机器上

  hosts: tdsql_newdb

  remote_user: root

  gather_facts: false

  roles:

    - tdsql_db_module

- name: install hdfs_single on db <--------这一块是安装单点hdfs的客户端(2选1)

  hosts: tdsql_newdb

  remote_user: root

  gather_facts: false

  roles:

    - hdfs_on_db_single

- name: install hdfs on db <--------这一块是安装高可用hdfs的客户端(2选1)

  hosts: tdsql_newdb

  remote_user: root

  gather_facts: false

  roles:

    - tdsql_hdfs_on_db

根据实际的情况,如果没有部署hdfs的话,就删掉第3和第4块内容

如果部署的是hdfs单点架构的话,就删掉第4块内容

如果部署的是hdfs高可用架构的话,就删掉第3块内容

(2)修改tdsql_hosts文件内容

在ansible路径下的tdsql_hosts文件中添加类似如下内容

[tdsql_newdb]

tdsql_newdb1 ansible_ssh_host=1.1.1.1 <------------这里就写要添加的新的db机器的ip地址

tdsql_newdb2 ansible_ssh_host=2.2.2.2

tdsql_newdb3 ansible_ssh_host=3.3.3.3

(3)后台安装db

执行前确保新增的db机器的时间和集群中其它机器的时间同步

执行安装新db

ansible-playbook -i tdsql_hosts playbooks/tdsql_newdb.yml

(4)前台上报db机器资源

image.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值