摘要:本文詳細梳理分析了DWS服務面臨軟硬體故障場景和對應的修複原理,希望藉此能夠讓你對DWS的集群故障修複有個全面深入的瞭解。 本文分享自華為雲社區《GaussDB(DWS)故障修複系統性介紹》,作者: 聞鮮生。 DWS是一個分散式架構的MPP集群,物理部署上涉及數百數千台主機和對應的磁碟,以及這 ...
摘要:本文詳細梳理分析了DWS服務面臨軟硬體故障場景和對應的修複原理,希望藉此能夠讓你對DWS的集群故障修複有個全面深入的瞭解。
本文分享自華為雲社區《GaussDB(DWS)故障修複系統性介紹》,作者: 聞鮮生。
DWS是一個分散式架構的MPP集群,物理部署上涉及數百數千台主機和對應的磁碟,以及這些主機所在的大規模分散式高速組網環境。在邏輯上,MPPDB包括CM、GTM、CN、DN各種實例組件的配合工作。因此DWS的故障場景較多,不過我們提供了針對各種故障場景的系統性修複方案。通過此文可以瞭解DWS服務面臨的故障場景和對應的修複方案。
硬體故障場景
1、可修複故障:主要是指硬體故障後可以修複,並且不會造成數據損壞或者丟失,比如記憶體條故障更換,raid組內磁碟故障更換,主機斷電重啟等。這種故障場景下,等待硬體故障恢復後,上面的資料庫實例會自動啟動並恢復。
2、磁碟故障:包括磁碟故障和raid組故障,可能導致CN,DN數據損壞或者丟失。這種故障場景下,等待硬體故障修複後,需要對上面的CN實例做元數據修複,DN實例做數據修複,CM,GTM實例做配置修複。
3、主機故障:包括系統盤損壞,其他硬體故障導致的主機無法啟動等,會導致該主機上部署的軟體和數據丟失。這種故障場景下,則需要更換主機,使用新主機替換故障主機,需要在新主機上重裝資料庫軟體,重建上面的資料庫實例。
軟體故障場景
DWS邏輯上包括OM,CM,GTM,CN,DN六種類型的實例組件,每類組件提供的功能不動,配置的數量也不同,但是共同配合,支撐DWS的運維和業務功能。如下是DWS服務的一種簡單部署拓撲圖(其中OM屬於靜態工具因此不再列出,為了拓撲簡潔性DN從備也未列出):
其中硬體故障最終體現到DWS資料庫實例故障上,DWS集群修複也是通過修複每類故障實例來進行的,每類實例的修複條件和修複思路如下:
- 集群管理組件(CM)
- cm_server:主備模式,主備至少有一個正常的才能修複。主要修複配置,以對端為模板重建故障實例。
- cm_agent:每個節點都部署一個cm_agent,原則上只要有一個正常的cm_agent就能修複。主要修複配置,以正常的cm_agent為模板重建故障實例。
- 全局事務管理(GTM):主備模式,主備至少有一個正常的才能修複。主要修複配置和少量數據(xid,序列等),以對端為模板重建故障實例。
- 協調節點(CN):多主多活模式,每個節點可部署一個CN實例,整個DWS集群最多部署20個CN實例。只要有一個正常的CN就能修複。主要修複配置和元數據,以正常的CN為模板重建故障實例。
- 數據節點(DN):多切片模式,最多支持2048個數據切片。每個數據切片又包括主機,備機,從備三副本。每個DN切片主備從只能故障一個。主機或備機故障以對端實例為模板修複故障實例配置和數據。從備故障以主機實例為模板修複故障實例的配置。
故障修複場景
結合硬體故障場景和軟體故障場景,DWS支持的故障修複主要包括:DN主備build,實例修複,節點修複(溫備)
DN主備build
DN主備副本通過WAL實時同步數據,由CM來自動完成DN主備實例的狀態監控、主備沖裁、主備切換及主備build。如果主DN所在機器發生故障,CM自動完成DN主備切換(備機升主,主機降備),如果故障恢復後,CM會自動做DN主備數據同步(build)來重建故障備機。該場景主要包括機器宕機重啟,更換記憶體條等,是最常見的故障場景也是最簡單的故障場景,DWS已經支持自動化處理。
實例修複
實例修複主要指相對於“DN主備build”更複雜的故障場景,該故障場景主要是指某個機器(或多台機器)發生實例級別故障,實例範圍包括CM、GTM、CN、DN等實例,故障範圍主要包括實例的配置或者數據發生損壞或者丟失,但是故障機器的OS系統和DWS資料庫軟體還是正常的。該故障場景主要包括機器數據盤,raid組損壞,更換磁碟等。
典型的故障場景和修複示意圖如下:
該故障場景DWS已經不能做自動化修複,但是提供了一鍵式修複工具gs_replace,需要運維人員分析故障場景,預估修複耗時,然後在業務空閑時間窗進行修複。
CM、GTM主要修複配置,秒級修複,對業務和系統負載影響很小;CN涉及元數據重建,耗時與表數量正相關,並且在修複後期會短暫鎖集群做元數據追增,阻塞用戶DDL業務;DN涉及數據重建,耗時與數據量正相關,修複過程中不影響業務,但會消耗系統的網路和IO資源。
節點修複
節點修複主要處理更加複雜的故障場景,該故障場景主要是指某個機器(或多台機器)發生整機故障,如CPU、記憶體故障,OS系統損壞導致的機器無法啟動。
該故障場景修複思路如下:
1、確認故障範圍,包括故障機器,影響的資料庫實例。
2、故障機器斷電下網。
3、重新準備一臺新機器,新機器軟硬體規格要和故障機器一樣。
4、把新機器的主機名和IP修改成故障機器一樣,並加入到DWS集群網路內。
5、通過DWS修複工具在新機器上重建故障機器上的軟體、配置和數據。
溫備
溫備處理的故障場景和節點修複一樣,主要是修複方式不一樣,溫備主要適用於雲上場景或者有機器富裕的用戶。
主要使用場景如下:
1、針對N台主機的DWS集群,提前規劃M台機器作為溫備機器,溫備機器軟硬體規格和DWS集群機器一樣。並把溫備機器也加入到DWS集群網路環境內。
2、如果DWS集群內某台機器發生了硬體故障且無法修複。
3、把故障機器斷電並下網。
4、從溫備機器中任找一臺機器,然後使用DWS修複工具在溫備機器上重建故障機器上面的軟體、配置和數據。
本文詳細梳理分析了DWS服務面臨軟硬體故障場景和對應的修複原理,希望藉此能夠讓你對DWS的集群故障修複有個全面深入的瞭解。具體的使用說明和操作步驟可參見DWS產品文檔,從此對DWS故障修複不再愁。