GaussDB(DWS)大集群集群运维技巧

举报
sevenjiang 发表于 2021/02/08 17:24:34 2021/02/08
【摘要】 运维大集群操作方式分享提高查看、执行效率

       在日常运维大集群时,分发安装包、安装软件、观察集群和收集集群相关信息时,存在节点多,操作繁琐,耗时长等问题,下面有一些运维大集群操作方式分享可以提高查看、执行效率。

分发部署

大集群所有服务器维护可使用GaussDB 集群内工具 pssh pscp进行批量操作(所有机器有互信为前提):

服务器系统参数查看是否统一:

pssh -P -h ip_all_192.X "grep 'kernel.panic =' /etc/sysctl.conf"
 
服务器系统参数统一修改:

pssh -P -h ip_all_192.X "sed -i '/kernel.panic =/d' /etc/sysctl.conf"
pssh -P -h ip_all_192.X "echo 'vm.panic_on_oom = 2' >> /etc/sysctl.conf"

发送一个文件到所有服务器:

pscp -h ip_ganglia_256 -l root /opt/backup_dir/256/gmond.conf /usr/local/etc/gmond.conf

core设置(suse):

alias set_core="pssh -t 300 -p 200 -P -h /opt/ip_list/ip_all_172.X \"mkdir -p /home/core;chmod 777 /home/core;sed -i '/^.*core.*unlimited/d' /etc/security/limits.conf;echo '*               soft    core           unlimited'  >> /etc/security/limits.conf;echo '*               hard    core           unlimited'  >> /etc/security/limits.conf;echo '1'>/proc/sys/kernel/core_uses_pid;echo '1'>/proc/sys/kernel/suid_dumpable;echo '/home/core/core-%e-%u-%s-%t-%h-%p' >/proc/sys/kernel/core_pattern;\" "

大集群相关目录批量创建配置:

pssh -P -h ip_all_172.X "mkdir -p /opt/XML/;mkdir -p /opt/env_gaussdb;chmod -R 777 /dev/cgroup;chown root:root /opt/XML;chmod 777 /opt/XML;chmod 777 /opt/env_gaussdb;touch /var/log/btmp;mkdir -p /opt/system_monitor;chmod 777 /opt/system_monitor"

pssh -P -h ip_all_172.X "mkdir -p /data{1..4}/DataBig;chown root:root /data{1..4};chown root:root /data{1..4}/DataBig;chmod 777 /data{1..4};chmod 777 /data{1..4}/DataBig"

根据机器性能,可以调整pssh并发能力

vi `which pssh`

同样通过如下方式编写shell也可以实现:

#!/bin/sh

for i in `cat /srv/BigData/mppdb/data5/backup/iplist_all`;do ssh -q $i date;done


lvs批量配置:

安装:

pssh -t 300 -P -h /opt/ip_list/ip_120_172.X "source /opt/env_gaussdb/cluster_1025;/data1/DataBig/clu_01/wisequery/script/gs_loadbalance -t install -U clu_01 -X /opt/XML/cluster_120x4_0120.xml --master=linux1111 --standby=linux1112 --lvs-addr=172.xx.xx.xx"

卸载:

pssh -t 300 -P -h /opt/ip_list/ip_120_172.X "source /opt/env_gaussdb/cluster_1025;/data1/DataBig/clu_01/wisequery/script/gs_loadbalance -t uninstall -U clu_01 -X /opt/XML/cluster_120x4_0120.xml"

结果收集

查看集群内节点的一些配置是否统一,

gs_ssh -c "date" ##查看集群节点时间是否统一

或者查看集群内某个节点的磁盘空间使用高于某个限定值。

gs_ssh -c "df -h | grep '[5-9][0-9]%'" | grep -v  FAILURE  ##查看哪些节点的磁盘高于50%

关闭集群时,长时间集群无法关闭, 通过此工具可以发现哪个节点上还残留进程,快速定位:

gs_ssh -c "ps ux |grep -E 'cm_agenr|cm_server|gaussdb|gtm'| grep -v 'check'” 

集群安装后可以通过gs_ssh工具批量查询和收集信息:

gs_ssh -c 'gsql -p 25308 -d postgres -c "show all;"'

资源观察

监控脚本提前编辑好,分发到服务器各个节点通过快捷方式进行启动关闭

alias stop_monitoring="pssh -t 300 -p 200 -P -h /opt/ip_list/ip_all_172.X \" sh /opt/system_monitor/kill.sh \" "
alias start_monitoring="pssh -t 300 -p 200 -P -h /opt/ip_list/ip_all_172.X \" sh /opt/system_monitor/system_check.sh > /opt/system_monitor/run.log 2>&1 &  \" "

作业分析

根据从作业日志得到的报错信息 到各个CN节点去检索日志 再根据检索出的CN日志信息 获取相关的query_id、dn编号去到DN 所在的节点去获取DN日志。

集群的CN ip写入到一个文件通过遍历方式到各个节点去检索日志:

path=`pwd`

hostfilepath="$path"
cmd=$1
hostfile=$2
for node in `cat ${hostfilepath}/${hostfile}`
do
    echo "------------------------------------------ $node --------------------------------------------"
    ssh $node "${cmd}"
done

sh exe.sh "grep 'ERROR timeout expired' /data2/DataBig/mpp_120/log/gaussdba/mpp_120/pg_log/cn*/postgresql-2021-02*log" cn

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。