實例解讀丨關於GaussDB ETCD服務異常

来源:https://www.cnblogs.com/huaweiyun/archive/2022/11/02/16851345.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
更多相關文章
  • 自己寫了一種,速度不是很快,但是能夠實現 var findpic = new FindPic(); var rec = findpic.FindPicture(@"C:\Users\zaranet\Desktop\xiao.png", @"C:\Users\zaranet\Desktop\da.pn ...
  • ###前言 剛接觸XAF的小伙伴可能會有一個疑惑,XAF中有Model(BusinessObject)、View、Controller,感覺明顯是一個MVC的設計模式,但當你用MVC的設計模式與其對應時,又會發現有一些不一樣,可能這時有小伙伴會想會不會是MVC的變體,因為MVC只是一個設計模式,不同 ...
  • 長連接與短連接 所謂長連接,指在一個TCP連接上可以連續發送多個數據包,在TCP連接保持期間,如果沒有數據包發送,需要雙方發檢測包以維持此連接,一般需要自己做線上維持。 短連接是指通信雙方有數據交互時,就建立一個TCP連接,數據發送完成後,則斷開此TCP連接,一般銀行都使用短連接。 比如http的, ...
  • <svg xmlns="http://www.w3.org/2000/svg" style="display: none;"> <path stroke-linecap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-block" style="-web ...
  • lsof -i tcp:埠號 要殺死進程的話,即:kill -9 pid ...
  • 前言 上一篇博客給大家介紹了LabVIEW開放神經網路交互工具包【ONNX】,今天我們就一起來看一下如何使用LabVIEW開放神經網路交互工具包實現TensorRT加速YOLOv5。 以下是YOLOv5的相關筆記總結,希望對大家有所幫助。 內容地址鏈接 【YOLOv5】LabVIEW+OpenVIN ...
  • GreatSQL社區原創內容未經授權不得隨意使用,轉載請聯繫小編並註明來源。 GreatSQL是MySQL的國產分支版本,使用上與MySQL一致。 前文回顧 實現一個簡單的Database1(譯文) 實現一個簡單的Database2(譯文) 實現一個簡單的Database3(譯文) 實現一個簡單的D ...
  • 前面說到了redis在單機的模式下是可以數據持久化的,但是不可以解決單點失敗的問題,當單台redis伺服器出現問題時,就可能會造成數據的丟失;想要解決這個問題的話我們可以使用Redis的主從模式這也是Redis集群最簡單的實現方式,這篇文章我就來簡單部署一個Redis主從架構,我準備了3台ubunt ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...