雪重 Python Developer 知识 汗水 灵感 机遇
2023年5月12日   rclone s3 ceph

rclone在s3跨集群迁移的使用

同一区域ceph集群迁移使用aws s3 sync s3://buck1/dir1/ s3://buck2/dir1/就行

如果一个s3协议的ceph存储集群在上海(s1),一个存储集群在内蒙古阿里云oss(s2),总体积上百TB(无法满足先下载到本地磁盘),同时还包含众多小文件如何同步?

1.rclone配置

默认配置文件存放位置为: ~/.config/rclone/rclone.conf

[s1]
type = s3
provider = Ceph
access_key_id = O1***
secret_access_key = ep***
endpoint = http://10.*.*.*:80
acl = private

[s2]
type = s3
provider = Alibaba
access_key_id = LTA***
secret_access_key = cH***
endpoint = https://oss-cn-***.aliyuncs.com
acl = private
bucket_acl = private

2.传输命令示例

rclone copy --progress --fast-list --transfers 200 --checkers 200 s1:buck1/dir1/ s2:buck1/dir1/

也可使用rclone sync

--progress 打印传输日志

--fast-list 加速列出文件

--transfers 200 --checkers 200 设置比较大的传输线程数,和比较两边文件信息线程数,用于小文件特别多的情况

rclone copy 会先check比较,不会覆盖目标位置的现有文件

rclone copy 只有在以下情况下才会覆盖现有文件:

  • 源文件的修改时间(Modification Time)晚于目标文件;
  • 源文件与目标文件的大小不同。

注意,rclone sync 会保持两个目录下内容完全一致,如果源目录内容少于目标目录内容,会将目标目录多出的内容删除

区别于aws s3 sync,如果源目录内容少于目标目录内容,只会将源目录不同于目标目录的部分上传(无删除操作)

3.其常用rclone命令

  • rclone size s1:buck1/dir1/ 统计s3上buck1/dir1/文件夹大小
  • rclone lsf s1:buck1/dir1/ 打印s3上buck1/dir1/内所有文件名
  • rclone 打印所有rclone参数,自行查找需要使用的命令