GaussDB对接NBU备份环境配置指南

网友投稿 1716 2022-05-28

概述

业界一种主流的备份存储管理软件是NetBackup(本文简称NBU),其优势是可以将备份文件存储到磁带介质上。

目前NetBackup软件提供了两种备份方式:

1)  从NetBackup软件界面进行操作,选择要备份或恢复的文件,或者使用其对应的命令行工具bpbackup;

2)  以GaussDB为代表的数据库,采用NetBackup软件提供的libxbsa64.so动态库(实现了标准的XBSA系列接口),将本地数据传送到NBU服务器,然后由NBU服务器负责落盘到磁带介质上。GaussDB的专用备份工具Roach,负责调用libxbsa64.so库将本地数据库文件备份到远端NBU服务器。

本文简要描述了华为GaussDB数据库和NetBackup对接进行备份、恢复的配置方法与注意事项。

1. GaussDB备份到NBU的部署介绍

1.1 NBU备份GaussDB的部署架构

GaussDB数据库提供了专门的备份恢复工具Roach,该工具与NBU交互,完成GaussDB数据库文件备份到NBU的过程。线下场景下,整个备份恢复流程由Roach工具或FusionInsight等封装了Roach命令行调用的界面软件及脚本发起。后续线上场景下将从DWS管控面发起,目前从管控面仅支持了OBS备份,正在集成NBU备份功能。

图1-1 NBU备份GaussDB的部署图

如上图所示,数据库集群中每个节点的Roach进程读取本节点GaussDB数据库文件,通过XBSA接口发送给NBU服务器,NBU Master Server控制各个NBU Client收发数据,数据最终到达NBU Media Server指定的磁盘或磁带存储介质。集群恢复时亦然,只不过数据流向与上图相反。

本图示例了最典型的NBU部署方式。实际使用中,NBU Master Server和NBU Media Server可能合布在同一台机器,NBU Server和其中一个NBU Client也可能合布在同一台机器。NBU Master Server和NBU Media Server可能有多台,分组管理部分NBU Client。也可能多个Server组成Clustered Master Server(高版本NetBackup支持)来增强NBU服务器侧的高可用性。

1.2 与NetBackup软件的配套情况

因Roach工具只是调用NetBackup提供的XBSA标准接口库,与NetBackup软件并无耦合,因此从原理上讲,GaussDB数据库可以通过Roach工具无缝对接到任何版本的NetBackup,只需正确配置NBU相关环境。

目前业界常用的NetBackup软件版本有:

l  NetBackup 7.5

l  NetBackup 7.6

l  NetBackup 7.7

l  NetBackup 8.1

l  NetBackup 8.2

当前GaussDB和NetBackup可同时支持的操作系统平台情况如下(具体能支持的OS小版本号以GaussDB产品文档为准):

l  Suse11~Suse12

l  Redhat7/CentOS x86

l  不支持ARM和Euler系统,因NetBackup尚无对应安装包

本文将以NetBackup 7.5版本为例,来介绍GaussDB备份恢复相关的NBU配置。

2. NBU环境配置流程与注意事项

2.1 安装NBU Server软件

NetBackup软件的安装请详细参考NetBackup官方文档,不在本文描述范围内。为了示例方便,本文仅简要说明这个过程。

本文意在说明NBU配置注意事项,因此仅采用最简单的配置部署方式作为示例,并简要描述这种部署方式下的NBU安装过程。

本文中,假设GaussDB数据库集群共有3个机器,hostname分别为plat1、plat2、plat3,采用单一的NBU Master Server和NBU Media Server,且Mater Server与Media Server合布在一台机器,选择plat3部署NBU Server,即该节点既做为NBU Server又做为NBU Client。本文只演示NBU存储介质为磁盘的方式,磁带没有特殊的区别,只要按NBU官方文档正确配置即可。

整个安装过程都要使用root用户。具体步骤如下:

步骤 1      用root登录待安装NBU Master Server的机器,本文为plat3。

解压NBU Server安装包后,切换到安装目录,以root用户执行解压后的install脚本:

./install

图2-1 安装NBU Server

安装NBU Server的机器应选择具有X11图形化环境的机器,否则安装后无法启动java界面从而无法配置NBU环境。

步骤 2      按向导完成整个NBU Server的安装过程。

安装过程中,有多个交互式选择的地方,可参考如下输入:

1)Do you   wish to continue? (y/n) (y) (回车默认)

2)Participate   in the NetBackup Product Improvement Program? (y/n) (y) (回车默认)

3)Do you   want to install NetBackup and Media Manager files? [y,n] (y) (回车默认)

4)Is it OK   to install in /usr/openv? [y,n] (y) (回车默认)

5)Enter   license key: 输入软件许可证编号

6)Do you   want to add additional license keys now? [y,n] (y) n

7)Would you   like to use "plat3" as the configured NetBackup server name of this   machine? [y,n] (y) (回车默认)

8)Is plat3   the master server? [y,n] (y) (回车默认)

9)Do you   want to add any media servers now? [y,n] (n) (回车默认)

10)Enter the   Enterprise Media Manager server (default: plat3):(回车默认)

11)Do you   want to start the job-related NetBackup daemons so backups and restores can   be initiated? [y,n] (y) (回车默认)

12)Enter the   OpsCenter server (default: NONE):(回车默认)

注:如上斜体的plat3为Master Serve节点的hostname。

至此,plat3上就安装了NBU Master Server和NBU Media Server,同时默认安装了NBU Client。

其它节点上尚未安装NBU Client,稍后的章节会单独进行安装。

步骤 3      查看bp.conf文件。

查看NBU生成的/usr/openv/netbackup/bp.conf配置文件,里面CLIENT_NAME字段取值初始值应该为本机hostname。

该文件截图前半部分如下:

图2-2 NBU Server端的bp.conf文件

----结束

2.2 配置NBU备份环境

本节描述NBU备份策略、存储、界面勾选项、配置文件修改相关事宜。

步骤 1      登录NBU Master Server机器,在/etc/hosts中配置IP/hostname映射信息。

需要在Master Server的/etc/hosts中配置Media Server以及所有NBU Client的IP/hostname映射信息。

步骤 2      登录NBU Media Server机器,在/etc/hosts中配置IP/hostname映射信息。

同理,需要在Media Server的/etc/hosts中配置Master Server以及所有NBU Client的IP/hostname映射信息。

步骤 3      登录每个NBU Client机器,在/etc/hosts中配置IP/hostname映射信息。

需要在每个NBU Client的/etc/hosts中配置所有Master Server以及Media Server的IP/hostname映射信息。

以上几步如果遗漏,会导致NBU备份出现通信问题。每次新增NBU Client或Server,都要重新执行如上三步。

步骤 4      登录NBU Master Server机器,启动NBU管理界面。

用root登录NBU Master Server,执行如下命令:

cd /usr/openv/java/

./jnbSA

在弹出的java界面上,输入Master Server的root密码并点击登录,就可以进入NBU配置管理界面。

图2-3 启动NBU管理界面

NBU Client机器也可以启动NBU界面,只要X11环境OK的话。

步骤 5      配置存储单元(Storage Unit)。

本节仅描述存储介质为磁盘的方式。

选择左侧Storage菜单,并点击New Storage Unit按钮,新建一个存储单元。

图2-4 新建存储单元

在弹出的新建页面,填写存储单元名字,并在Absolute pathname to directory填写备份文件在服务器的哪个磁盘路径下存储。

本文配置的是单一NBU Server,且是单一存储单元,因此GaussDB集群中所有节点的备份文件都会集中存储到plat3这台Media Server的该路径下。

如果配置的是Storage Unit Group,则可以分组存储在该服务器的多个路径下。

此处我们的存储介质是Disk,存储类型应选择BasicDisk。

图2-5 配置存储单元

在上图中,应调大Maximum concurrent jobs的取值,建议至少高于数据库集群中节点个数,否则其它节点就会排队等待。

理想情况下,该取值为集群中节点数乘以单个节点的主DN数,或者更高一些(考虑到CN和从备DN也需要占用并发资源)。

如果上图中指定的存储单元路径位于系统盘上,则必须勾选图中的复选框,否则备份第一个对象时就会创建对象失败。

This directory can exist on the root file system or system disk是说允许备份文件存放到根文件系统或系统盘上。

例如,本文中指定了/opt下面的子目录作为存储目录,属于系统盘路径,所以必须勾选该复选框。

