写点什么

GaussDB(DWS):非侵入式备份及其在 NBU 上的应用

发布于: 2021 年 03 月 01 日

摘要: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。


点击关注,第一时间了解华为云新鲜技术~


发布于: 2021 年 03 月 01 日阅读数: 14
用户头像

提供全面深入的云计算技术干货 2020.07.14 加入

华为云开发者社区,提供全面深入的云计算前景分析、丰富的技术干货、程序样例,分享华为云前沿资讯动态,方便开发者快速成长与发展,欢迎提问、互动,多方位了解云计算! 传送门:https://bbs.huaweicloud.com/

评论

发布
暂无评论
GaussDB(DWS):非侵入式备份及其在NBU上的应用