更新时间:2023-03-17 GMT+08:00

备份恢复简介

概述

FusionInsight Manager提供对集群内的用户数据及系统数据的备份恢复能力,备份功能按组件提供。系统支持备份Manager的数据、组件元数据及业务数据。

备份功能支持将数据备份至本地磁盘(LocalDir)、本端HDFS(LocalHDFS)、远端HDFS(RemoteHDFS)、NAS(NFS/CIFS)、SFTP服务器(SFTP)、OBS,具体操作请参考备份数据

对于支持多服务的组件,支持同服务多个实例的备份恢复功能且备份恢复操作与自身服务实例一致。

MRS 3.1.0及之后版本才支持备份数据到OBS。

备份恢复任务的使用场景如下:

  • 用于日常备份,确保系统及组件的数据安全。
  • 当系统故障导致无法工作时,使用已备份的数据完成恢复操作。
  • 当主集群完全故障,需要创建一个与主集群完全相同的镜像集群,可以使用已备份的数据完成恢复操作。
表1 根据业务需要备份Manager配置数据

备份类型

备份内容

备份目录类型

OMS

默认备份集群管理系统中的数据库数据(不包含告警数据)以及配置数据。

  • LocalDir
  • LocalHDFS
  • RemoteHDFS
  • NFS
  • CIFS
  • SFTP
  • OBS
表2 根据业务需要备份组件元数据或其他数据

备份类型

备份内容

备份目录类型

DBService

备份DBService管理的组件(Loader、Hive、Spark、Oozie、Hue)的元数据。对于安装了多服务的集群,包含多个Hive和Spark服务实例的元数据。

  • LocalDir
  • LocalHDFS
  • RemoteHDFS
  • NFS
  • CIFS
  • SFTP
  • OBS

Kafka

Kafka的元数据。

  • LocalDir
  • LocalHDFS
  • RemoteHDFS
  • NFS
  • CIFS
  • OBS

NameNode

备份HDFS元数据。添加多个NameService后,支持不同NameService的备份恢复功能且备份恢复操作与默认实例“hacluster”一致。

  • LocalDir
  • RemoteHDFS
  • NFS
  • CIFS
  • SFTP
  • OBS

Yarn

备份Yarn服务资源池相关信息。

HBase

HBase系统表的tableinfo文件和数据文件。

表3 根据业务需要备份特定组件业务数据

备份类型

备份内容

备份目录类型

HBase

备份表级别的用户数据。对于安装了多服务的集群,支持多个HBase服务实例的备份恢复功能且备份恢复操作与HBase服务实例一致。

  • RemoteHDFS
  • NFS
  • CIFS
  • SFTP

HDFS

备份用户业务对应的目录或文件。

说明:

加密目录不支持备份恢复。

Hive

备份表级别的用户数据。对于安装了多服务的集群,支持多个Hive服务实例的备份恢复功能且备份恢复操作与Hive服务实例一致。

需要特别说明的是,部分组件不提供单独的数据备份与恢复功能:

  • Kafka支持副本特性,在创建主题时可指定多个副本来备份数据。
  • Mapreduce和Yarn的数据存放在HDFS上,故其依赖HDFS提供备份与恢复即可。
  • ZooKeeper中存储的业务数据,其备份恢复能力由各上层组件按需独立实现。

原理

任务

在进行备份恢复之前,需要先创建备份恢复任务,并指定任务的参数,例如任务名称、备份数据源和备份文件保存的目录类型等等。通过执行备份恢复任务,用户可完成数据的备份恢复需求。在使用Manager执行恢复HDFS、HBase、Hive和NameNode数据时,无法访问集群。

每个备份任务可同时备份不同的数据源,每个数据源将生成独立的备份文件,每次备份的所有备份文件组成一个备份文件集,可用于恢复任务。备份任务支持将备份文件保存在Linux本地磁盘、本集群HDFS与备集群HDFS中。

备份任务提供全量备份或增量备份的策略,云数据备份任务不支持增量备份策略。如果备份的路径类型是NFS或CIFS,不建议使用增量备份功能。因为在NFS或CIFS备份时使用增量备份时,每次增量备份都会刷新最近一次全量备份的备份数据,所以不会产生新的恢复点。

任务运行规则:

  • 某个任务已经处于执行状态,则当前任务无法重复执行,其他任务也无法启动。
  • 周期任务自动执行时,距离该任务上次执行的时间间隔需要在120秒以上,否则任务推迟到下个周期启动。手动启动任务无时间间隔限制。
  • 周期任务自动执行时,当前时间不得晚于任务开始时间120秒以上,否则任务推迟到下个周期启动。
  • 周期任务锁定时无法自动执行,需要手动解锁。
  • OMS、DBService、Kafka和NameNode备份任务开始执行前,若主管理节点“LocalBackup”分区可用空间小于20GB,则无法开始执行。

管理员在规划备份恢复任务时,请严格根据业务逻辑、数据存储结构、数据库或表关联关系,选择需要备份或者恢复的数据。系统默认创建间隔为1小时的周期备份任务“default-oms”、“default-集群ID”,支持全量备份OMS及集群的DBService、NameNode等元数据到本地磁盘。

快照

系统通过快照技术,快速备份数据。快照包含HBase快照、HDFS快照快照。

  • HBase快照

    HBase快照是HBase表在特定时间的一个备份,该备份文件不复制业务数据,不影响RegionServer。HBase快照主要复制表的元数据,包含table descriptor,region info和HFile的引用信息。通过这些元数据信息可以恢复快照时间点之前的数据。

  • HDFS快照

    HDFS快照是HDFS文件系统在特定时间点的只读备份副本,主要用于数据备份、用户误操作保护和灾难恢复的场景。

    任意HDFS目录均可以配置启用快照功能并创建对应的快照文件,为目录创建快照前系统会自动启用此目录的快照功能。创建快照不会对正常的HDFS操作有任何影响。每个HDFS目录最多可创建65536个快照。

    如果一个HDFS目录已创建快照,那么在快照完全删除以前,此目录无法删除或修改名称。该目录的上级目录或子目录也无法再创建快照。

DistCp

DistCp(distributed copy)是一个用于在本集群HDFS中或不同集群HDFS间进行大量数据复制的工具。在HBase、HDFS或Hive元数据的备份恢复任务中,如果选择将数据备份在备集群HDFS中,系统将调用DistCp完成操作。主备集群请选择安装相同版本的MRS软件版本并安装集群系统。

DistCp使用Mapreduce来影响数据的分布、异常处理及恢复和报告,此工具会把指定列表中包含的多个源文件和目录输入不同的Map任务,每个Map任务将复制列表中指定文件对应分区的数据。

使用DistCp在两个集群的HDFS间进行数据复制,集群双方需要分别配置互信(同一个FusionInsight Manager管理下的集群不需要配置互信)和启用集群间拷贝功能。集群数据备份到另一个集群的HDFS时,需要安装Yarn组件,否则备份失败。

本地快速恢复

使用DistCp将本集群HBase、HDFS和Hive数据备份在备集群HDFS中以后,本集群HDFS保留了备份数据的快照。用户可以通过创建本地快速恢复任务,直接从本集群HDFS的快照文件中恢复数据。

NAS

NAS(Network Attached Storage)是一种特殊的专用数据存储服务器,包括存储器件和内嵌系统软件,可提供跨平台文件共享功能。利用NFS(支持NFSv3、NFSv4)和CIFS(支持SMBv2、SMBv3)协议,用户可以连通MRS的业务平面与NAS服务器,将数据备份至NAS或从NAS恢复数据。

  • 数据备份至NAS前,系统会自动将NAS共享地址挂载为本地分区。在备份结束后,系统会卸载NAS共享分区。
  • 为防止备份恢复失败,数据备份及恢复期间,请勿访问NAS服务器挂载至本地的共享地址,如:“/srv/BigData/LocalBackup/nas”。
  • 业务数据备份至NAS时,会使用DistCp。

规格

表4 备份恢复特性规格

项目

参数

备份或恢复任务最大数量(个)

100

同一集群同时运行的任务数量(个)

1

等待运行的任务最大数量(个)

199

Linux本地磁盘最大备份文件大小(GB)

600

若业务数据存储在Zookeeper中的上层组件,在备份恢复这类数据时,需确保单个备份或恢复任务的znode数量不会过大,否则会造成任务失败,并影响Zookeeper的服务性能。可通过如下方法确认单个备份或恢复任务的znode数量:

  • 单个备份或恢复任务的znode数量要少于操作系统的文件句柄限制。查看句柄限制的方式如下:
    1. 使用shell命令输入:cat /proc/sys/fs/file-max,用于查看系统级的最大限制。
    2. 使用shell命令输入:ulimit -n,用于查看用户级的限制。
  • 对于父目录的znode数量超过上述限制的情形,可以通过其子目录进行批量备份与恢复。使用Zookeeper提供的客户端脚本查看znode数量的方式:
    1. 在FusionInsight Manager首页,选择“集群 > 待操作集群的名称 > 服务 > Zookeeper > 实例”,查看Zookeeper各角色的管理IP。
    2. 登录客户端所在节点,执行如下命令:

      zkCli.sh -server ip:port,其中ip可以为任意管理IP,port默认值是2181。

    3. 当看到如下输出信息时,表示已经成功连接上Zookeeper服务器。
      WatchedEvent state:SyncConnected type:None path:null
      [zk: ip:port(CONNECIED) 0]
    4. 使用getusage命令查看待备份目录的znode数量,例如:

      getusage /hbase/region,输出结果中"Node count=xxxxxx"即表示region目录下存储的znode数量。

表5 “default”任务规格

项目

OMS

HBase

Kafka

DBService

NameNode

备份周期

1小时

最大备份数

168个(7天历史数据)

24个(1天历史数据)

单个备份文件最大大小

10MB

10 MB

512MB

100MB

20GB

最大占用磁盘大小

1.64GB

1.64 GB

84GB

16.41GB

480GB

备份数据保存位置

主备管理节点“数据存放路径/LocalBackup/”

  • 默认任务保存的备份数据,请管理员根据企业运维要求,定期转移并保存到集群外部。
  • 管理员可直接创建DistCp备份任务将OMS、DBService和NameNode等的数据保存到外部集群。
  • 集群数据的备份任务运行时长可根据要备份的数据量除以集群与备份设备之间的网络带宽来计算得出,在实际场景中,建议将计算得出的时常乘以1.5作为任务执行时长参考值。
  • 执行数据备份任务会对集群的最大IO性能产生影响,建议备份任务运行时间与集群业务高峰错开。