大數據“復活”記
996
2025-03-31
1. 通用的備份方案介紹
除Netbackup深度定制的廠商外,通常數據庫廠商都按XBSA接口來實現NBU備份。首先在集群內每個節點安裝NBU客戶端,通過XBSA發命令至本地NBU客戶端,然后NBU客戶端與遠端服務器上的NBU服務端程序通信,將數據寫入掛載于遠端的磁帶或磁盤設備。早期的GaussDB(DWS)便是采用如此方式,應用于線下場景。下圖展示了這個備份架構原理。
如上圖,GaussDB的備份工具Roach,在每個節點都啟動一至多個Roach agent進程,用于讀取本節點的GaussDB數據,并將其存入緩存buffer。然后調用XBSA接口,將緩存數據轉發給NBU處理。
不難看出,該架構的特點就是Netbackup第三方軟件需要侵入式部署到我們的集群內,備份進程也要使用安裝NBU Client時一起提供的libxbsa64.so動態庫才能使用XBSA接口。這樣就隱含了一個前提:Netbackup軟件必須要有該集群所支持的OS的安裝包。但是,云上環境基本都是歐拉OS,或者鯤鵬服務器,目前針對這些系統并沒有Netbackup軟件的安裝包,這個前提變得不可獲得。更進一步,適配更多第三方廠商的備份協議時,當前架構就要求第三方廠商必須支持歐拉OS、鯤鵬等版本,增加了各種組合的復雜性,不利于生態拓展。于是一種新的非侵入式備份架構呼之欲出。
2. 非侵入式備份架構介紹
非侵入式架構下,第三方廠商的客戶端軟件不部署在GaussDB集群內。同時,GaussDB開發一個新插件,部署于遠端備份服務器上,負責與集群內的Roach工具進行通信,于是架構變為下圖所示:
這里說的新插件就是Roach client組件,用戶使用前需要提前在備份服務器上部署該組件。和Roach工具一樣,該組件也不允許以root用戶部署,應當新建一個普通用戶,在該用戶下部署。
圖中NBU只是一種示例,其它第三方軟件對接時原理也是相同的。
展開一點來說,集群內每個節點都有Roach agent進程負責本節點一至多個DN實例的數據備份,該進程會根據DN個數fork出多個子進程,每個Roach agent子進程負責一個DN。備份出來的數據會轉發給遠端備份服務器的Roach client進程,該進程內部又會根據DN個數fork出多個子進程,每個子進程負責與一個DN(亦對應一個Roach agent)通信。這里不能創建為線程是因為XBSA本身限制,每個進程才能獨占一份NBU鏈接。即有如下映射關系圖:
從性能角度考慮,需要根據一定比例配備多個NBU media server服務器。比如GaussDB集群有200個節點,每4個DN對應一個備份盤或磁帶,每10個GaussDB節點配備一臺NBU media server,則共需20臺media服務器。示意圖如下:
3. 云上非侵入式NBU備份的使用
用戶可通過DWS管控面發起NBU備份操作,發起之前需按照非侵入式方式提前部署好NBU環境和Roach client組件。
首先,可在插件下載界面提前down下來Roach client組件包(OS版本需要與NBU media server的系統相同):
然后配置快照策略,圖中的備份服務器即是NBU media server。
接下來就可以創建快照了:
創建快照成功后,后期即可使用該快照來恢復集群。
EI企業智能 云容災 備份與歸檔 數據倉庫服務 GaussDB(DWS)
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。