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

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

我在听风想你 · 2021-08-16 1217 TDSQL
分享 收藏

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

我们在客户现场遇到的问题是这样的由于安全原因未能截图请谅解),客户会定期会针对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的客户端(21

  hosts: tdsql_newdb

  remote_user: root

  gather_facts: false

  roles:

    - hdfs_on_db_single

 

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

  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

点击加载更多