GBase新聞
GBase 8a集群雙活容災方案
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集群異步雙活和實時雙活有如下差異: