更新时间:2024-11-29 GMT+08:00

备份Elasticsearch业务数据

操作场景

为了确保Elasticsearch日常数据安全,或者系统管理员需要对Elasticsearch进行重大操作(如升级或迁移等),需要对Elasticsearch业务数据进行备份,从而保证系统在出现异常或未达到预期结果时可以及时进行数据恢复,将对业务的影响降到最低。

系统管理员可以通过FusionInsight Manager创建备份Elasticsearch任务并备份数据。支持创建任务自动或手动备份数据。

  • 快照创建时不会影响搜索查询,并且快照创建过程启动后,新的数据不会被记录到快照中,同一时刻只能有一份快照被创建。
  • 创建备份任务时只会显示集群中已经打开的索引作为备份对象供选择,对于关闭的索引不会显示在界面上,即对关闭的索引不做备份。
  • 创建备份任务时勾选的索引,如果在启动备份任务之前关闭了部分索引,则被关闭的索引不会进行备份,其他开启的索引正常备份。如果所有的索引都被关闭,则备份任务显示执行失败。
  • 因为Elasticsearch业务数据的备份需要通过EsNode1实例来调用snapshot接口,所以请保证集群中所有EsNode1实例的健康状态为良好,可以正常接收请求。为了保证备份成功,请不要操作像扩容、减容、停止或重启Elasticsearch实例、停止或重启Elasticsearch服务、停止或重启集群等操作。
  • 当集群中存在较大的数据需要备份时,请合理地分批次进行索引级别的数据备份,否则备份时间会较长。
  • 为了避免每次都全量备份大数量的数据,建议在索引建立时就建立相应的周期备份任务,此时会在第一次执行备份任务时进行全量备份,后续的周期备份任务会进行增量备份。
  • 当备份任务执行失败时,请登录目的端(RemoteHdfs和NFS)的备份路径目录(即创建备份到RemoteHdfs的任务时填写“目的端路径”的值,或备份到NFS时填写“服务器共享路径”的值),删除与备份任务名称相对应的子目录,即“备份任务名_数据源_任务创建时间”,以清理备份失败的数据。
  • 备份前请检查需要备份的索引是不是green状态,没有分片丢失,否则会备份失败。

前提条件

  • 如果数据要备份至远端HDFS中,需要准备一个用于备份数据的备集群,认证模式需要与主集群相同。其他备份方式不需要准备备集群。
  • 如果要备份到HDFS,需要安装HDFS,Yarn服务。若Elasticsearch为普通模式,则不支持备份业务数据到安全模式HDFS。
  • 如果要备份到NAS,需要安装HDFS服务。
  • 如果主集群部署为安全模式,且主备集群不是由同一个FusionInsight Manager管理,则必须配置系统互信,请参见配置跨Manager集群互信。如果主集群部署为普通模式,则不需要配置互信。
  • 主备集群上的时间必须一致,而且主备集群上的NTP服务必须使用同一个时间源。
  • 检查备集群HDFS和NAS服务端是否有充足的空间,备份文件保存的目录建议使用用户自定义的目录。
  • 当备份Elasticsearch业务数据到NAS(NFS)时,需要提前部署好NAS服务端,再进行如下操作。
    保证NAS服务正常启动并创建共享路径后,创建本地的仓库路径,并将本地的仓库路径挂载到NAS的共享路径。
    1. 创建NAS的共享路径,并修改属主和权限,例如共享路径为“/var/nfs”。
      • 创建路径:mkdir /var/nfs
      • 修改属主:chown 65534:65534 /var/nfs
      • 修改权限:chmod 777 /var/nfs
    2. 在每一台机器上,将本地的仓库路径挂载到NAS的共享路径,“ip”为NAS服务器的地址。

      挂载:mount ip:/var/nfs /数据存放路径/elasticsearch/nas

      例如:

      mount ip:/var/nfs /srv/BigData/elasticsearch/nas

