GaussDB对接NBU备份环境配置指南
概述
业界一种主流的备份存储管理软件是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 |
安装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按钮,新建一个存储单元。
在弹出的新建页面,填写存储单元名字,并在Absolute pathname to directory填写备份文件在服务器的哪个磁盘路径下存储。
本文配置的是单一NBU Server,且是单一存储单元,因此GaussDB集群中所有节点的备份文件都会集中存储到plat3这台Media Server的该路径下。
如果配置的是Storage Unit Group,则可以分组存储在该服务器的多个路径下。
此处我们的存储介质是Disk,存储类型应选择BasicDisk。
在上图中,应调大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策略。
在弹出的对话框中输入NBU Policy的名字,比如nbu_policy。
在新的NBU策略配置页面中,Policy类型选择为DataStore,Policy存储选择为上一步新建的Storage Unit名称。
另外,右侧Active Go into effect at的时间应早于第一次备份发起时间。通常来说,默认是新建该Policy的时间且该复选框处于勾选状态,
因此都是满足条件的。
如果存储介质是磁带,则上图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菜单项。
在弹出的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,并打开其属性页面。
在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备份恢复失败
【主要现象】从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.6 备份失败提示无法创建对象
【主要现象】集群备份失败,从Roach日志看到备份第一个对象就失败了,XBSA接口BSACreateObject()返回错误,无法在NBU服务器上创建备份对象。
【原因分析】可能是NBU存储单元相关配置错误。常见的两种情形:一是NBU Policy配置中的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就可以知道是恢复到新的集群,自动完成虚拟客户端映射。
- 点赞
- 收藏
- 关注作者
评论(0)