上图是TDSQL结构图,因部署高可用环境2机房增加到3机房时需要增加ZOOKEEPER节点的情形,比方说从3台增加到5台。具体操作方法,以及需要修改的配置文件我们可以参考以下方法:
首先准备工作:
1、修改tdsql_host文件。增加新zk节点信息
2、在所有TDSQL集群服务器上增加host配置:vim /etc/hosts 添加要增加的zk服务器信息。
vi /etc/hosts
172.21.16.10 tdsql_host_zk1
172.21.16.11 tdsql_host_zk2
172.21.16.12 tdsql_host_zk3
#新增
172.21.16.13 tdsql_host_zk4
172.21.16.14 tdsql_host_zk5
一、 初始化新扩容的zk服务器
注意:新增单独服务器zk扩容需要重新初始化,OS系统需要做时间同步、配置yum源、免密。(原有TDSQL集群扩容zk无需重新初始化)
(1)登入ansible机器重新编辑一个tdsql_newzk文件添加新增zk服务器ip信息
# cd /root/tdsql_install
# cat tdsql_newzk
[tdsql_allmacforcheck]
tdsql_mac4 ansible_ssh_host=172.21.16.13 #新增初始化zk ip1
tdsql_mac5 ansible_ssh_host=172.21.16.14 #新增初始化zk ip2
(2)后台初始化zk机器
执行前确保新增的zk机器的时间和集群中其它机器的时间同步
执行初始化新的zk机器
# ansible-playbook -i tdsql_newzk playbooks/tdsql_envcheck.yml
二、 将原zk信息先备份
zk备份的工具在scheduler的bin目录下,scheduler机器上执行: cd /data/application/scheduler/bin
./backupZkInfo
验证备份成功:
在执行备份命令的scheduler机器上执行:
# cd /data/zkbak/zkbackup/
# ll
三、 在新增zk节点服务器上创建目录
mkdir -p /data/application/ /data/tools/ /data/home/tdsql/
四、 在新增zk节点服务器上检查并安装JDK——已存在JDK忽略此步。
在已安装zk服务器上找到目录/data/home/tdsql/jdk_x86.zip
scp jdk_x86.zip 172.21.16.13:/data/home/tdsql
scp jdk_x86.zip 172.21.16.14:/data/home/tdsql
在新zk服务器上操作:
unzip jdk_x86.zip
chown -R tdsql:users /data/home/tdsql/jdk
chmod x -R /data/home/tdsql/jdk
source /etc/profile
五、 在scheduler服务器上设置免切
cd /data/application/scheduler/bin/
./manual_set add_mnoswitch noshard all 1 24
# 查看免切设置是否成功,返回一个时间戳(免切到期时间)
./manual_set list_mnoswitch noshard all
或者登陆赤兔设置实例一切免切
六、 扩容zk服务器:
在已有zk服务器上进入cd /data/application并找到zookeeper.tar.gz安装包
拷贝到新zk服务器上。
scp zookeeper.tar.gz 172.21.16.13:/data/application
scp zookeeper.tar.gz 172.21.16.14:/data/application
解压安装包:tar -zxvf zookeeper.tar.gz
cd zookeeper
mkdir data;mkdir log
七、 从已有zk服务器拷贝配置文件到新zk服务器上
scp /data/application/zookeeper/conf/zoo.cfg root@172.21.16.13:/data/application/zookeeper/conf/
scp /data/application/zookeeper/data/myid root@172.21.16.14:/data/application/zookeeper/data
八、 给新zk服务器zk目录添加权限
chown -R tdsql:users zookeeper
九、 检测配置文件里的数据路径和日志路径是否正确
grep "Dir" /data/application/zookeeper/conf/zoo.cfg
十、 修改myid和zoo.cfg文件
注意:在不用的节点上修改不同的myid值,修改的zoo.cfg文件中的参数都是一样的。
在新zk服务器上操作:
# cd /data/application/zookeeper/data/
# vim myid
将原有值比如3修改为4
保证几台zookeeper 的myid 不一样
# cd /data/application/zookeeper/conf/ 所有zookeeper都要修改
# vim zoo.cfg
#增加如下内容
server.4=tdsql_host_zk4:2338:2558 #其中4是节点myid ,tdsql_host_zk4是节点域名要一一对应
server.5=tdsql_host_zk5:2338:2558
加上新添加的zk服务器信息。
注:集群内所有zk服务器需要配置新zk信息。
十一、 启动新的zk服务,并查看进程和状态 (切记一定要先启动原有的zookeeper,可以先启动leader节点 ,再启动新增节点)
切换用户:su - tdsql
cd /data/application/zookeeper/bin/
./zkServer.sh start
./zkServer.sh status
ps -ef |grep zoo
使用如下命令查看集群各节点信息状态
echo stat |nc 172.21.16.13 2118
十二、 全部完成并确认无误后,删除集群免切状态
cd /data/application/scheduler/bin/
./manual_set delete_mnoswitch noshard all
./manual_set list_mnoswitch noshard all
十三、 其他模块配置文件需要加入zk新增节点配置 tdsql_host_zk4:2118,tdsql_host_zk5:2118
1、 OSS
# su - tdsql
# cd /data/application/oss/conf/
# vim scheduler.xml
# cd /data/application/oss/boot
#./stop.sh
# ./start.sh
# ps -ef |grep oss
2、 scheduler
# su - tdsql
# cd /data/application/scheduler/conf/
# vim scheduler.xml
# cd /data/application/scheduler/bin
#./stop_manager.sh
#./start_manager.sh
# ps -ef |grep scheduler
3、 PROXY
# cd /data/tdsql_run/15001/gateway/conf
# vim instance_15001.cnf
# su - tdsql
# cd /data/tdsql_run/15001/gateway/bin
#./restart_cgroup.sh instance_15001
# ps -ef |grep 1500x
4、 mysqlagent
# su -tdsql
# cd /data/tdsql_run/4001/mysqlagent/conf
# vim mysqlagent_4001.xml
# cd /data/tdsql_run/4001/mysqlagent/bin
# ./restartreport_cgroup.sh ../conf/mysqlagent_4001.xml
# ps -ef |grep 400x
5、 clouddba
# cd /data/application/clouddba/conf
# vim diagnosis.conf
# cd /data/application/clouddba/bin
# ./restart.sh ../conf/diagnosis.conf
ps -ef |grep clouddba
6、 kafka
# cd /data/application/kafka/config
# vim consumer.properties
停
# cd/data/application/kafka_2.11-0.10.0.1/bin
# ./kafka-server-stop.sh -daemon ../config/server.properties
启
# cd /data/application/kafka_2.11-0.10.0.1/bin
# ./kafka-server-start.sh -daemon ../config/server.properties
# ps -ef |grep kafka
7、 monitor
重启analyze程序
# cd /data/application/analyze/conf/
# vim conf.properties
# cd /data/application/analyze/bin
# ./restart.sh
#ps -ef |grep analyze
重启collector程序
# cd /data/application/tdsql_collector/conf
# vim conf.properties
# cd /data/application/collector/bin
# ./restart.sh
# ps -ef |grep collector
十四、 赤兔前台集群信息中上报新增ZK节点
十五、两机房3 (2 1),扩容observer
根据按照部署第一章~第十三章进行zk扩容后修改observer角色
(1) TDSQL集群机器加入新增zk obsever节点的host信息
(2)选取一个原有节点,修改/data/zookeeper-3.4.6/conf/zoo.cfg,增加新的ob信息(注意此处为server.新节点myid,如server.6=172.21.16.15:2888:3888:observer)
(3)将新的zoo.cfg,使用scp命令传送至所有zk节点的相同路径覆盖原文件
(4)重启新的ob节点,原有节点无需重启
(5)检查整个集群的健康状态及角色
注:修改zookeeper的角色为observer
修改所有配置:/data/application/zookeeper/conf/zoo.cfg