5种GaussDB ETCD服务异常实例分析处理「建议收藏」

5种GaussDB ETCD服务异常实例分析处理「建议收藏」摘要:一文带你细数几种ETCD服务异常实例状态。 本文分享自华为云社区《【实例状态】GaussDB ETCD服务异常》,作者:酷哥 。 首先确认是否是虚拟机、网络故障 虚拟机故障导致ETCD服务异常告

5种GaussDB ETCD服务异常实例分析处理

摘要:一文带你细数几种ETCD服务异常实例状态。

本文分享自华为云社区《【实例状态】GaussDB ETCD服务异常》,作者:酷哥 。

首先确认是否是虚拟机、网络故障

虚拟机故障导致ETCD服务异常告警

问题现象

管控面上报etcd服务异常告警,虚拟机发生重启,热迁移、冷迁移,HA等动作。

问题分析及界定

在告警信息中找到实例ID、节点ID、虚拟机ID,在管控面查看虚拟机状态是否正常,能否正常登录,

如果虚拟机异常无法登录,联系IaaS技术支持修复虚拟机。

检查虚拟机是否发生过重启,热迁移、冷迁移、HA等动作,例如内存、网卡等问题引起热迁移。

处理步骤

联系IaaS技术支持修复虚拟机,确认虚拟机故障原因,例如内存、网卡等问题引起热迁移。

网络故障导致ETCD服务异常告警

问题现象

管控面上报etcd服务异常告警,虚拟机无法登录或ping通其他节点IP, 或者监控显示网络有异常。

问题分析及界定

在该节点上ping其他节点IP,测试是否ping通。

如果ping不通,执行步骤(1)(2),检查该节点网络、IP配置、防火墙配置等。

如果ping通,执行步骤(3)确认告警时间点网络是否断开。

(1)检查IP是否正常:

ifconfig查看etcd使用的IP是否存在,如果不存在,排查IP配置丢失原因,常见原因是虚拟机重启后IP没有重新配置,导致丢失。

5种GaussDB ETCD服务异常实例分析处理「建议收藏」

(2)检查防火墙是否正常

在Ruby用户下查看etcd的IP和端口: ps ux | grep etcd

5种GaussDB ETCD服务异常实例分析处理「建议收藏」

在root用户下iptables -L命令检查防火墙是否限制了IP和端口,如果有限制,去掉防火墙限制。

5种GaussDB ETCD服务异常实例分析处理「建议收藏」

(3) 查看etcd日志

进入Ruby用户

cd $GAUSSLOG/cm/etcd

查看对应时间点的etcd_xxx.log日志,如果有如下日志,可能是etcd节点间网络断开, 或者对端的etcd进程down,导致本端etcd连接断开。

排查网络原因或对端的etcd进程是否重启,网络原因可能是网络断开,网卡故障,也有可能是虚拟机故障。

grpc: Server.processUnaryRPC failed to write status: connection error: desc = “transport is closing”

rafthttp: lost the TCP streaming connection with peer c797ab3a61e2ea55 (stream MsgApp v2 reader)

