从minio迁移数据到rustfs
前提
MinIO 官方近年来逐步限制开源版本功能,推动用户转向商业版,
| 时间 | 事件 |
|---|---|
| 2021年 | 服务器代码从 Apache 2.0 切换为 AGPL v3.0 |
| 2024年10月 | 移除 Kubernetes Operator 中的 Web 控制台 |
| 2025年5月 | 彻底删除开源版的 WebUI(用户无法通过浏览器管理) |
种种做法导致它缺失自主可控性、让人感到不安全不可信,所以寻求了开源的代替品rustfs,
通过支持S3的存储特性去使用rclone工具进行迁移。
一、rustfs 介绍
RustFS 是一个使用 Rust(全球最受欢迎的编程语言之一)构建的高性能分布式对象存储软件。与 MinIO 一样,它具有简单性、S3 兼容性、开源特性以及对数据湖、AI 和大数据的支持等一系列优势。此外,与其他存储系统相比,它采用 Apache 许可证构建,拥有更好、更用户友好的开源许可证。由于以 Rust 为基础,RustFS 为高性能对象存储提供了更快的速度和更安全的分布式功能。
官方docker 安装文档
1 | https://docs.rustfs.com/zh/installation/docker/ |
二、dokcer 部署
1 | mkdir -p /var/rustfs/data |
1 | docker run -d \ |
各参数说明:
-p 9000:9000:映射宿主机 9000 Endpoint端口到容器 9000可以使用9001的功能,9001没必要开启-p 9001:9001:映射宿主机 9001 Console端口到容器-v /mnt/rustfs/data:/data:挂载数据卷--name rustfs:容器自定义名称-d:后台运行/data: 必要参数,指定内部数据
三、安装rclone 进行迁移
问什么使用rclone?
因为它是通用云存储同步工具
支持 70+ 存储后端(包括 S3、MinIO、本地、Google Drive 等),支持增量同步、加密、挂载等
而且我之前有文章写过基于rclone+定时任务+天翼云盘挂载实现了备份功能,有使用基础,所以继续沿用rclone
1 | curl https://rclone.org/install.sh | sudo bash |
查看rclone
1 | rclone version |
创建/编辑
配置文件位于/root/.config/rclone/rclone.conf 添加minio和rustfs的配置
1 | [minio] |
四、迁移命令
把minio的picgo桶迁移到rustfs的picgo桶(rustfs会自动创建不存在的桶)
1 | rclone sync -P minio:picgo rustfs:picgo \ |
参数说明:-P: 显示进度--checksum: 基于文件校验和而非时间戳同步--transfers 32: 并发传输数量--checkers 16: 并发检查数量--transfers 64: 增加并发传输数--checkers 32: 增加并发检查数--s3-chunk-size 64M: 增大S3分片大小--buffer-size 256M: 增大缓冲区--fast-list: 更高效的列表操作--no-update-modtime: 不更新修改时间,提高性能
至此迁移成功!


