摘要:Netbackup软件必须要有该集群所反对的OS的安装包,一种新的非侵入式备份架构跃然纸上。

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。

接下来就能够创立快照了:

创立快照胜利后,前期即可应用该快照来复原集群。

本文分享自华为云社区《非侵入式备份及其在NBU上的利用》,原文作者:dws。

点击关注,第一工夫理解华为云陈腐技术~