乾貨分享|GBase 8a叢集雙活容災方案

GBASE南大通用發表於2021-12-22

MPP 分析型叢集容災備份的必要性

容災備份要求

MPP 分析型叢集的容災備份在技術實現上、災備級別要求上都與線上生產系統的 OLTP 事務資料庫有較大差異。如事務資料庫具有完備的 WAL write ahead logging )事務日誌,災備可以通過事務日誌實現資料庫的備份、雙活複製、異地容災等; MPP 分析型資料庫為追求大吞吐效能去掉了事務日誌支援,無法採用基於事務日誌的容災備份方案。

隨著《十四五 大資料產業發展規劃》釋出,大資料日趨成為重要的數字經濟支撐,對承載資料倉儲、負責高價值密度大資料儲存分析的 MPP 叢集進行全面的容災備份變的格外重要。

在資料庫容災備份的行業要求方面,主要還是參照工信部發布的《GB/T 20988-2007 資訊保安技術 資訊系統災難恢復規範》進行各行業、各企業自己資料庫災備要求和災備等級劃分。

容災備份等級

根據《GB/T 20988-2007 資訊保安技術 資訊系統災難恢復規範》對企業資訊系統災難備份的技術等級化為為以下六級:

6   資料零丟失及遠端叢集支援

5   實時資料傳輸及完整裝置支援

4   電子傳輸及完整裝置支援

3   電子傳輸和部分裝置支援

2   備用場地支援

1   基本支援

每個層級對應的系統恢復時間目標(RTO ,災難發生後資訊系統從停頓到必須恢復的時間要求)、恢復點目標( RPO ,災難發生後資料必須恢復到的時間點要求)有所不同,對應的災備方案也就不同。如在《銀行業資訊系統災難恢復管理規範》行業標準中,災備級別與 RTO RPO 的對應要求如下:

 

MPP 叢集資料庫的災備也遵循上述要求,如某行業針對承載重要資料及業務的 MPP 叢集資料庫容災要求如下:

 

雙活叢集

雙活系統是一種更高等級的容災,在第4 級及以上級別的容災等級中,可以通過建立雙活系統的方式滿足資料安全、業務連續要求。

MPP 分析型資料庫不支援事務日誌,無法基於成熟的事務日誌複製方案建設雙活叢集,所以 MPP 分析型資料庫可採用的雙活叢集方案也只有基於資料分片冗餘儲存(資料檔案複製)這一個方式。同一個叢集內的多個資料副本實時同步只適用於同機房的部署,無法滿足跨機房、跨城市的災備建設。為解決異地災備,就需要進行兩個不同 MPP 叢集間的基於資料檔案的複製。

GBase 8a 非同步雙活叢集

GBase 8a 的非同步雙活叢集為 Master-Slave 主備形式,主叢集資料可寫,承擔資料統計分析等資料加工業務,完成資料加工後將重要的結果資料同步到備份叢集,備叢集可以分擔主叢集對外業務查詢服務,降低主叢集讀寫對系統資源的爭搶壓力。

資料的同步過程基於叢集間同步工具(RSyncTools )實現。 RSyncTools 同步工具提供了資料同步需要的最核心的功能及異常處理,各功能點具有低耦合性,使應用程式能夠靈活的呼叫介面,實現同城災備或者異地災備。

非同步雙活同步示意圖如下:

 

(1) 同城或異地的兩個機房中,分別搭建同等規模、同樣資料分佈的 GBase 8a 叢集;

(2) 業務應用連線主叢集(上圖中機房 1 中的叢集)進行批量作業的執行;

(3) 叢集間資料同步採用指令碼定時排程的方式或由應用排程程式排程的方式進行排程執行;

上圖所示為應用排程程式在完成一個作業執行後,立即進行該作業涉及結果表的同步;

指令碼定時排程的方式如每天凌晨5 點,在完成日跑批後,由定時任務調起資料同步任務;

