文档首页/ 高性能弹性文件服务 SFS Turbo/ 最佳实践/ SFS Turbo数据迁移实践/ 通过云专线迁移数据至SFS Turbo(rsync工具)
更新时间:2025-07-25 GMT+08:00
分享

通过云专线迁移数据至SFS Turbo(rsync工具)

方案概述

用户可以将本地NAS存储中的数据,通过云专线和rsync工具迁移至云上SFS Turbo文件系统中,进行云上业务拓展。

此方案通过在云上创建一台Linux操作系统的云服务器,来连接本地NAS存储以及云上SFS Turbo文件系统的通信,并通过这台服务器将本地NAS存储中的数据迁移至云上。

将云上NAS存储数据迁移至SFS Turbo文件系统中也可以参考本方案,云上NAS和SFS Turbo文件系统需要配置在同一个VPC下。

约束与限制

  • 支持拷贝特殊文件,如连接文件、设备等。
  • 支持单文件断点续传。
  • 支持保持原文件或目录的权限、时间、软硬链接、属主、组等所有属性。
  • 支持使用rcp、rsh、ssh等方式来配合传输文件。
  • 支持实现增量迁移,即只迁移发生变化的数据。
  • 如果存在迁移多层级目录且小文件数量较多的情况时,rsync迁移效率将会非常低,建议使用多进程脚本解决或rclone工具迁移。

前提条件

  • 已经完成云专线的购买和配置,详情请参考《云专线服务用户指南》
  • 已创建一台操作系统为Linux的云服务器。
  • 已创建SFS Turbo文件系统,并获取到文件系统的挂载地址。
  • 已经获取到本地NAS存储的挂载地址。
  • 本地NAS和云服务器已完成互信关系建立。

资源规划

本章节介绍案例中使用的资源信息。具体如表1所示。

表1 资源规划

产品

配置示例

说明

弹性云服务器 ECS

规格:8vCPUs | 16GB | c7.2xlarge.2

操作系统:Linux

区域:华北-北京四

VPC名称:VPC1

已创建/mnt/src和/mnt/dst的目录

操作步骤

  1. 登录已创建好的Linux系统云服务器,用于同时访问本地NAS存储和SFS Turbo文件系统。
  2. 输入以下挂载命令,用于访问本地NAS存储。

    请将<本地NAS挂载地址>替换为实际的NAS挂载地址,例如192.168.0.0:/。请将/mnt/src替换为实际的源路径。
    mount -t nfs -o vers=3,timeo=600,noresvport,nolock,tcp <本地NAS挂载地址> /mnt/src

  3. 输入以下挂载命令,用于访问云上文件系统。

    请将<SFS Turbo挂载地址>替换为实际的SFS Turbo挂载地址,例如192.168.0.0:/。请将/mnt/dst替换为实际的目标路径。
    mount -t nfs -o vers=3,timeo=600,noresvport,nolock,tcp <SFS Turbo挂载地址> /mnt/dst 

  4. 在Linux云服务器中执行以下命令安装rsync工具。

    yum install rsync 
    图1 安装rsync工具

    源端服务器和目的端服务器均需要安装rsync工具,否则将会报错。

  5. 安装完成后,可以输入以下命令查询rsync工具的安装和版本情况。

    rsync -version
    图2 查看工具安装情况

  6. 您可以执行rsync命令迁移存量数据或迁移增量数据。

    1. 迁移存量数据:执行以下命令,将源端服务器/mnt/src目录中的数据全量同步迁移至目的端服务器/mnt/dst目录(SFS Turbo文件系统)中。
      rsync -avP /mnt/src/ /mnt/dst/

      您还可以执行以下命令,利用rsync并发复制上传数据。

      threads=${线程数量};src=/mnt/src/;dest=/mnt/dst/;rsync -av -f"+ */" -f"- *" $src $dest && (cd $src && find . -type f | xargs -n1 -P$threads -I% rsync -av % $dest/% )

      例如,线程数量为10,命令如下:

      threads=10;src=/mnt/src/;dest=/mnt/dst/;rsync -av -f"+ */" -f"- *" $src $dest && (cd $src && find . -type f | xargs -n1 -P$threads -I% rsync -av % $dest/% )
    2. 迁移增量数据:执行以下命令,将存量数据迁移开始后的增量数据同步到目标SFS Turbo文件系统中。
      rsync -avP --delete /mnt/src/ /mnt/dst/

      --delete表示从目标SFS Turbo文件系统中删除已在源目录中被删除的数据,请您谨慎使用,避免意外删除目标SFS Turbo文件系统中的数据。

验证结果

  1. 登录已创建好的Linux系统云服务器。
  2. 在目的端服务器执行以下命令,验证文件同步情况。仅通过文件名和文件大小比较,如果未输出不一样的文件或目录,则表示数据迁移成功。

    rsync -avn --size-only /mnt/src/ /mnt/dst/

  3. (可选)如果需要校验文件数据一致性,可以使用以下命令进行哈希值比较。如果未输出不一样的文件或目录,则表示数据迁移成功。

    rsync -avn --checksum /mnt/src/ /mnt/dst/

相关文档