有套 MinIO 跑了两年里面是数据库备份和客户交付物。你想在 RustFS 上再做一份异地副本万一主存储出问题能拉得回来。不想写迁移脚本也不想引入新组件——rclone 一个二进制就够。RustFS 是 100% S3 兼容的rclone 的 S3 后端对着自定义 endpoint 直接用不用等特殊适配。下面是一份可复制的配置。1. 配置 rclone 连 RustFSrclone 对自建 endpoint 默认走 path-style 寻址配上 RustFS 的地址和凭证即可rclone config create rustfs s3 \ providerOther \ endpointhttp://rustfs.internal:9000 \ access_key_idrustfsadmin \ secret_access_keyrustfsadmin \ aclprivateproviderOther告诉 rclone 这是兼容 S3 的第三方endpoint指向 RustFS 的 9000 端口。另一端你的 MinIO 或源 S3同样建一个 remote比如叫src。2. 先 dry-run再全量任何迁移第一步都是干跑确认两边能通、清单对得上rclone copy src:my-bucket rustfs:my-bucket --dry-run -P # 确认无误去掉 --dry-run 跑全量 rclone copy src:my-bucket rustfs:my-bucket -Pcopy是单向、不删目标想让目标严格等于源多出的删掉用sync——但sync会删目标里源没有的对象生产务必先--dry-run看清楚要删什么。3. 不可变备份叠加对象锁如果这份副本是用来防勒索、防误删的打开 RustFS 的对象锁WORM再用 rclone 的--immutable让备份对象禁止覆盖和删除# 目标桶先开合规对象锁保留 365 天见 RustFS 对象锁文档 rclone copy src:my-bucket rustfs:my-bucket --immutable -P--immutable会让 rclone 跳过已存在对象、且要求目标支持不可变正好和对象锁配合出写一次、锁一年的防篡改副本。代价是锁定期内对象占着空间、不能改适合合规归档而非热数据。4. 定时增量cron 一行全量跑完之后日常用增量同步保活。rclone 对大桶开--fast-list少打 LIST 请求调--transfers/--checkers提并发# 每天 03:00 增量同步--ignore-existing 跳过已传省流量 0 3 * * * rclone copy src:my-bucket rustfs:my-bucket \ --fast-list --ignore-existing --log-file /var/log/rclone-backup.log -PRustFS 的版本控制如果开着rclone 覆盖同名对象会留历史版本误删也能回退——但副本侧开了版本控制存储会随版本涨记得配生命周期清冷版本。5. 边界sync 会删、网络要算sync是破坏性的它让目标等于源源没有的对象会被删。备份场景宁可用copy--ignore-existing或sync前先--dry-run。网络与凭证跨机房同步走公网要算带宽和费用RustFS 默认账号rustfsadmin/rustfsadmin暴露即裸奔remote 里的密钥生产用专用账号。大桶调优对象上亿时单靠默认参数会慢--fast-list 调--transfers是必要的别指望一条命令秒完。这些都是 rclone 任意 S3 存储的通用功课不是 RustFS 的坑。官方文档和 rclone 手册都公开动手前翻一遍。6. 总结与下一步RustFS 是 S3 兼容的rclone 的 S3 后端配 endpoint 直接用不用特殊适配。流程config 建 remote →copy --dry-run验证 →copy全量 →--immutable 对象锁出不可变备份 → cron 增量。边界sync会删目标、跨机房算带宽、大桶要--fast-list调并发。下一步按第 1 节建rustfsremote挑一个非生产桶跑rclone copy --dry-run看清单通了再去掉--dry-run全量同步。以下是深入学习 RustFS 的推荐资源RustFS官方文档 RustFS 官方文档- 提供架构、安装指南和 API 参考。GitHub 仓库 GitHub 仓库 - 获取源代码、提交问题或贡献代码。社区支持 GitHub Discussions- 与开发者交流经验和解决方案。意见反馈GitHub Issues