跳转至

什么是Backup&Restore

Backup&Restore(简称BR)是一款命令行界面(CLI)工具,可以帮助备份Nebula Graph的图空间数据,或者通过备份文件恢复数据。

功能

  • 一键操作备份和恢复数据。
  • 支持基于以下备份文件恢复数据:
    • 本地磁盘(SSD或HDD)
    • Hadoop分布式文件系统(HDFS)
    • 阿里云对象存储(Alibaba Cloud OSS)
    • 亚马逊对象存储(Amazon S3)(TODO:coding)
  • 支持备份整个 Nebula Graph 集群,暂不支持指定图空间数据。

限制

  • Nebula Graph版本需要为v2.5.0。
  • 数据备份仅支持全量备份,不支持增量备份。
  • Nebula Listener 暂时不支持备份,且全文索引也不支持备份。
  • 如果备份数据到本地磁盘,备份的文件将会放置在每个服务器的本地路径中。也可以在本地挂载 NFS 文件系统,以便将备份数据还原到不同的主机上。
  • 备份图空间只能恢复到原集群,不能跨集群恢复。
  • 数据备份过程中,指定图空间中的DDL和DML语句将会阻塞,我们建议在业务低峰期进行操作,例如凌晨2点至5点。
  • 数据恢复仅支持在相同拓扑的集群上进行,即原集群和目标集群的主机数量必须相同。
  • 数据恢复需要删除数据并重启,建议离线进行。

工作原理

备份

为了备份数据,BR会发送备份请求给leader的metad进程,触发备份。详细说明如下:

  1. 验证BR访问Meta服务器和Storage服务器的SSH登录信息。

    Note

    如果必须使用云存储,例如Alibaba Cloud OSS或Amazon S3,还需要验证它们的客户端安装和配置。

  2. BR发起请求创建备份文件。

  3. leader的metad进程被锁定。

    Note

    从此时起至第9步结束,无法在指定图空间内执行任何nGQL的DDL语句。

  4. leader的metad进程阻塞指定图空间的写请求。

    Note

    从此时起至第7步结束,无法在指定图空间内执行任何nGQL的DML语句,但是可以执行DQL语句。

  5. leader的metad进程发送请求至storaged进程,请求快照文件名称。

  6. leader的metad进程扫描本地RocksDB文件,输出为SST(Static Sorted Table)格式文件。
  7. leader的metad进程解除阻塞指定图空间的写请求。

    Note

    从此时起,可以在指定图空间内执行nGQL的DML语句。

  8. leader的metad进程回应BR,包含的Meta数据和快照信息如下:

    • thrift格式信息
    • 图空间分区信息
    • 每个分区的Raft日志提交ID
    • 快照信息(每个快照存储进程的目录)
    • Meta服务器SST格式文件名称
    • 备份文件名称
  9. leader的metad进程解除锁定。

    Note

    从此时起,可以在指定图空间内执行任何nGQL的DDL语句。

  10. BR通过SSH登录至leader所在的Meta服务器和所有Storage服务器,然后备份文件。

  11. 如果使用的是Alibaba Cloud OSS或Amazon S3,BR会调用命令将备份文件上传至云存储中。

    Note

    本步骤会大量读取磁盘,建议使用万兆网络保证速率。如果上传过程中出现网络错误,备份会失败,必须重新执行备份操作。目前备份过程不支持断点续传。

    1. BR发起请求清理Storage服务器的快照,备份完成。

下图展示了备份的具体流程。

The figure shows the backup procedure

备份文件生成时会自动命名,命名格式为BACKUP_YY_MM_DD_HH_mm_SS

  • BACKUP表示该文件是备份文件。
  • YY_MM_DD_HH_mm_SS表示该文件的生成时间。

恢复

Danger

恢复过程中,目标集群上已有的数据会被删除,然后替换为备份文件中的数据。建议提前备份目标集群上的数据。

恢复过程的详细说明如下:

  1. 验证BR访问Meta服务器和Storage服务器的SSH登录信息。

    Note

    如果必须使用云存储,例如Alibaba Cloud OSS或Amazon S3,还需要验证它们的客户端安装和配置。

  2. BR从外部存储或云存储中下载Meta信息(非完整数据)。

  3. BR验证集群的拓扑结构,确保原集群和目标集群的主机数量一致。
  4. BR远程停止Meta服务和Storage服务。
  5. BR通过SSH登录至leader所在的Meta服务器和所有Storage服务器,然后删除现有的数据文件。
  6. 现有数据文件删除后,Meta服务器和所有Storage服务器从外部存储或云存储中下载备份文件。
  7. 备份文件下载完成后,BR启动Meta服务。
  8. BR调用br restore命令更改指定metad进程的分区信息。
  9. BR启动Storage服务,恢复过程完成。

下图展示了恢复的具体流程。

The figure shows the restoration process

如何使用BR

可以按照如下步骤使用BR:

  1. 编译BR
  2. 使用BR备份数据
  3. 使用BR恢复数据

最后更新: August 18, 2021
Back to top