步骤 6      配置NBU策略(NBU Policy)。

选择左侧Policies菜单,点击Add new policy按钮,新建一个NBU策略。

图2-6 新建NBU策略

在弹出的对话框中输入NBU Policy的名字,比如nbu_policy。

在新的NBU策略配置页面中,Policy类型选择为DataStore,Policy存储选择为上一步新建的Storage Unit名称。

另外,右侧Active Go into effect at的时间应早于第一次备份发起时间。通常来说,默认是新建该Policy的时间且该复选框处于勾选状态,

因此都是满足条件的。

图2-7 配置NBU策略

如果存储介质是磁带,则上图Policy storage需要选择为我们自己的磁带库名称,比如xxx-robot-tld-0。

同时,Policy volume pool选择为已安装磁带库的Volume pool,后者可以从NBU配置主界面左侧的Media->Volume Pools列表中查到。

上图中Policy storage需要选择为我们自己新建的存储单元或磁带库名称,如果不选择会导致备份失败。

步骤 7      配置NBU客户端。

需要将所有NBU Client机器都加入到如下NBU客户端列表中。

选择左侧Policies菜单,双击我们自己的NBU Policy名称nbu_policy,

图2-8 更改NBU策略配置

进入NBU策略配置界面(与上一步界面相同),点击Clients标签页,点击标签页下方的New按钮,在弹出的Add Client对话框中逐个添加所有的NBU Client。对话框中Client name输入各个NBU Client的hostname,操作系统下拉框中选择最接近的系统选项,注意不要选错,否则客户端安装会失败,或安装后功能不正确。

图2-9 添加NBU客户端

注意:NBU客户端清单中的Client name非常重要,填写为hostname还是IP效果都不一样,可能导致备份或恢复失败。

----结束

2.3 安装NBU Client软件

NetBackup提供了专门的工具脚本install_client_files,用于批量化安装NBU Client。所有的操作都只需在NBU Server上执行。

该脚本有两种常用方法:

1)      安装单个NBU Client:

install_client_files ssh hostname

后面斜体的参数是待安装Client机器的hostname。

NBU Server节点不需要单独安装NBU Client,安装Server时就自动安装过了。

2)      安装所有NBU Client:

install_client_files ssh ALL

此处ALL必须是大写。

步骤 1      登录NBU Master Server命令行,安装所有NBU Client。

用root执行如下命令,可以一次性远程安装好所有机器的NBU Client软件。

cd /usr/openv/netbackup/bin

./install_client_files  ssh ALL

步骤 2      登录各个NBU Client机器,检查各客户端的bp.conf文件。

如果上述两种方法都无法成功安装,可尝试将NBU Client安装包拷贝到对应的客户端机器,解压后执行其中的install脚本单独安装。

图2-10 NBU Client端的bp.conf文件

此处bp.conf里面的CLIENT_NAME比较关键,应该与NBU Policy界面的NBU Client列表中的Client Name相同。

----结束

2.4 调整NBU配置

为了取得较佳的性能效果,需要配置合适的NBU参数。最常见的是NBU Server端的最大并发数和最大超时时间。

特别是客户端个数上百时就很有必要,本文只有3个客户端,因此取值相对较小。

步骤 1      调整Master Server端最大并发数。

选择左侧Host Properties -> Master Servers,鼠标右键点击Master Server的hostname,点击Properties菜单项。

图2-11 配置Master Server的属性

在弹出的Master Server属性页面中,切换到Global Attributes标签页,将Maximum jobs per client调整为6。

该取值决定了每个NBU Client上可以并发执行的任务数,最小应高于集群中单个节点的主DN个数,过小可能导致排队现象。

根据NBU官方文档说明,每个Master Server上,每1秒只能发起一个NBU job,其余job只能排队。

同时,每个NBU Client上,每1秒也只能发起一个NBU job。

从NetBackup 8.2开始,Master Server取消了这个限制,每1秒可以并发发起多个不同NBU Client对应的job,

这对于节点数很多且数据量很大的数据库集群可以大幅提升性能;但NBU Client的限制仍然存在。

该限制主要作用于XBSA接口的BSACreateObject(),每调用一次该接口就需耗费1s(但同一个对象的分片不会再次建连)。

