從原理到實踐,手把手帶你輕松get數倉雙集群容災


摘要:本文通過介紹雙集群的架構、log結構、分析步驟來介紹雙集群容災的問題分析方法。

本文分享自華為雲社區《從原理到實踐,手把手帶你輕松get數倉雙集群容災》,原文作者:Puyol 。

雙集群原理

GaussDB(DWS) 的容災方案是一個雙集群同步的架構,即兩套獨立集群定期同步數據以達到容這的目的。目前數據同步的方式是通過roach(GaussDB(DWS)備份、恢復工具)定期做增量備份和恢復同步。雙集群框架是一個復雜的分布式系統,在出現問題時,如何快速准確的定位問題及恢復服務是一個非常緊迫的問題,這個問題在雲上會更突出。本文通過介紹雙集群的架構、log結構、分析步驟來介紹雙集群容災的問題分析方法。

首先介紹一下雙集群的部署方案原理,從部署架構和重要參數兩個方面先介紹一下背景知識,便於更好理解問題分析的方法。

架構簡介

1. 邏輯架構示例

下圖是一個同構的雙集群部署示意圖,主備集群都是3c3d, 主集群的主結點部署雙集群框架腳本,定期進行備份操作,備集群的主結點定期恢復備份集。基礎數據需要進行一全量備份,之后增量備份。

https://bbs-img.huaweicloud.com/blogs/img/1619950368443072223.png

2. 部署架構

下圖是接上圖的部署架構,涉及雙集群同步腳本(SyncDataToStby.py), 備份程序(GaussRoach.py, gs_roach)三個二進制文件

https://bbs-img.huaweicloud.com/blogs/img/1621995012445058890.png

備份側調用關系:SyncDataToStby.py -> GaussRoach.py -> gs_roach

恢復側調用關系:SyncDataToStby.py -> GaussRoach.py -> gs_roach

了解調用關系和咱們分析問題有直接的關系。

SyncDataToStby.py 是整個雙集群的調用起始,控制着雙集群的正常運行,正常情況下是長駐內存的進程,如果異常退出后,后台會有crontab的來重新拉起雙集群腳本: crontab -> SyncDataToStby.py -> GaussRoach.py -> gs_roach

主要參數簡介

問題定位

眾所周知,系統的各種log是我們了解運行機制,了解問題現場的有力工具,同樣雙集群的問題分析也依賴於log的分析,首先認識一下雙集群對應的日志:

log 目錄結構

由上節的邏輯圖及部署圖,每個二進制對應的log文件如下圖所示,對應二進制的信息查找對應的log。

https://bbs-img.huaweicloud.com/blogs/img/1621994756422058370.png

如上圖,雙集群的日志也是存放到$GAUSSLOG這個目錄,並且有自己獨立的目錄 roach, 由這個目錄同樣是備份/恢復的對應的log路徑。我們按調用關系從上到下的角度來介紹

1. frame目錄

存放 SyncDataToStby.py 生成的log,涉及到雙集群調度,備份集清理,狀態顯示,配置文件及命令行參數解析的功能。

2. controller目錄

存放 GaussRoach.py 生成的log,涉及到備份、恢復准備工作一些操作,備份、恢復參數解析,備份集群的處理,錯誤處理等

3. agent目錄

存放 gs_roach工具 生成的log,涉及到gs_roach 連接gaussdb/gtm/cm發起備份/恢復,生成備份集/恢復備份集等操作。

gs_roach工具功能:在備份側完成將cn/dn/gtm/cm的數據文件按順序打包成備份文件的功能,並生成備份集元信息文件; 恢復側根據元信息文件將備份集文件解壓到對應cn/dn/gtm/cm的數據目錄中。

定位步驟

1. 確定問題在備份側還是恢復側,查找雙集群主結點上Sync日志,確定出錯的模塊

2. 確定出錯的層次,由於雙集群執行過程是一個上下層調用及時序關系的方式,具體順序參考:

crontab -> SyncDataToStby.py -> GaussRoach.py -> gs_roach

3. 在各個模塊都有較詳細的日志描述過程,具體問題具體分析,大體有如下幾個方面

1)配置出錯,用戶、環境變量文件

2)備份集群路徑權限問題

3)由於集群狀態非Normal導致備份失敗

4)結點故障及備份集損壞導致恢復失敗

4. 后續文章會按模塊及錯誤類型來詳細描述問題定位步驟

小結

GaussDB(DWS)的雙集群容災功能是一個獨立的復雜的分布式系統,涉及到三層工具的使用,因此在問題定位時會造成一些困惑。定位的方法需要先去理解架構,運行機制,然后根據時序關系去對應結點分析日志。后續會從各個模塊的角度介紹一些典型的問題及修復方法。

 想了解GuassDB(DWS)更多信息,歡迎微信搜索“GaussDB DWS”關注微信公眾號,和您分享最新最全的PB級數倉黑科技,后台還可獲取眾多學習資料哦~

 

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM