文章总结: MinIO官方镜像从DockerHub消失后,RustFS1.0作为Apache2.0协议、3.2万star的S3兼容存储项目成为替代方案。文章详述了从MinIO迁移的完整路径,包括Docker部署、mcmirror同步迁移流程及生产环境检查清单。关键提醒:磁盘格式兼容仍处预览阶段,加密对象无法互通,迁移需提前规划。建议先在测试环境验证再全面切换。
综合评分: 72
文章分类: 解决方案,安全建设,技术标准
MinIO 镜像一夜消失,五天后续上来的这个 3.2 万 star 项目救了自建存储的人
原创
didiplus
didiplus
攻城狮成长日记
2026年9月22日 09:26
广东
在小说阅读器读本章
去阅读
在公众号小说中沉浸阅读
迁移实战预计阅读 7 分钟 · 共 2793 字
MinIO 镜像一夜消失,五天后续上来的这个 3.2 万 star 项目救了自建存储的人
MinIO 镜像消失后的自建存储救场指南
RustFS#S3 兼容#Apache 2.0
READING PATH
阅读路线
7 个章节
01
接过来几乎没有成本
–
02
但迁移有个坑,别想当然
–
03
最快上手:Docker 单机部署
–
04
嫌麻烦?用官方 compose 或一键脚本
–
05
从 MinIO 迁移,走这条最稳的路
–
06
生产上线前,再叮嘱几句
–
07
自建存储最怕的,是上游说没就没
9月11号那天,一堆自建对象存储的人醒来发现事情不对了。MinIO 的官方镜像从 Docker Hub 消失了,README 改了口,说项目不再维护。你昨天还在跑的 docker compose,今天 pull 不到镜像了。依赖它的业务,每一秒都在裸奔。
换基础设施这事儿,最怕的从来不是不好用,是哪天上游突然不干了。
MinIO 这一出,把很多人的选型清单撕开了一道口子。许可证清不清楚,上游还活不活得下去,原来比功能多不多重要得多。
BREAKING
RustFS 1.0 正式版落地
2025年9月16日 · 五天后的接盘答案
3.2万 star#Apache 2.0#S3 兼容
五天后,9月16号,RustFS 1.0 正式版落地了。 3.2万 star,Apache 2.0 协议。不是那种写着开源、商用还得另谈的许可。时间点卡得太巧,像专门接这波迁移来的。
CHAPTER 01
01接过来几乎没有成本SEAMLESS MIGRATION
业务代码一行不用改
它按 S3 那套接口读写,版本控制、对象锁、服务端加密、生命周期、多租户,标着已可用。你的 AWS SDK、aws cli、各类备份工具,改个 endpoint 和密钥就能接。
很多人看向它,理由很直白:
真正的 Apache 2. 0商用、二次分发、闭源集成都相对清晰,不用再纠结开源但另谈
CHAPTER 02
02但迁移有个坑,别想当然WATCH OUT
从 MinIO 平移,得先看清楚一件事:磁盘格式兼容还在预览阶段,默认构建里没开。两边用 SSE/KMS 加密过的对象,对方读不了。
很多人第一反应是:直接挂同一目录就完事。这步走错,上线那天你才会发现数据搬不过来。
加密对象这一条尤其要命。你以为迁移只是换个进程,实际上对方的加密格式钥匙不通用。提前算进迁移方案,别等切流量了才发现桶是空的。
CHAPTER 03
03最快上手:Docker 单机部署DOCKER DEPLOY
适合开发、测试、小规模自用。先把这个跑起来,比看十篇文档都管用。
01
准备数据目录
容器以非 root 用户 10001 运行,权限要对。
bash
mkdir -p /data/rustfs
chown -R 10001:10001 /data/rustfs
02
启动容器
把下面的 Access Key 和 Secret Key 换成你自己的强密钥,可用 openssl rand -base64 24 生成。
bash
docker run -d \
–name rustfs \
–restart unless-stopped \
-p 9000:9000 \
-p 9001:9001 \
-v /data/rustfs:/data \
-e RUSTFS_ACCESS_KEY=”你的AccessKey” \
-e RUSTFS_SECRET_KEY=”你的SecretKey” \
-e RUSTFS_ADDRESS=”:9000″ \
-e RUSTFS_CONSOLE_ADDRESS=”:9001″ \
-e RUSTFS_CONSOLE_ENABLE=true \
rustfs/rustfs:latest \
/data
03
验证服务
bash
docker ps –filter name=rustfs
curl -f http://localhost:9000/health
浏览器打开 http://服务器IP:9001,用刚才配置的密钥登录控制台,建桶、传文件即可。
S3 API :9000控制台 :9001
04
用 AWS CLI 快速验证
bash
export AWS_ACCESS_KEY_ID=你的AccessKey
export AWS_SECRET_ACCESS_KEY=你的SecretKey
aws –endpoint-url=http://127.0.0.1:9000 s3 mb s3://test-bucket
aws –endpoint-url=http://127.0.0.1:9000 s3 cp ./hello.txt s3://test-bucket/
aws –endpoint-url=http://127.0.0.1:9000 s3 ls s3://test-bucket/
业务侧只需要把原来的 MinIO endpoint 和 AK/SK 换成 RustFS 的,代码通常不用动。
CHAPTER 04
04嫌麻烦?用官方 compose 或一键脚本ONE COMMAND
想更省事,直接拉官方仓库。
bash
git clone https://github.com/rustfs/rustfs.git
cd rustfs
先改环境变量里的 RUSTFS_ACCESS_KEY 和 RUSTFS_SECRET_KEY,别用默认值。
bash
docker compose -f docker-compose-simple.yml up -d
同样访问 http://IP:9001 进控制台。
不想用容器,直接跑在机器上,用一键脚本。
bash
curl -O https://rustfs.com/install_rustfs.sh && bash install_rustfs.sh
脚本把二进制装到 /usr/local/bin/rustfs,注册 systemd 服务并启动。默认数据目录一般在 /data/rustfs0,端口 9000 和 9001。安装过程中可按提示改路径和端口。
装完务必改 /etc/default/rustfs 里的密钥,再重启。
bash
systemctl restart rustfs
systemctl status rustfs
CHAPTER 05
05从 MinIO 迁移,走这条最稳的路SAFE MIGRATION
推荐路径,别抄近路
MIGRATION
MinIO → RustFS 迁移流程
1
部署干净实例
新机器或新目录部署一套干净的 RustFS
2
配置 mc 别名
分别为旧 MinIO 和新 RustFS 设置 alias
3
镜像同步
用 mc mirror –preserve 同步桶数据
4
校验切流
校验对象数量,抽样下载对比,切应用 endpoint
5
观察下线
观察一段时间再下线旧集群
bash
mc alias set oldminio http://旧MinIO地址:9000 OLD_AK OLD_SK
mc alias set newrustfs http://新RustFS地址:9000 NEW_AK NEW_SK
mc mirror –preserve oldminio/你的桶 newrustfs/你的桶
校验对象数量,抽样下载对比。切应用 endpoint,观察一段时间再下线旧集群。
原地替换这条路有边界。停 MinIO,用同一数据目录启动 RustFS。只适合盘位拓扑完全一致、且充分 staging 验证过的场景。
加密对象、站点复制、部分高级配置,大概率接不住。生产环境更建议走新建加 mirror。
CHAPTER 06
06生产上线前,再叮嘱几句PRODUCTION CHECKLIST
CHECKLIST
生产环境上线清单
1
改默认密钥
rustfsadmin 只适合本地试玩,上生产前换成强随机密钥
2
修正目录权限
挂载宿主机目录时,务必 chown 10001:10001,权限不对容器起不来
3
配置 TLS
对外暴露建议配 TLS,证书挂进容器,设 RUSTFS_TLS_PATH
4
备份策略
重要数据仍要有备份策略,单机 SNSD 没有跨盘冗余
5
高可用部署
真正高可用走多节点多盘 MNMD
6
防火墙收敛
只开放必要端口,9000、9001,或者你改过的那些
CHAPTER 07
07自建存储最怕的,是上游说没就没CONCLUSION
MinIO 这一出之后,很多自建 S3 的人第一次认真把许可证和上游可持续性写进选型清单。
RustFS 1.0 在这个时间点出现,至少给了大家一个清晰、可落地的备选。
先在测试环境跑起来,用真实业务流量压一压,再决定要不要全面切。接口兼容的前提下,迁移成本往往比想象中低。
GET STARTED
准备好从 MinIO 迁移到 RustFS 了吗?
立即动手跑起来
项目地址:https://github.com/rustfs/rustfs 文档:https://docs.rustfs.com/
你现在的对象存储跑的是什么?
MinIO、自建、还是云厂商的 OSS?评论区聊聊上游说没就没的惊魂时刻
· 点赞 ·
喜欢就点个赞吧
· 转发 ·
分享给更多朋友
· 推荐 ·
推荐给身边的人
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:攻城狮成长日记 didiplus
didiplus《MinIO 镜像一夜消失,五天后续上来的这个 3.2 万 star 项目救了自建存储的人》