操作步骤

  1. 在FusionInsight Manager,选择“运维 > 备份恢复 > 备份管理”。
  2. 单击“创建”。
  3. 在“任务名称”填写备份任务的名称。
  4. 在“备份对象”选择待操作的集群。
  5. 在“备份类型”选择备份任务的运行类型,“周期备份”表示按周期自动执行备份,“手动备份”表示由手工执行备份。

    创建周期备份任务,还需要填写以下参数:

    • “开始时间”:表示任务第一次启动的时间。
    • “周期”:表示任务下次启动,与上一次运行的时间间隔,支持按“小时”或按“天”。
    • “备份策略”:表示任务每次启动时备份的数据量。只支持“首次全量备份,后续增量备份”。

  6. 在“备份配置”,勾选“业务数据”下的“Elasticsearch > Elasticsearch”。
  7. 在“Elasticsearch”的“路径类型”,选择一个备份目录的类型。Elasticsearch不支持备份到使用RangerKMS加密的目录。

    备份目录支持以下类型:

    • “RemoteHDFS”:表示将备份文件保存在备集群的HDFS目录。
      选择此参数值,还需要配置以下参数:
      • “IP 模式”:目标IP的IP地址模式。系统会根据集群网络类型自动选择对应的IP模式,如IPv4或者IPv6。
      • “目的端Hadoop RPC加密模式”:选择目的端集群HDFS基础配置“hadoop.rpc.protection”参数值。
      • “目的端主NameNode IP地址”:填写目的端集群主NameNode业务平面IP地址。
      • “目的端备NameNode IP地址”:填写目的端集群备NameNode业务平面IP地址。
      • “目的端NameNode RPC端口”:填写目的端集群HDFS基础配置“dfs.namenode.rpc.port”参数值。
      • “目的端路径”:填写目的端集群保存备份数据的HDFS目录。不支持填写HDFS中的隐藏目录,例如快照或回收站目录;也不支持默认的系统目录。
    • “NFS”:表示将备份文件通过NFS协议保存在NAS中。
      选择此参数值,还需要配置以下参数:
      • “IP 模式”:目标IP的IP地址模式。系统会根据集群网络类型自动选择对应的IP模式,如IPv4或者IPv6。
      • “服务器IP地址”:填写NAS服务器IP地址。
      • “单个实例的备份速度(MB/s)”:填写数据备份时单个实例的速度大小,默认值为50MB/s。请根据实际备份数据量修改备份速度。
      • “单个实例的恢复速度(MB/s)”:填写数据恢复时单个实例的速度大小,默认值为50MB/s。请根据实际备份数据量修改恢复速度。
      • “服务器共享路径”:填写NAS服务器的共享目录。(服务器共享路径不能设置为根目录,且共享路径的用户组和属组必须为nobody:nobody)

  8. Elasticsearch未使用“最大恢复点个数”参数,此参数可以填写1~1000范围内的任意值。
  9. 在“备份内容”中,选择一个或多个需要备份的index。

    支持两种方式选择备份数据:

    • 添加备份数据文件
      1. 单击“添加”。
      2. 在“文件目录”框内选择要备份的表,单击“添加”添加到“备份文件”框内。
      3. 单击“确定”添加备份数据文件。
    • 正则表达式筛选
      1. 单击“正则表达式输入”。
      2. 在第二个输入框输入正则表达式,支持标准正则表达式。例如要筛选包含“es”的索引,请输入“.*es.*”。例如要筛选以“es”开头的索引,请输入“es.*”。例如要输入以“es”结尾的索引,请输入“.*es”。
      3. 单击“刷新”,在“目录名称”查看筛选的表。
      4. 单击“同步”保存筛选结果。
      • 输入正则表达式时,可以使用增加或删除一条表达式。
      • 如果已选择的表或目录不正确,可以单击“清除选中节点”清除勾选。

  10. 单击“校验”查看备份任务的配置是否正确。

    校验失败可能存在以下原因:

    • 目的端主或备NameNode IP地址、端口号不正确。
    • 待备份的索引名称在Elasticsearch集群中不存在。

  11. 单击“确定”保存。
  12. 在备份任务列表中已创建任务的“操作”列,选择“更多 > 即时备份”,开始执行备份任务。

    备份任务执行完成后,系统自动在备集群的备份路径中为每个备份任务创建子目录,目录名为“备份任务名_数据源_任务创建时间”,数据源每次备份的最新备份文件保存在此目录中。所有备份文件集保存在对应的快照目录中。