前提

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
2
3
4
5
6
7
docker run -d \
-p 9000:9000 \
-v /var/rustfs/data:/data \
-e RUSTFS_ACCESS_KEY=rustfsadmin \
-e RUSTFS_SECRET_KEY=rustfsadmin \
--name rustfs \
rustfs/rustfs:latest

各参数说明:

  • -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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[minio]
type = s3
provider = Minio
env_auth = false
access_key_id = minio
secret_access_key = 123
endpoint = http://minio.old:9000

[rustfs]
type = s3
provider = Other
env_auth = false
access_key_id = rustfs
secret_access_key = 1234
endpoint = http://rustfs.new:9000

四、迁移命令

把minio的picgo桶迁移到rustfs的picgo桶(rustfs会自动创建不存在的桶)

1
2
3
4
5
6
7
8
rclone sync -P minio:picgo rustfs:picgo \
--checksum \
--transfers 64 \
--checkers 32 \
--s3-chunk-size 64M \
--buffer-size 256M \
--fast-list \
--no-update-modtime

参数说明:
-P: 显示进度
--checksum: 基于文件校验和而非时间戳同步
--transfers 32: 并发传输数量
--checkers 16: 并发检查数量
--transfers 64: 增加并发传输数
--checkers 32: 增加并发检查数
--s3-chunk-size 64M: 增大S3分片大小
--buffer-size 256M: 增大缓冲区
--fast-list: 更高效的列表操作
--no-update-modtime: 不更新修改时间,提高性能

至此迁移成功!