图2-12 调整Server端并发任务数

步骤 2      调整Master Server端最大超时时间。

在Master Server的属性页,切换到Timeouts标签页,将Client connect timeout、Client read timeout、Media server connect timeout都调整到300s以上。

图2-13 配置Master Server的最大超时时间

步骤 3      调整Media Server端最大超时时间。

同Master Server一样,在左侧Host Properties菜单下,选择Media Servers,并打开其属性页面。

图2-14 配置Media Server的属性

在Media Server的属性页,切换到Timeouts标签页,同样调整Client connect timeout、Client read timeout、Media server connect timeout到300s以上。

图2-15 配置Media Server的最大超时时间

----结束

3. NBU配置导致的常见备份问题

3.1 问题排查手段

本节列出一些NBU备份恢复失败相关的常用排查方法,用于辅助NetBackup官方文档和网站提供的定位方法。

步骤 1      查看NBU管理界面的Activity Monitor。

登录NBU Master Server,打开NBU管理界面,点击左侧Activity Monitor,在备份和恢复过程中就可以看到每个job的详细进展。

图3-1 NBU的Activity Monitor界面

出现问题时,双击右侧失败的job,可以查看详细的执行信息,从中获取失败的原因。

该方法是最直接的NBU交互问题定位手段。

图3-2 查看NBU job的详细执行信息

根据上面报出的错误码和错误信息,结合NBU官网和产品文档,就可以大致判断出问题方向。

步骤 2      查看NBU日志。

默认情况下,NBU日志是关闭的,需要根据错误信息,打开对应的NBU组件的debug级别日志,重新复现问题,结合NBU官方文档分析日志。

左侧Host Properties下面可以分别设置Master Servers/Media Servers/NBU Clients的日志级别。

其中NBU客户端的日志选择比较简单,从0改为5就可以打印最详细的日志。

图3-3 NBU Client的日志级别设置

对于NBU Server来说,建议选择相干的NBU组件即可。

比如bpbrm是NBU备份恢复管理模块(NetBackup backup and restore manager),

而bptm是NBU磁带管理模块(NetBackup tape manager)。

图3-4 Media Server的日志级别设置

步骤 3      查看GaussDB备份恢复日志。

可以结合GaussDB备份恢复工具Roach的日志进行分析,日志位于$GAUSSLOG/roach下面。

步骤 4      使用虚拟磁带库VTL模拟磁带问题。

因磁带机比较昂贵,遇到磁带特有的问题,可以采用虚拟磁带库来模拟复现。

VTL(Virtual Tape Library)可以模拟各种磁带类型,配置和安装方法在此不做描述。需要配合专门的硬件(HBA卡)使用。

步骤 5      从后台命令行执行备份恢复,或验证NBU单表备份恢复。

可以用集群管理员用户从后台命令行登录集群节点,用GaussDB的GaussRoach.py脚本发起备份恢复操作,来对比验证问题。

具体使用方法参见GaussDB产品手册,此处不再描述。

同时,还可以减少数据量,尝试单表粒度的备份恢复,来快速排查NBU环境配置问题。进行NBU单表备份恢复的优点是对用户影响较小、耗时较短。

步骤 6      排查常见的配置文件问题。

主要包括Master Server、Media Server、NBU Client上的/etc/hosts及/usr/openv/netbackup/bp.conf文件。

步骤 7      排查常见的网络配置问题。

主要包括NBU管理界面的Master Server和Media Server各种超时时间,以及防火墙设置。

步骤 8      结合XBSA常见错误码列表进行分析。

如果是XBSA接口访问报错,Roach日志和NBU日志中通常都会打印相应错误码。

图3-5 XBSA常见错误码参考

详细可参考:

http://www.iiug.org/onbar/debug.html#xbsarc

3.2 找不到客户端hostname导致NBU备份恢复失败

GaussDB对接NBU备份环境配置指南

【主要现象】从NBU Activity Monitor失败任务的详细信息界面,以及NBU日志文件/usr/openv/netbackup/logs/user_ops/dbext/logs下的日志中有“client hostname could not be found (48)”报错语句。

【原因分析】可能是NBU Master Server和Media Server的/etc/hosts中没有全部加入所有NBU Client的IP/hostname映射。参考:

