
# SFS容量型文件系统迁移至其他文件系统（rclone工具）
#### 方案概述
用户可以将SFS容量型文件系统中的数据迁移至通用文件系统或SFS Turbo文件系统中。
此方案通过创建一台Linux操作系统的云服务器，来连接SFS容量型文件系统和其他文件系统的通信。
#### 约束与限制
- 仅支持使用Linux系统的云服务器进行数据迁移。
- Linux系统云服务器、SFS容量型文件系统和其他文件系统需在同一VPC下。如果目标端是通用文件系统，需配置VPC终端节点。
- 支持实现增量迁移，即只迁移发生变化的数据。
 
#### 前提条件
- 已创建一台操作系统为Linux的云服务器。
- 已创建SFS容量型和其他文件系统，并获取到文件系统的挂载地址。
 
#### 资源规划
本章节介绍案例中使用的资源信息。具体如[表1]所示。
 表1资源规划 
| 产品         | 配置示例                                                                                                                                                                                                                                                                                                                                                                      | 说明                      |
|:---|:---|:---|
| 弹性云服务器 ECS | 规格：8vCPUs \| 16GB \| c7.2xlarge.2 操作系统：Linux 区域：华北-北京四 VPC名称：VPC1 | 已创建/mnt/src和/mnt/dst的目录 |
   
#### 操作步骤
1. 登录弹性云服务器管理控制台。
2. 登录已创建好的Linux系统云服务器，用于同时访问SFS容量型文件系统和其他文件系统。
3. 输入以下挂载命令，用于访问文件系统1。文件系统1是SFS容量型文件系统。 
   ```
   mount -t nfs -o vers=3,timeo=600,noresvport,nolock 文件系统1挂载地址 /mnt/src
   ```
   
   
4. 输入以下挂载命令，用于访问文件系统2。文件系统2可以是通用文件系统或SFS Turbo文件系统。 
   ```
   mount -t nfs -o vers=3,timeo=600,noresvport,nolock 文件系统2挂载地址 /mnt/dst
   ```
   
   
5. 在Linux云服务器中执行以下命令安装rclone工具。 
   ```
   wget https://downloads.rclone.org/v1.53.4/rclone-v1.53.4-linux-amd64.zip --no-check-certificate
   unzip rclone-v1.53.4-linux-amd64.zip
   chmod 0755 ./rclone-*/rclone
   cp ./rclone-*/rclone /usr/bin/
   rm -rf ./rclone-*
   ```
   ![](https://support.huaweicloud.com/bestpractice-sfs/public_sys-resources/note_3.0-zh-cn.png)
   rclone工具不保留源端的文件权限或属组信息，有相关需求请使用rsync工具。
   
   
6. 执行以下命令，进行数据同步。 
   ```
   rclone copy /mnt/src /mnt/dst -P --transfers 32 --checkers 64 --links --create-empty-src-dirs
   ```
   ![](https://support.huaweicloud.com/bestpractice-sfs/public_sys-resources/note_3.0-zh-cn.png)
   参数说明如下，transfers和checkers数目可以根据系统规格自行配置：
   - /mnt/src ：源路径
   
   - /mnt/dst：目标路径
   
   - --transfers：传输文件的并发数目。
   
   - --checkers：扫描本地文件的并发数目。
   
   - -P：数据拷贝进度。
   
   - --links：复制源端的软链接，目的端保持为软链接的形式。
   
   - --copy-links：复制源端软链接指向的文件内容，目的端变成文件的形式，不再是软链接。
   
   - --create-empty-src-dirs：复制源端的空目录到目的端。
    
   等待数据完成同步后，可前往目标文件系统查看是否已成功迁移。
   
   
 
#### 验证
1. 登录已创建好的Linux系统云服务器。
2. 在目的端服务器执行以下命令，验证文件同步情况。 
   ```
   cd /mnt/dst
   ls | wc -l
   ```
   数据量与源端服务器中的一致时，表示数据迁移成功。
   
   
 
