MinIO迁移RustFS实战指南一

由 copilot.microsoft.com 生成

作为资深 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

最后

开源的魅力,就是你永远有选择的余地。

Sponsor

Like this article? $1 reward

Comments