雪重
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参数,自行查找需要使用的命令