摘要: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。
点击关注,第一工夫理解华为云陈腐技术~