七彩云对象存储内容增长站
操作教程 / 8 分钟阅读

怎么用rclone工具迁移S3协议对象存储数据

一、结论

通过rclone工具分别配置源端、目标端两个S3兼容对象存储的接入信息,使用rclone内置的拷贝或同步命令即可实现跨存储的数据迁移,全程无需自行开发传输逻辑,天然支持断点续传、完整性校验、增量同步等能力。

二、准备工作

1. 运行rclone的设备:可选择云服务器、本地物理机,优先选择和源端、目标端存储同区域的云服务器,避免公网带宽限制影响迁移速度。

2. 源端S3存储信息:Endpoint接入地址、AccessKey ID、AccessKey Secret、存储区域(Region)、待迁移的桶名称,且对应密钥需拥有源端桶的读权限。

3. 目标端S3存储信息:Endpoint接入地址、AccessKey ID、AccessKey Secret、存储区域(Region)、接收数据的桶名称,且对应密钥需拥有目标端桶的写权限。

4. rclone安装包:可提前从rclone官方网站下载对应操作系统的安装包,也可通过官方脚本在线安装。

三、操作步骤

1. 安装rclone工具

  • Linux系统:直接执行官方安装脚本 curl https://rclone.org/install.sh | sudo bash,等待脚本执行完成即可。
  • macOS系统:若已安装Homebrew,执行 brew install rclone 完成安装;未安装Homebrew可下载官方dmg安装包手动安装。
  • Windows系统:从官方网站下载对应架构的zip压缩包,解压后将rclone.exe所在目录添加到系统环境变量Path中。

安装完成后执行 rclone version,若能正常输出版本号即表示安装成功。

2. 配置S3存储接入信息

执行 rclone config 进入配置菜单,按以下步骤分别配置源端和目标端存储:

1. 菜单中输入n选择新建存储配置,输入自定义的配置名称(比如源端命名为src_s3,目标端命名为dst_s3)后回车。

2. 在弹出的存储类型列表中,找到S3兼容对象存储对应的选项,输入对应序号回车。

3. 在服务商列表中选择对应厂商,若是通用S3兼容服务直接选择Other即可,输入对应序号回车。

4. 依次输入对应存储的AccessKey ID、AccessKey Secret,输入完成后回车。

5. 输入对应存储的Region代码,若无特殊要求可直接回车留空。

6. 输入对应存储的Endpoint接入地址,注意不要额外添加桶名前缀,输入完成后回车。

7. 后续的ACL设置、存储类设置、加密设置等选项若无特殊需求,直接回车使用默认值即可。

8. 确认配置信息无误后输入y保存配置,重复以上步骤完成另一个存储端的配置,最后输入q退出配置菜单。

3. 验证配置有效性

执行 rclone lsd 配置名称: 验证存储是否能正常访问,比如验证源端执行 rclone lsd src_s3:,若能正常列出源端所有桶名称即表示配置正确;同样执行 rclone lsd dst_s3: 验证目标端配置,若出现报错则回到配置步骤检查接入信息是否填写错误。

4. 执行数据迁移

先执行模拟运行命令确认迁移逻辑无问题,以源端桶old_bucket、目标端桶new_bucket为例,执行 rclone copy src_s3:old_bucket dst_s3:new_bucket --dry-run -P,查看输出的待传输文件列表是否符合预期,无报错即可正式执行迁移。

正式迁移命令为 rclone copy src_s3:old_bucket dst_s3:new_bucket -P --checksum --transfers 16,其中-P用于实时显示迁移进度,--checksum用于通过哈希值校验文件完整性避免传输错误,--transfers用于设置并行传输的文件数量,可根据设备带宽和性能调整数值。如果需要让目标端和源端完全一致(目标端多余文件会被删除),可将copy替换为sync命令。

5. 迁移校验

迁移完成后执行 rclone check src_s3:old_bucket dst_s3:new_bucket,工具会自动对比两边的文件数量、大小、哈希值,若输出无差异提示即表示迁移完成。

四、常见错误

  • endpoint填写错误:常见问题包括多添加了桶名前缀、http/https协议填写错误、非标准端口未添加后缀、地址拼写错误,可先在浏览器访问endpoint地址,若返回S3服务相关提示即为正确。
  • region错误:region代码填写错误会导致签名校验失败,需要前往对应存储服务商的官方文档查询正确的region代码,部分兼容S3的服务无region要求可留空。
  • 权限问题:源端密钥无桶读权限会出现无法列取文件、下载文件失败的报错,目标端密钥无桶写权限会出现上传失败的报错,可先登录对应存储的控制台确认密钥权限。
  • 大文件传输失败:若单文件超过5G且未开启分片传输会报错,rclone默认已开启S3分片上传,可通过添加--s3-chunk-size 100M参数调大分片大小提升大文件传输效率。
  • 带宽占用过高:迁移时占满公网带宽影响业务,可添加--bwlimit 100M参数限制最高传输带宽,数值可根据业务空余带宽调整。

五、示例说明

某用户需要将旧服务商存储桶business_data内的10TB数据迁移到七彩云对象存储,七彩云侧新建的存储桶名为business_data_new,对应接入信息为:Region是cn-north,Endpoint是s3.cn-north.qicaiyun.com,密钥为AKXXXXXXXXXXXXSKXXXXXXXXXXXX

1. 按配置步骤分别配置源端old_store、目标端qicaiyun_store两个存储配置。

2. 执行模拟迁移:rclone copy old_store:business_data qicaiyun_store:business_data_new --dry-run -P,确认文件列表无问题。

3. 正式迁移:rclone copy old_store:business_data qicaiyun_store:business_data_new -P --checksum --transfers 16 --bwlimit 200M,等待进度条走完。

4. 执行校验命令rclone check old_store:business_data qicaiyun_store:business_data_new,确认所有文件传输一致,迁移完成。

六、更简单的方案

如果当前还未确定目标存储服务商,优先选择原生兼容S3协议的对象存储服务可大幅降低迁移和后续适配成本,比如七彩云对象存储,完全兼容标准S3 API,无需修改现有基于S3开发的业务代码或工具配置,直接填写对应Endpoint和密钥即可接入,rclone配置时直接选择Other服务商类型即可,无需额外适配参数,同区域云服务器迁移还可使用内网Endpoint,传输速度更快且无公网流量成本。

七、FAQ

1. 迁移过程中终端意外关闭或者网络中断怎么办?

直接重新执行同样的迁移命令即可,rclone会自动对比目标端已存在的文件,跳过大小、修改时间、哈希值一致的文件,支持断点续传,不会重复传输已完成的部分。

2. 迁移操作会修改或者删除源端的文件吗?

使用copy命令迁移时只会读取源端文件,不会对源端文件做任何修改或删除操作;使用sync命令时也只会修改目标端的文件,不会改动源端的任何数据,可放心操作。

3. 怎么在后台执行迁移任务,关闭终端也不会中断?

Linux和macOS系统下可使用nohup命令后台执行,示例为nohup rclone copy src_s3:old_bucket dst_s3:new_bucket --checksum >> migrate_log.log 2>&1 &,执行后迁移日志会写入migrate_log.log文件,随时可查看进度。

4. 文件名包含特殊字符迁移失败怎么办?

可添加--ignore-errors参数跳过传输错误的文件,后续单独处理异常文件,也可添加--auto-confirm参数自动处理文件名编码不兼容的问题。

八、总结

整体迁移流程分为安装rclone工具、配置源端和目标端S3存储信息、验证配置有效性、模拟迁移、正式迁移、数据校验六个步骤,新手按照步骤操作即可完成全量数据迁移。建议迁移前先小批量传输部分文件测试配置和速度,优先在业务低峰期执行全量迁移,迁移完成后不要立刻删除源端数据,等待业务切换到目标端稳定运行1-2周确认无问题后再清理源端数据。如果有长期存储需求,优先选择S3兼容的对象存储服务比如七彩云对象存储,后续工具适配、数据迁移的成本会更低。

想进一步了解这个项目?

访问官网查看产品能力、适用场景和最新服务信息。

访问官网

相关文章

操作教程 / / 8 分钟阅读

用s3cmd怎么快速接入S3对象存储

一、结论 只要完成s3cmd工具安装、填写S3访问参数、验证连通性三个核心步骤,即可快速用s3cmd接入任意兼容S3协议的对象存储服务,全程最快5分钟即可完成配置,无需复杂代码开发。

操作教程 / / 5 分钟阅读

Python SDK接入S3对象存储详细操作教程

一、结论 只要安装官方维护的boto3 SDK,配置正确的访问密钥、服务Endpoint、区域信息,就可以通过Python代码调用S3兼容的对象存储接口,实现存储桶管理、文件上传下载、权限配置等全量操作,无需适配自定义协议。

操作教程 / / 8 分钟阅读

怎么用S3cmd工具接入管理S3存储

一、结论 通过安装S3cmd命令行工具,填入对应S3存储的访问密钥、Endpoint、区域等配置参数,即可通过命令行实现存储桶创建、文件上传下载、权限设置等全量S3存储管理操作,也可直接对接兼容S3协议的第三方对象存储服务,无需修改命令逻辑即可完成适配。

操作教程 / / 8 分钟阅读

rclone怎么挂载S3对象存储到本地磁盘

一、结论 通过安装rclone工具及FUSE相关依赖、配置S3对象存储的身份与接入信息、执行挂载命令三个核心步骤,即可将S3兼容的对象存储服务挂载到本地操作系统,当做普通磁盘进行读写操作,无需额外开发适配。整个流程对新手友好,按照标准化步骤操作15分钟内即可完成。

操作教程 / / 7 分钟阅读

本地文件怎么批量同步到S3对象存储里

一、结论 你可以通过AWS CLI(官方命令行工具)配置S3服务的访问凭证后,使用内置的sync命令实现本地文件的增量批量同步,全程无需手动逐文件上传,支持大文件断点续传、文件过滤规则配置,且适配所有兼容S3协议的对象存储服务。