https://www.veritas.com/content/support/en_US/article.100016804

http://systemmanager.ru/nbadmin.en/nbu_48.htm

3.3 正确配置/etc/hosts后磁盘成功而磁带失败

【主要现象】出现找不到客户端hostname报错后,正确配置了Master Server和Media Server的/etc/hosts,但执行NBU备份磁盘可以成功,而磁带高概率失败。

【原因分析】可能是NBU host缓存导致,每次修改/etc/hosts后,建议立即清理缓存。原因是NBU缓存了hostname到IP地址的映射,以便最大程度减少DNS查询,虽然修改了/etc/hosts等IP/hostname映射相关的配置,但NBU host缓存可能1小时以上才会刷新,未能立即生效。

清理方法是:用root登录NBU Media Server,执行如下命令:

cd /usr/openv/netbackup/bin

./bpclntcmd   -clear_host_cache

3.4 新添加的NBU Client备份报错

【主要现象】在数据库集群中新增几个节点并安装NBU Client后,集群备份报错。查看Roach工具日志,只有新添加的NBU节点才报错,其余节点都是由这几个节点报错导致出错。

【原因分析】可能是新增NBU Client机器后,没有在NBU Master Server和Media Server的/etc/hosts中添加所有NBU Client的IP/hostname映射关系。

3.5 新添加的NBU Client恢复报错

【主要现象】在数据库集群中新增几个节点并安装NBU Client后,正确配置了NBU Server中的/etc/hosts,集群备份成功,但恢复报错。查看Roach工具日志和NBU日志,提示在NBU服务器上找不到待恢复的文件,XBSA接口BSAQueryObject()失败,错误码0x11,即BSA_RC_NO_MATCH。

【原因分析】备份文件在NBU Server上存储时是以Client Name(通常是hostname)作为文件名前缀的,如果备份时使用的Client Name与恢复时不一致,就可能导致无法从服务器上匹配到对应的备份文件。此时应检查新添加的NBU Client上的bp.conf文件,其中的CLIENT_NAME取值应当与NBU管理界面上Policy页面Clients清单中的客户端Client Name相同。bp.conf的默认值来自安装NBU客户端时指定的名字,有可能新添加的NBU Client在安装时指定了IP作为客户端名称,造成不匹配。通常建议安装NBU Client时输入的Client Name,与bp.conf中的CLIENT_NAME字段,以及新建Policy时Clients清单中每个客户端的Client Name,以及Host Properties->Client->Client Properties->Client Name均保持一致,全都取hostname。如果不一致,bp.conf和Policy中的Client Name都可以手动修改。

图3-6 备份文件在Media Server上的存储形式

其中客户端属性页中的Client Name位置如下,其余的Client Name在前面章节都已说明:

图3-7 客户端属性页的Client Name

3.6 备份失败提示无法创建对象

【主要现象】集群备份失败,从Roach日志看到备份第一个对象就失败了,XBSA接口BSACreateObject()返回错误,无法在NBU服务器上创建备份对象。

【原因分析】可能是NBU存储单元相关配置错误。常见的两种情形:一是NBU Policy配置中的Policy storage未正确选择;

图3-8 Policy storage选择

另一种是使用系统盘作为存储路径,但Storage Unit中未勾选”This directory can exist on the root file system or system disk.”复选框。

图3-9 Storage Unit复选框勾选

3.7 恢复到新集群失败

【主要现象】使用Roach工具可以将NBU上的备份集恢复到一个与原集群完全同构的新集群上。如果条件都满足,且备份集的metadata都已就绪,恢复仍然失败,提示找不到hostname等相关错误。

【原因分析】可能是没有正确配置虚拟客户端名称。首先,恢复时使用的NBU Policy名称需要与备份时使用的保持一致。最后,需要在NBU Master Server上手动创建文件:/usr/openv/netbackup/db/altnames/No.Restrictions,从而NBU就可以知道是恢复到新的集群,自动完成虚拟客户端映射。

数据仓库服务 GaussDB(DWS) 数据库

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:LiteOS内核源码分析系列一 盘点那些重要的数据结构 (3)
下一篇:成功解决AttributeError: 'str' object has no attribute 'decode'
相关文章