etcdserver: failed to reach the peerURL(https:// X.X.X.X:X) of member c797ab3a61e2ea55 (Get “:X/version”: dial tcp X.X.X.X:X: i/o timeout)

rafthttp: health check for peer c797ab3a61e2ea55 could not connect: dial tcp X.X.X.X:X: i/o timeout (prober “ROUND_TRIPPER_RAFT_MESSAGE”)

处理步骤

处理步骤同上,已说明。

负载过重导致ETCD服务异常警告

问题现象

管控面上报etcd服务异常告警, 磁盘IO/CPU/内存 很高.

问题分析及界定

进入Ruby用户

cd $GAUSSLOG/cm/etcd

查看对应时间点的etcd_xxx.log日志,告警时间点有如下日志,说明etcd节点负载过重, 磁盘IO、CPU等压力大。

2021-04-09 10:57:40.112936 W | wal: sync duration of 2.00201804s, expected less than 1s ===通常这个表示磁盘IO压力大。

2021-04-09 10:57:40.112993 W | etcdserver: failed to send out heartbeat on time (exceeded the 1s timeout for 2.124414ms, to c8eccd97bed22939)

2021-04-09 10:57:40.112999 W | etcdserver: server is likely overloaded

2021-04-09 10:57:43.126444 W | etcdserver: read-only range request “key:”/Ruby/ignoreNodeNumKey” ” with result “error:context canceled” took too long (1.999877971s) to execute

cd $GAUSSLOG/cm/cm_agent

搜索对应时间点的cm_agent-xxx.log, 如果有如下日志,表示当时磁盘io比较高, io util 100 表示磁盘io 达到100%

2021-04-09 11:06:24.047 tid=15822 LOG: device vdb1, tot_ticks 889640579, cputime 1798651342, io util 100

处理步骤

1、在管控面查看该节点当时磁盘IO、CPU、内存监控指标是否很高,

示例1:数据盘写延时在16:00左右升高,影响etcd状态。

5种GaussDB ETCD服务异常实例分析处理「建议收藏」

示例2: etcd故障时刻,cpu、内存、磁盘写延时都有增长,尤其是磁盘写延时很明显,需要分析磁盘写延时升高的原因。

5种GaussDB ETCD服务异常实例分析处理「建议收藏」

2、如果故障现场还在: iostat -mx 1 查看磁盘IO状态,top和free命令查看cpu、内存使用情况, 分析磁盘IO高、CPU高,内存高的原因。

3、root用户查看该节点的系统日志, cd /var/log, 查看该时间点message日志是否有异常记录。例如:节点内存耗尽了,分析占用内存的原因,是否内存泄漏等。

5种GaussDB ETCD服务异常实例分析处理「建议收藏」

如果仍无法确认原因,联系华为工程师。

etcd进程故障导致ETCD服务异常告警

问题现象

etcd进程down、重启,管控面上报etcd服务异常告警

问题分析及界定

登陆故障etcd节点, 进入Ruby用户,执行命令ps ux | grep etcd, 查看etcd进程是否在运行。

如果进程在,查看etcd进程启动时间,告警时是否重启过,联系华为工程师确认重启原因。

5种GaussDB ETCD服务异常实例分析处理「建议收藏」

如果进程不在,查看etcd无法启动原因:

(1)cd $GAUSSLOG/bin, 查看目录下是否有cluster_manual_start 和 etcd_manual_start 两个文件,

如果有表示集群被停止,确认停止集群的原因,之后启动集群,定位结束。

(2)cd $GAUSSHOME/bin 查看目录下是否存在etcd这个文件,文件权限是否正确,确认文件不存在或权限不正确的原因。

(3)检查etcd的数据目录所在磁盘是否满了或者故障,etcd目录如下:cm_ctl query -Cvipd查看

5种GaussDB ETCD服务异常实例分析处理「建议收藏」

检查etcd的数据目录所在磁盘是否满了或者目录权限不正确(正确是700)或者故障,

如果磁盘满,检查占用磁盘的文件并清除或者转存到其他盘,如果是etcd本身的文件占满,联系华为工程师分析原因。

如果目录权限不正确,修改为正确的目录权限。如果是磁盘故障,联系IaaS技术支持分析定位。

处理步骤

参照上述处理,如果不是以上原因,请联系华为工程师

OM接口无法正确返回结果导致ETCD服务异常告警

问题现象

管控面上报etcd服务异常告警, 管控无法获取集群状态

问题分析及界定

查看管控面是否获取集群状态成功,是否获取空消息,联系华为工程师分析定位。

cd $GAUSSLOG/om/

查看gs_om-xxx.log,是否有如下异常日志

例如: The status file does not exist. Path: /usr/local/temp/local_status_1611355718.58.dat.

处理步骤

参照上面描述步骤。

 

点击关注,第一时间了解华为云新鲜技术~

原文地址:https://www.cnblogs.com/huaweiyun/archive/2022/11/17/16899620.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/4530.html

(0)
上一篇 2023-06-15
下一篇 2023-06-15

相关推荐

  • 包含python中display什么意思的词条

    包含python中display什么意思的词条display()是一种函数,功能是显示输出函数。

    2023-10-30
    138
  • Python实现开根号

    Python实现开根号开根号是数学中常见的运算之一。在实际生活和工作中,我们也经常需要对数据进行开根运算,比如求一些物理学和统计学中的参数。Python作为强大的编程语言,也提供了实现开根号的方法。

    2024-07-12
    46
  • redis更新缓存数据命令_redis缓存数据怎么更新

    redis更新缓存数据命令_redis缓存数据怎么更新Redis项目总结缓存更新策略 1.更新策略 | | 内存淘汰 | 超时剔除 | 主动更新 | | : : | : : | : : | : : | | 说明 | 不用自己维护,利用Redis内存淘

    2023-06-19
    146
  • [Raft共识算法] Dragonboat Log Replication 代码走读

    [Raft共识算法] Dragonboat Log Replication 代码走读Dragonboat Log Replication 代码走读 Dragonboat 是一个开源的高性能Go实现的Raft共识协议实现. 具有良好的性能和久经社区检验的鲁棒性, 机遇巧合, 接触到.

    2023-06-10
    136
  • Python: 字符串替换方法全解析

    Python: 字符串替换方法全解析字符串是Python编程语言中最常用的数据类型之一,可以通过多种方法对字符串进行替换处理。Python字符串替换方法主要包括replace()、translate()、re.sub()三种方法,这三种方法在Python中都非常方便实用。

    2024-03-17
    78
  • 技术分享 | MySQL 优化:JOIN 优化实践「建议收藏」

    技术分享 | MySQL 优化:JOIN 优化实践「建议收藏」作者:胡呈清 近期刚好学习了丁奇老师的《MySQL 实战 45 讲》中的 join 优化相关知识,又刚刚好碰上了一个非常切合的 join 查询需要优化,分析过程有些曲折,记录下来留作笔记。 问题 S…

    2023-01-24
    144
  • 优化字符串拼接的技巧

    优化字符串拼接的技巧在Python编程中,字符串拼接是经常使用的操作。无论是字符串连接、格式化输出、SQL拼接查询语句等,都少不了字符串拼接的操作。但是,在数据量比较大的情况下,传统的字符串拼接方式可能会出现效率低下的问题。本文将从多个方面介绍优化字符串拼接的技巧。

    2023-12-25
    111
  • c# hadoop_hadoop 命令

    c# hadoop_hadoop 命令Hive Hive将HiveQL(类sql语言)转为MapReduce,完成数据的查询与分析,减少了编写MapReduce的复杂度。它有以下优点: 学习成本低:熟悉sql就能使用 良好的数据分析:底层

    2023-05-14
    164

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注