摘要:本文通过对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没有重新配置,导致丢失。

实例解读丨关于GaussDB ETCD服务异常-编程知识网

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

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

实例解读丨关于GaussDB ETCD服务异常-编程知识网

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

实例解读丨关于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 "https://X.X.X.X: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状态。

实例解读丨关于GaussDB ETCD服务异常-编程知识网

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

实例解读丨关于GaussDB ETCD服务异常-编程知识网

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

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

实例解读丨关于GaussDB ETCD服务异常-编程知识网

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

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

问题现象

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

问题分析及界定

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

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

实例解读丨关于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查看

实例解读丨关于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.

处理步骤

参照上面描述步骤。

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

查看全文

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.dgrt.cn/a/199547.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章:

实例解读丨关于GaussDB ETCD服务异常-编程知识网

实例解读丨关于GaussDB ETCD服务异常

摘要:本文通过对ETCD服务异常问题分析,代码展示解决方案。本文分享自华为云社区《【实例状态】GaussDB ETCD服务异常》,作者:酷哥。
首先确认是否是虚拟机、网络故障
虚拟机故障导致ETCD服务异常告警
问题现象
管控面上报etcd……

实例解读丨关于GaussDB ETCD服务异常-编程知识网

1. Vue3新特性 —— Vue3深入学习

1. 响应式系统不同
vue2 响应式机制是基于 Object.defineProperty()这个 api 实现的,只是对对象拦截,Proxy 才是真正代理,Vue2 还需要对数组方法重写,监听数组长度的变化还需要$set api
2. 自定义渲染器
vue2 所有的模块都是糅……

实例解读丨关于GaussDB ETCD服务异常-编程知识网

使用 Python (Pyxel)制作一个经典的 Lode Runner 游戏

本文首发于:https://code.haiyong.site/636/
由于像素风游戏的机制非常简单(如:最多只能显示 16 种颜色、播放 4 种声音等),现在你也可以轻松地享受这种游戏的制作过程。 说明
可在 Windows、Mac、Linux 和 Web 上运……

实例解读丨关于GaussDB ETCD服务异常-编程知识网

java计算机毕业设计云端小区物业智能管理系统MyBatis+系统+LW文档+源码+调试部署

java计算机毕业设计云端小区物业智能管理系统MyBatis系统LW文档源码调试部署 java计算机毕业设计云端小区物业智能管理系统MyBatis系统LW文档源码调试部署本源码技术栈:
项目架构:B/S架构
开发语言:Java语言
开发软件:idea ecl……

实例解读丨关于GaussDB ETCD服务异常-编程知识网

Android Lottie动画

1.Lottie动画
Lottie是Airbnb开源的动画框架,是基于CALayer的动画,所有的路径预先在AE中计算好,转换为Json文件, 然后自动转换为Layer的动画。
Lottie有各种不同的版本, 安卓、iOS、前端都可以使用, 理论……

实例解读丨关于GaussDB ETCD服务异常-编程知识网

TypeScript入门基础

文章目录1 TypeScript介绍1.1 什么是TypeScript?1.2 为什么需要 TypeScript1.3 JS与TS的相关知识1.4 TypeScript特性1.5 TypeScript安装2 TypeScript的基本类型2.1 类型声明2.2 类型分类2.2.1 number2.2.2 string2.2.3 boolean2.2.4 字面量2.2.5 any2.2.6 unknown2.2.7 void2.……

实例解读丨关于GaussDB ETCD服务异常-编程知识网

STN:不规则文本矫正网络的探索

1 仿射变换
仿射变换(Affine Transformation 或Affine Map)是数字图像处理方法中一种二维坐标(x, y)到二维坐标(u, v)的线性变换: 仿射变换可以实现如: 仿射变换具有平直性和平行性……

实例解读丨关于GaussDB ETCD服务异常-编程知识网

数据库1,SQL基础语言

