同账户下不同PFS实例间的数据迁移
更新时间:2024-09-24
适用场景
适用于同VPC下并行文件存储PFS( 标准型、增强型、极速型、极速型L2)之间的数据传输。
基本原理
将PFS挂载至BCC中当做本地目录,利用cp、rsync等进行数据传输。
操作步骤
第一步:在同一VPC及可用区内创建BCC及PFS,并将PFS挂载至BCC中。
第二步:将源端PFS和目的端PFS挂载至BCC中,挂载后的PFS文件系统即可当作一个普通的本地目录来访问和使用。
- PFS 极速型L2的挂载方式请见:BCC挂载与卸载(极速型L2)
- PFS 标准型、增强型和极速型的挂载方式请见:BCC挂载与卸载(标准型、增强型和极速型)
第三步:利用cp、rsync等进行数据传输。
简单示例
下例简要介绍如何使用msrsync工具进行PFS实例之间的数据迁移。msrsync的详细用法请参考:msrsync。
# 示例场景说明:①已将PFS实例1挂载至BCC的本地路径"/mnt/src";②已将PFS实例2挂载至BCC的本地路径"/mnt/dest";③将PFS实例1数据迁移至PFS实例2中,即将源端数据"/mnt/src"同步至目的端"/mnt/dest"
# 操作示例:
# 创建临时存放中间信息的目录:
mkdir ~/tmp
# 通过如下命令进行数据迁移,其中并发数可调,以下以128并发为例。注意:要将 "/mnt/src" 和 "/mnt/dest" 替换为实际的源端目录和目的端目录。
nohup ./msrsync -P -p 128 --stats -b ~/tmp --rsync "-at --inplace --whole-file" /mnt/src /mnt/dest 1>rsync.log 2>&1
注:①执行过程中,可以 cat rsync.log 看到进度信息;②在使用msrsync进行数据同步时,如需保证同步的数据一致性,源端需要停写,目的端不能修改(否则可能会被源端数据覆盖)。
以下是对上述命令参数的含义说明。
参数/选项 | 含义 |
---|---|
nohup |
使命令在退出终端后继续运行,并将输出重定向到nohup.out文件或指定文件。 |
./msrsync |
执行当前目录下的msrsync 脚本或程序。 |
-P |
显示msrsync 命令的进度。 |
-p 128 |
设置并行进程数为 128。 |
--stats |
统计并显示文件传输的详细信息。 |
-b ~/tmp |
用于存储每个 rsync 同步的文件列表。 |
--rsync "-at --inplace --whole-file" |
传递给rsync 的选项:-a :归档模式,表示递归复制并保持所有文件属性。-t :保持文件时间戳。--inplace :直接更新文件而不是创建临时文件。--whole-file :传输整个文件,不进行增量复制。 |
/mnt/src |
源目录,表示要复制的文件所在目录。 |
/mnt/dest |
目标目录,表示复制文件的目的目录。 |
1>rsync.log |
将标准输出(stdout)重定向到rsync.log 文件。 |
2>&1 |
将标准错误(stderr)重定向到标准输出(stdout),即将错误信息也重定向到rsync.log 文件中。 |