MinIO迁移RustFS实战指南一

作为资深 MinIO 用户,经历过 MinIO 一系列操作,从砍掉网关模式,砍掉控制台,到维护模式。老实说,我个人认为这类开源产品很难实现商业化。这种不断收缩能力边界的变化,对使用者来说影响是实实在在的。并不是功能不好,而是你已经把它当作基础设施依赖了,却发现它的产品路线在变, 这也是我开始认真考虑 MinIO 之外的选择的直接原因
项目地址
为啥选择 RustFS,经过大量讨论与实践,RustFS 逐渐成为那个改动最小、适配最易的首选替代品,深度兼容 MinIO 的 API 与架构。
快速部署
本次主要迁移了一个大盘鸡备份 MinIO, 方便操作直接使用 compose 部署
services:
minio:
image: ccr.ccs.tencentyun.com/k7scn/minio:2025
container_name: minio
restart: always
environment:
- MINIO_ROOT_USER=Fah0quaixei0
- MINIO_ROOT_PASSWORD=wi0iez3gaaZoghohCai5zeedeenatooxunoh8AhwangeiPho8Obahja
- MINIO_DEFAULT_BUCKETS=backup
ports:
- '100.90.80.15:9000:9000'
- '100.90.80.15:9001:9001'
volumes:
- '/data/minio:/bitnami/minio/data'
rustfs:
image: ccr.ccs.tencentyun.com/k7scn/rustfs:latest
container_name: rustfs
restart: always
environment:
- RUSTFS_ACCESS_KEY=Fah0quaixei0
- RUSTFS_SECRET_KEY=wi0iez3gaaZoghohCai5zeedeenatooxunoh8AhwangeiPho8Obahja
ports:
- '192.168.94.15:9000:9000'
- '192.168.94.15:9001:9001'
volumes:
- '/data/rustfs/data:/data'
- '/data/rustfs/logs:/logs'
注意 RustFS 的日志目录,不确定官方文档和示例有冲突(/logs 或者 /app/logs), 其实影响不大。
docker compose up -d
chown -R 10001:10001 /data/rustfs/data /data/rustfs/logs
docker compose down -v
docker compose up -d
其他的都和 MinIO 没啥区别,登录控制台创建 Bucket
可以直接使用 MC 操作
mc alias set rustfs http://192.168.94.15:9000 Fah0quaixei0 wi0iez3gaaZoghohCai5zeedeenatooxunoh8AhwangeiPho8Obahja
测试直接使用 restic 测试
export RESTIC_REPOSITORY=s3:http://192.168.94.15:9000/backup/test
export AWS_ACCESS_KEY_ID=Fah0quaixei0
export AWS_SECRET_ACCESS_KEY=wi0iez3gaaZoghohCai5zeedeenatooxunoh8AhwangeiPho8Obahja
export RESTIC_PASSWORD=eexeeWie1ri
直接备份测试
restic init
restic backup /data/mariadb --tag mariadb
repository 7d5b008d opened (version 2, compression level auto)
found 2 old cache directories in /root/.cache/restic, run `restic cache --cleanup` to remove them
no parent snapshot found, will read all files
[0:01] 100.00% 1 / 1 index files loaded
Files: 205 new, 0 changed, 0 unmodified
Dirs: 8 new, 0 changed, 0 unmodified
Added to the repository: 10.385 MiB (730.814 KiB stored)
processed 205 files, 124.408 MiB in 0:10
snapshot fed84173 saved
从目前来看没啥问题,可以先跑一段时间再看看。也可以使用 mc mirror 等工具将存量数据从 MinIO 迁移至 RustFS
最后
开源的魅力,就是你永远有选择的余地。