目录
概念
特点
关系型数据库与非关系型数据库
关系型数据库
非关系型数据库
相关术语
结构化查询语言SQL
分类
基本语法
DDL:数据定义语言
数据库操作
数据表操作
数据类型
数值型
字符串类型 日期类型
创建表 查询表 修改表
约束 非空约束(not n……

实例解读丨关于GaussDB ETCD服务异常-编程知识网

30条有趣的狗名言

每只狗都是天生的喜剧演员。 多亏了这个事实,各个时代以来,犬科动物一直在有趣的狗语中永垂不朽。 有些是过去时代的忏悔,而另一些则是庆祝现代狗的愚蠢行为。 无论新旧,我们都收集了一些我们最喜欢的有趣的狗语录与您分享。
“永……

实例解读丨关于GaussDB ETCD服务异常-编程知识网

基于寄生-捕食算法的函数寻优算法

文章目录一、理论基础1、寄生-捕食算法(1)初始化(2)筑巢阶段(鸟窝)(3)寄生阶段(乌鸦-布谷鸟)(4)捕食阶段(乌鸦-猫)2、PPA算法伪代码二、仿真实验与结果分析三、参考文献一、理论基础……

实例解读丨关于GaussDB ETCD服务异常-编程知识网

反序列化渗透与攻防(五)之shiro反序列化漏洞

Shiro反序列化漏洞
Shiro介绍
Apache Shiro是一款开源安全框架,提供身份验证、授权、密码学和会话管理。Shiro框架直观、易用,同时也能提供健壮的安全性
Apache Shiro 1.2.4及以前版本中,加密的用户信息序列化后存储在名为remember-me的Cookie中。攻击者可以使用Shiro的默……

实例解读丨关于GaussDB ETCD服务异常-编程知识网

vue2+vue3

vue2vue3尚硅谷vue2vue2 课程简介【02:24】vue2 Vue简介【17:59】vue2 Vue官网使用指南【14:07】vue2 搭建Vue开发环境【13:54】vue2 Hello小案例【22:25】了解: 不常用常用:id 更常用 简单class差值总结vue 实例vue 模板 : 先 取 &#xff0……

实例解读丨关于GaussDB ETCD服务异常-编程知识网

【hello Linux】环境变量

目录 1. 环境变量的概念 2. 常见的环境变量 3. 查看环境变量 4. 和环境变量相关的命令 5. 环境变量的组织方式 6. 通过代码获取环境变量 7. 通过系统调用获取环境变量 Linux🌷 在开始今天的内容之前,先来看一幅图片吧! 不知道你们是否和我一……

实例解读丨关于GaussDB ETCD服务异常-编程知识网

【Linux基础】常用命令整理

ls命令
-a选项,可以展示隐藏的文件和文件夹-l选项,以列表形式展示内容-h,需要和-l搭配使用,可以展示文件的大小单位ls -lah等同于la -a -l -h
cd命令(change directory)
语法:cd [Linux路径]……

实例解读丨关于GaussDB ETCD服务异常-编程知识网

客快物流大数据项目(一百一十二):初识Spring Cloud

文章目录
初识Spring Cloud
一、Spring Cloud简介
二、SpringCloud 基础架构图…

实例解读丨关于GaussDB ETCD服务异常-编程知识网

C和C++中的struct有什么区别

区别一: C语言中: Struct是用户自定义数据类型(UDT)。 C语言中: Struct是抽象数据类型(ADT),支持成员函数的定义。
区别二:
C中的struct是没有权限设置的&#xff0c……

实例解读丨关于GaussDB ETCD服务异常-编程知识网

docker的数据卷详解

数据卷 数据卷是宿主机中的一个目录或文件,当容器目录和数据卷目录绑定后,对方修改会立即同步
一个数据卷可以同时被多个容器同时挂载,一个容器也可以被挂载多个数据卷
数据卷作用:容器数据持久化 /外部机器和容器间接通信 /容器……

实例解读丨关于GaussDB ETCD服务异常-编程知识网

13、Qt生成dll-QLibrary方式使用

Qt创建dll,使用QLibrary类方式调用dll
一、创建项目
1、新建项目->其他项目->Empty qmake Project->Choose 2、输入项目名,选择项目位置,下一步 3、选择MinGW,下一步 4、完成 5、.pro中添加TEMPLATE subdirs&#xff……

实例解读丨关于GaussDB ETCD服务异常-编程知识网

基于mapreduce 的 minHash 矩阵压缩

Minhash作用: 对大矩阵进行降维处理,在进行计算俩个用户之间的相似度。
比如: 俩个用户手机下载的APP的相似度,在一个矩阵中会有很多很多的用户要比较没俩个用户之间的相似度是一个很大的计算任务 如果首先对这个矩阵降维处理&am……

实例解读丨关于GaussDB ETCD服务异常-编程知识网

关于hashmap使用迭代器的问题

keySet获得的只是key值的集合,valueSet获得的是value集合,entryset获得的是键值对的集合。 package com.test2.test;import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;public class mapiterator……