(4) 資料同步通過執行 RSyncTools 工具完成, RSyncTools 同步工具按表進行同步,提供同步功能呼叫介面,主要傳遞引數為同步庫名錶名、主叢集管理節點 IP 地址、備叢集管理節點 IP 等引數。 RsyncTools 根據傳入的庫名錶名連線主備叢集,查詢同步表後設資料資訊,如發現後設資料資訊差異則進行資料檔案同步的差量同步。同步過程採用主備叢集節點對節點的並行方式進行,同步的資料檔案為壓縮態的資料儲存檔案。

叢集間同步工具具有如下特性:

  • 具備表級粒度增量資料同步能力,支援使用者自定義同步任務,可定義優先順序優先同步重要的表資料。

  • 具備原子性的特性,即如果一個表在資料同步過程中出現故障,叢集間同步工具能夠自動回滾,從而保障主備叢集的資料一致性。

  • 具備增量資料捕獲的特性,即自動識別變化資料並同步。

  • 具備高效資料同步特性,僅同步主副本資料,從副本資料由備份叢集內部同步實現;並且同步時直接使用壓縮態的二進位制檔案方式,可有效提升同步效率。

(5) 機房 2 中的備份叢集,可用於承擔只讀業務,實現讀寫分離,即主叢集負責資料的批量統計分析運算,備叢集負責查詢響應。

GBase 8a 實時雙活叢集

GBase 8a 叢集 V9 版本支援虛擬叢集,在虛擬叢集中將兩個同樣規模和資料分佈策略的子叢集之間建立映象關係,就稱為映象叢集。顧名思義,兩個映象叢集中的表和資料是一致的。

映象叢集實現了計算叢集的實時雙活,可以支援同城的實時雙活場景。雙活示意圖如下:

 

(1) GBase 8a V9 虛擬叢集的兩個同樣規模和配置子叢集之間,建立映象關係,映象關係可以按表進行建立,也可以按照資料庫進行建立;

(2) 虛擬叢集中互為映象的兩個子叢集可以部署在同機房內,也可以部署在同城的不同機房內,對兩個子叢集之間的網路質量和網路頻寬有一定要求;當兩個子叢集位於不同機房時,就形成了同城異地的災備;在同城異地部署中,可以在備份機房中部署 1 coordinator 節點,實現管理叢集的資料災備;

(3) 業務直接連線其中的一個子叢集進行操作,下發 DDL DML DQL SQL 語句,對於 DDL ,將同時下發到互為映象的兩個叢集中執行;對於 DML DQL 操作則直接下發到當前應用的預設子叢集中執行, DML 的執行結果採用鏈式轉發方式傳輸到另一個子叢集中;映象叢集中的資料修改操作,需要在兩個子叢集中統一提交後才返回執行結果給使用者;

(4) 如果計算叢集 發生故障,通過修改業務的預設子叢集,即可完成叢集業務切換,如上圖中的 VC1 叢集和 VC2 叢集為映象叢集關係,業務預設直接在 VC1 上執行,當 VC1 發生整體故障後,修改業務預設連線 VC2 即可實現業務在 VC2 上執行;

(5) 如果管理叢集在主機房中的所有節點傳送故障,需要人工修改叢集管理節點的配置為備份機房中的管理節點為管理叢集的唯一節點後,業務就可通過備份機房中的管理節點下發 SQL 任務。

GBase 8a 兩地三中心災備方案

對容災備份要求更高的場景,可以結合GBase 8a 叢集的非同步雙活、實時雙活,增加資料備份的保障。如在已經建立了非同步雙活叢集的環境下,每天在進行主備叢集同步的同時,在主叢集上進行資料的週期備份,如每週進行一次全備份,每天進行一次增量備份。此外,還可以結合 GBase 8a 叢集的非同步雙活和實時雙活,形成兩地三中心的災備方案,如下:

 

主資料中心通過虛擬叢集的映象技術實現了同一個資料中心內兩個虛擬子叢集間實時同步的強一致雙活;

備資料中心和主資料中心間通過叢集間同步工具實現了非同步方式資料同步的準實時的雙活容災。

GBase 8a 非同步雙活叢集與實時雙活叢集的差異

GBase 8a 叢集非同步雙活和實時雙活有如下差異:

 

 

(感興趣的可以關注我們公眾號:GBASE)


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69979120/viewspace-2848772/,如需轉載,請註明出處,否則將追究法律責任。

相關文章