项目详情
RustFS
MinIO 的体验,Apache 的协议,Rust 的底子——S3 兼容分布式对象存储
分类:存储 · 基础设施 · ← 返回汇总
项目速览
一句话定位
用 Rust 重做的 MinIO 位子,还把许可证还给了你
高性能分布式对象存储:纠删码数据可靠性 + 广泛 S3 API 兼容 + Web 控制台 + 多租户 IAM,额外支持 Swift/Keystone/SFTP/WebDAV 多协议。面向数据湖、AI 训练、大数据负载优化,主打从 MinIO/Ceph 迁移与共存。适合想要「S3 即装即用、Apache-2.0 无商用顾虑、资源占用更省」的自托管团队。
单二进制部署
S3 + Swift + WebDAV + SFTP
与 MinIO/Ceph 迁移共存
项目速览
核心数据
92MB
仓库(Cargo workspace 多 crate)
GitHub API 采集于 2026-09-19 · 最近 push 2026-09-18 · RC 周期自 8 月密集推进 · 文档站 docs.rustfs.com
为什么存在
踩中了对象存储的「信任真空」
MinIO 转向留下的缝
MinIO 收紧 AGPL 执法、社区版功能收缩后,大量自托管用户在找一个「能放心商用、接口照旧」的替代位。
Rust 的存储叙事
无 GC 停顿的 I/O 路径、内存安全、更低资源占用——对象存储是最吃这三点的服务类型。
AI 负载新需求
数据湖 + AI 训练的高吞吐读、Iceberg 表服务、缓存分层——S3 兼容层正成为 AI 基础设施的标配件。
README 第一段就把话挑明:「以 Apache-2.0 发布,避开 AGPL 的限制」——这不是中立的技术选型说明,是直接冲着竞品软肋去的定位宣言。
🔥 核心页
一个 PUT 请求的完整旅程
核心数据路径
入口/端口/控制面
I/O 治理层
图自 ARCHITECTURE.md 原文流程重绘
核心机制
数据可靠性:纠删码的账本
- 纠删码(EC):对象切成 k 个数据块 + m 个校验块分散在磁盘池——任丢 m 块仍可完整还原,存储开销 (k+m)/k 远低于三副本的 3×
- bitrot 防护:每块带校验和,静默损坏在读/写/heal 时都能被发现并修复
- healing + scanner:后台持续巡检,坏盘换盘后自动重建数据,配 scanner-metrics 遥测 crate
- 池扩缩容:pool expansion / decommission 在线操作,退役节点数据安全迁出
- 两级复制:bucket replication(跨桶)与 site replication(跨站点)
为什么 EC 是对象存储的灵魂
以常见 EC 8+4 为例:存储开销 1.5×,却能容忍任意 4 块盘同时报废——同样的容错用三副本要付 3× 空间。PB 级集群里,这就是「一半的硬盘采购 + 一半的电费」。
代价是读写要做编解码运算——这正是它选 Rust 的理由之一:无 GC 暂停的流水线让编解码不吃尾延迟。
功能全景
功能矩阵:S3 全家桶只是入场券
| 能力域 | 明细 |
| S3 核心 | 版本控制 · Object Lock(WORM) · 服务端加密 · 自带 KMS · 生命周期管理(ILM) + 分层 · S3 Select · 桶配额 · 事件通知 · 审计日志 |
| 企业身份 | IAM/策略 · OIDC/SSO(含 Entra ID roles claim 映射)· 多租户 · OpenStack Keystone + Swift API 原生支持 |
| 协议广度 | S3 · Swift · FTPS · WebDAV · SFTP——一个集群当五种存储用 |
| 可靠性 | 纠删码 · bitrot · healing/scanner · 池扩缩 · 桶复制 + 站点复制 |
| 运维面 | Web Console · K8s Helm · 可观测性 · 分布式/单节点双模式 |
| preview | S3 Tables(Iceberg REST 表服务)· MinIO 磁盘格式在线兼容 |
已发布功能均有 CI 门禁覆盖;S3 兼容覆盖度公开跟踪在仓库内兼容矩阵文档。
迁移故事
把「从 MinIO 搬过来」做成一等公民
- Admin API 走
/minio/ 前缀:mc 等管理工具生态无需改造即可对接
- MinIO 磁盘格式兼容(preview):目标是挂上原盘直接读写——最狠的迁移路径,连数据搬运都省了
- 官方定位「迁移与共存」:描述里点名支持与 MinIO、Ceph 等 S3 兼容平台共存,降低混合期风险
- 配置面贴近:环境变量命名、TLS/OIDC 配置习惯延续 MinIO 用户肌肉记忆(如
RUSTFS_IDENTITY_OPENID_*)
策略很清晰:不教育市场,承接存量——用户从 MinIO 平移的每一分摩擦,都是 RustFS 的转化漏斗。
差异化
AI-native 叙事:不止是 S3 兼容层
S3 Tables(preview)
内建 Iceberg REST 表服务——对象存储直接变成数据湖表引擎的元数据后端,AI/分析管线少一层组件。
高吞吐优化
读/写管线(rio)+ 缓冲池 + 准入控制为批量扫描型负载调优;ILM tiering 可把冷数据下沉远端 S3。
对象数据缓存
object-data-cache crate 面向重复读取的热数据——训练场景里 epoch 重复读是常态,缓存命中率即成本。
topics 自我标注 ai-native / ai-storage——押注「AI 基础设施的默认存储底座」这个位置。
工程细节
工程治理:教科书级的仓库纪律
- ARCHITECTURE.md 常青文档:带修订号的分层地图 + 「请求只能向下穿层」的依赖护栏,明确写进迁移守卫
- Cargo workspace 扁平 crate 布局:ecstore/rio/io-core/heal/scanner 等 20+ crate 按域拆分,依赖图以 Cargo.toml 为唯一权威
- AI 协作开发样本:仓库内有 AGENTS.md、CLAUDE.md、.claude/、.codex/、.agents/ 目录——把 agent 知识库当代码资产维护的激进实践
- 测试与门禁:e2e_test 独立 crate + CI 徽章 + 「已发布功能必须被 CI 覆盖」的发布纪律
- 发布节奏:8 月起 RC 密集推进,GA 三天内 6 个 preview 补丁迭代——修 bug 不攒版本
在线体验
亲手算一算纠删码的账
拖动数据块 k 和校验块 m,实时看存储开销、可容忍故障数、年数据丢失概率,以及对比三副本的账单——为什么 PB 级集群都选 EC 而不是三副本,一玩就懂。
▶ 打开纠删码权衡计算器
组合数学 + 二项尾概率模型,与 Python 参考实现对拍通过。
快速上手
五分钟起一套 S3
# Docker 单节点
docker run -d -p 9000:9000 -p 9001:9001 \
-v /data:/data rustfs/rustfs \
server /data --console-address ":9001"
# K8s
helm install rustfs rustfs/rustfs
# 任意 S3 SDK / mc / s3cmd 直接连
endpoint = http://localhost:9000
- 单节点起步:一条命令出 S3 + 控制台,验证 PoC 够用
- 分布式扩展:多节点多盘组纠删码池,gRPC 互联
- 从 MinIO 迁移:生态工具照常,磁盘格式兼容(preview)可在线读旧盘
- 文档:docs.rustfs.com 覆盖安装/TLS/OIDC/集成全链路
适用场景 / 风险提示
谁该上,谁该再等等
适合
- 被 AGPL 卡住商用的团队:Apache-2.0 无心理负担,功能面反而更宽(Swift/SFTP/WebDAV)
- AI / 数据湖平台:高吞吐 + Iceberg 表服务 + 缓存分层正中需求
- K8s 自托管用户:Helm 一装,MinIO 肌肉记忆直接复用
- 边缘/资源受限环境:Rust 运行时占用低,小机器也能跑
警惕
- 1.0 刚满月:生产采用前建议先跑预发——preview 特性(S3 Tables、磁盘兼容)边界未完全收口
- 与 MinIO 的兼容差距未量化承诺:极端用例(老版怪癖行为)迁移前要实测
- 公司主导 + 商标持有:RustFS, Inc. 掌控路线图,社区贡献需签 CLA
- 生态位竞争激烈:Ceph/SeaweedFS/Garage 各有拥趸,选型看长期维护承诺
潜力评估
未来空间
两年半 33k stars、GA 即登顶趋势榜——「Apache 许可的 Rust 版 MinIO」这个定位在供需两端都踩准了。接下来看三件事:S3 Tables 能否吃下数据湖增量、MinIO 磁盘兼容能否 GA(平迁零成本)、以及公司化运作能否保持发布纪律。评分 8.5:赛道确定、执行凶猛、待时间验证。