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

举报
dws 发表于 2020/06/22 16:53:40 2020/06/22
【摘要】 本文主要介绍将GaussDB数据库集群备份到NBU服务器,以及用NBU服务器上的备份集来恢复GaussDB数据库集群时,配置NBU环境的一些注意事项。当前主要使用场景是线下环境,而针对线上环境GaussDB正在开发相应的特性使得也能够无缝对接NBU,所以对于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备份功能。

        image.png

        图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

                        image.png

                        图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。

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

                   image.png

                   图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配置管理界面。

                        image.png

                        图2-3 启动NBU管理界面

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

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

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

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

                       image.png

                       图2-4 新建存储单元

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

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

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

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

                       image.png

                       图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策略。

                image.png

                图2-6 新建NBU策略

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

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

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

                      因此都是满足条件的。

                      image.png

                图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,

               image.png

              图2-8 更改NBU策略配置               

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

             image.png

             图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脚本单独安装。

                                image.png

                          图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菜单项。

                    image.png

                    图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(但同一个对象的分片不会再次建连)。

                        image.png

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

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

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

                  image.png

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

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

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

                       image.png

                 图2-14 配置Media Server的属性

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

                 image.png

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

       ----结束

 

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

3.1 问题排查手段

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

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

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

                   image.png

                   图3-1 NBU的Activity Monitor界面

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

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

                        image.png

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

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

   步骤 2      查看NBU日志。

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

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

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

                  image.png

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

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

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

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

                        image.png

                        图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日志中通常都会打印相应错误码。

                  image.png

                  图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都可以手动修改。

        image.png

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

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

        image.png

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

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

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

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

        image.png

  图3-8 Policy storage选择

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

  image.png

  图3-9 Storage Unit复选框勾选

3.7 恢复到新集群失败

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

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

 

 


【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。