同账户下不同PFS实例间的数据迁移
所有文档
menu
没有找到结果,请重新输入

并行文件存储 PFS

同账户下不同PFS实例间的数据迁移

适用场景

适用于同VPC下并行文件存储PFS( 标准型、增强型、极速型、极速型L2)之间的数据传输。

基本原理

将PFS挂载至BCC中当做本地目录,利用cp、rsync等进行数据传输。

操作步骤

第一步:在同一VPC及可用区内创建BCC及PFS,并将PFS挂载至BCC中。

第二步:将源端PFS和目的端PFS挂载至BCC中,挂载后的PFS文件系统即可当作一个普通的本地目录来访问和使用。

第三步:利用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文件中。
上一篇
本地数据和三方云数据迁移至PFS
下一篇
为不同目录设置不同用户权限