5種GaussDB ETCD服務異常實例分析處理

来源:https://www.cnblogs.com/huaweiyun/archive/2022/11/17/16899620.html
-Advertisement-
Play Games

摘要:一文帶你細數幾種ETCD服務異常實例狀態。 本文分享自華為雲社區《【實例狀態】GaussDB ETCD服務異常》,作者:酷哥 。 首先確認是否是虛擬機、網路故障 虛擬機故障導致ETCD服務異常告警 問題現象 管控面上報etcd服務異常告警,虛擬機發生重啟,熱遷移、冷遷移,HA等動作。 問題分析 ...


摘要:一文帶你細數幾種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沒有重新配置,導致丟失。

(2)檢查防火牆是否正常

在Ruby用戶下查看etcd的IP和埠: ps ux | grep etcd

在root用戶下iptables -L命令檢查防火牆是否限制了IP和埠,如果有限制,去掉防火牆限制。

(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狀態。

示例2: etcd故障時刻,cpu、記憶體、磁碟寫延時都有增長,尤其是磁碟寫延時很明顯,需要分析磁碟寫延時升高的原因。

2、如果故障現場還在: iostat -mx 1 查看磁碟IO狀態,top和free命令查看cpu、記憶體使用情況, 分析磁碟IO高、CPU高,記憶體高的原因。

3、root用戶查看該節點的系統日誌, cd /var/log, 查看該時間點message日誌是否有異常記錄。例如:節點記憶體耗盡了,分析占用記憶體的原因,是否記憶體泄漏等。

如果仍無法確認原因,聯繫華為工程師。

etcd進程故障導致ETCD服務異常告警

問題現象

etcd進程down、重啟,管控面上報etcd服務異常告警

問題分析及界定

登陸故障etcd節點, 進入Ruby用戶,執行命令ps ux | grep etcd, 查看etcd進程是否在運行。

如果進程在,查看etcd進程啟動時間,告警時是否重啟過,聯繫華為工程師確認重啟原因。

如果進程不在,查看etcd無法啟動原因:

(1)cd $GAUSSLOG/bin, 查看目錄下是否有cluster_manual_start 和 etcd_manual_start 兩個文件,

如果有表示集群被停止,確認停止集群的原因,之後啟動集群,定位結束。

(2)cd $GAUSSHOME/bin 查看目錄下是否存在etcd這個文件,文件許可權是否正確,確認文件不存在或許可權不正確的原因。

(3)檢查etcd的數據目錄所在磁碟是否滿了或者故障,etcd目錄如下:cm_ctl query -Cvipd查看

檢查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.

處理步驟

參照上面描述步驟。

 

點擊關註,第一時間瞭解華為雲新鮮技術~


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • aspnetcore上傳圖片也就是上傳文件有兩種方式,一種是通過form-data,一種是binary。 先介紹第一種form-data: 該方式需要顯示指定一個IFormFile類型,該組件會動態通過打開一個windows視窗選擇文件 及圖片。 postman演示如上,代碼如下: [HttpPos ...
  • 一:背景 1.講故事 前幾天 B 站上有位朋友讓我從高級調試的角度來解讀下 .NET7 新出來的 AOT,畢竟這東西是新的,所以這一篇我就簡單摸索一下。 二:AOT 的幾個問題 1. 如何在 .NET7 中開啟 AOT 功能 在 .NET7 中開啟 AOT 非常方便,先來段測試代碼。 interna ...
  • 前言 拋開死鎖不談,只聊性能問題,儘管鎖總能粗暴的滿足同步需求,但一旦存在競爭關係,意味著一定會有線程被阻塞,競爭越激烈,被阻塞的線程越多,上下文切換次數越多,調度成本越大,顯然在高併發的場景下會損害性能。在高併發高性能且要求線程安全的述求下,無鎖構造(非阻塞構造)閃亮登場。 參考文檔: C# - ...
  • 線程基礎 視頻已經發佈到B站 參考文章: 《Threading in C# 》(Joseph Albahari)https://www.albahari.com/threading/ 《Threading in C# 》中文翻譯(GKarch ):https://blog.gkarch.com/to ...
  • 作者:李遵舉 一、問題 近期我們運維同事接到線上LB(負載均衡)服務記憶體報警,運維同事反饋說LB集群有部分機器的記憶體使用率超過80%,有的甚至超過90%,而且記憶體使用率還再不停的增長。接到記憶體報警的消息,讓整個團隊都比較緊張,我們團隊負責的LB服務是零售、物流、科技等業務服務的流量入口,承接上萬個服 ...
  • //源文件 void UartGpioConfig() { RCC->AHB1ENR |= (1<<3); //使能GPIOD RCC->APB1ENR |= (1<<18); //使能USART3 RCC->APB2ENR |= //PD8 TXD GPIOD->MODER |= (2<<16); ...
  • //源文件 void TimerPhyConfig() { RCC->APB1ENR |= (1<<1); //使能Timer3 TIM3->ARR = arr; TIM3->PSC = psc; TIM3->DIER = (1<<0); //Update interrupt enabled TIM ...
  • 本文主要從技術層面探討大數據目前的現狀以及面臨的挑戰。在此之前,如果你對大數據的概念還比較模糊,可閱讀什麼是大數據一文瞭解。 如何定義大數據 目前我們已經瞭解到,大數據是由於數據量的巨大增長而產生的。所以,“大數據”一詞主要描述的是規模巨大的混合數據集,這種數據集是結構化與非結構化數據的融合。 通常 ...
一周排行
    -Advertisement-
    Play Games
  • 基於.NET Framework 4.8 開發的深度學習模型部署測試平臺,提供了YOLO框架的主流系列模型,包括YOLOv8~v9,以及其系列下的Det、Seg、Pose、Obb、Cls等應用場景,同時支持圖像與視頻檢測。模型部署引擎使用的是OpenVINO™、TensorRT、ONNX runti... ...
  • 十年沉澱,重啟開發之路 十年前,我沉浸在開發的海洋中,每日與代碼為伍,與演算法共舞。那時的我,滿懷激情,對技術的追求近乎狂熱。然而,隨著歲月的流逝,生活的忙碌逐漸占據了我的大部分時間,讓我無暇顧及技術的沉澱與積累。 十年間,我經歷了職業生涯的起伏和變遷。從初出茅廬的菜鳥到逐漸嶄露頭角的開發者,我見證了 ...
  • C# 是一種簡單、現代、面向對象和類型安全的編程語言。.NET 是由 Microsoft 創建的開發平臺,平臺包含了語言規範、工具、運行,支持開發各種應用,如Web、移動、桌面等。.NET框架有多個實現,如.NET Framework、.NET Core(及後續的.NET 5+版本),以及社區版本M... ...
  • 前言 本文介紹瞭如何使用三菱提供的MX Component插件實現對三菱PLC軟元件數據的讀寫,記錄了使用電腦模擬,模擬PLC,直至完成測試的詳細流程,並重點介紹了在這個過程中的易錯點,供參考。 用到的軟體: 1. PLC開發編程環境GX Works2,GX Works2下載鏈接 https:// ...
  • 前言 整理這個官方翻譯的系列,原因是網上大部分的 tomcat 版本比較舊,此版本為 v11 最新的版本。 開源項目 從零手寫實現 tomcat minicat 別稱【嗅虎】心有猛虎,輕嗅薔薇。 系列文章 web server apache tomcat11-01-官方文檔入門介紹 web serv ...
  • 1、jQuery介紹 jQuery是什麼 jQuery是一個快速、簡潔的JavaScript框架,是繼Prototype之後又一個優秀的JavaScript代碼庫(或JavaScript框架)。jQuery設計的宗旨是“write Less,Do More”,即倡導寫更少的代碼,做更多的事情。它封裝 ...
  • 前言 之前的文章把js引擎(aardio封裝庫) 微軟開源的js引擎(ChakraCore))寫好了,這篇文章整點js代碼來測一下bug。測試網站:https://fanyi.youdao.com/index.html#/ 逆向思路 逆向思路可以看有道翻譯js逆向(MD5加密,AES加密)附完整源碼 ...
  • 引言 現代的操作系統(Windows,Linux,Mac OS)等都可以同時打開多個軟體(任務),這些軟體在我們的感知上是同時運行的,例如我們可以一邊瀏覽網頁,一邊聽音樂。而CPU執行代碼同一時間只能執行一條,但即使我們的電腦是單核CPU也可以同時運行多個任務,如下圖所示,這是因為我們的 CPU 的 ...
  • 掌握使用Python進行文本英文統計的基本方法,並瞭解如何進一步優化和擴展這些方法,以應對更複雜的文本分析任務。 ...
  • 背景 Redis多數據源常見的場景: 分區數據處理:當數據量增長時,單個Redis實例可能無法處理所有的數據。通過使用多個Redis數據源,可以將數據分區存儲在不同的實例中,使得數據處理更加高效。 多租戶應用程式:對於多租戶應用程式,每個租戶可以擁有自己的Redis數據源,以確保數據隔離和安全性。 ...