项目详情

RustFS

MinIO 的体验,Apache 的协议,Rust 的底子——S3 兼容分布式对象存储

rustfs/rustfs Apache-2.0 Rust 33.2k stars v1.0.0 刚 GA

分类:存储 · 基础设施 · ← 返回汇总

项目速览

一句话定位

用 Rust 重做的 MinIO 位子,还把许可证还给了你

高性能分布式对象存储:纠删码数据可靠性 + 广泛 S3 API 兼容 + Web 控制台 + 多租户 IAM,额外支持 Swift/Keystone/SFTP/WebDAV 多协议。面向数据湖、AI 训练、大数据负载优化,主打从 MinIO/Ceph 迁移与共存。适合想要「S3 即装即用、Apache-2.0 无商用顾虑、资源占用更省」的自托管团队。

单二进制部署 S3 + Swift + WebDAV + SFTP 与 MinIO/Ceph 迁移共存
项目速览

核心数据

33.2k
Stars(建仓 2023-11)
1.48k
Forks
174
贡献者
1.0.0
GA:2026-09-16
6×
GA 后 3 天预发布迭代
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 请求的完整旅程

HTTP 入口 TLS · 鉴权 · 路由 · 压缩 server/ 用例编排 校验 · 策略 · 生命周期 app/object_usecase 纠删码引擎 分片 · 加密 · 校验和 storage/ecfs → ecstore 磁盘池选择 · 数据分布 bitrot 防护 · healing rio 读/写管线 encrypt → compress → hash → write io-core I/O 治理 buffer池 · 背压/防死锁 · 准入控制 S3 API · 9000 端口 Admin API 同端口走 /minio/ 前缀 Web Console · 9001 端口 Admin API 之上的管理界面 节点间 gRPC(tonic) 分布式模式:远端盘读写走 RPC 依赖纪律:请求只能自上而下穿层(server → app → storage),下层禁止反向 import 上层(如 storage 不得引用 admin)——写进了架构文档的迁移护栏。
核心数据路径 入口/端口/控制面 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 · 可观测性 · 分布式/单节点双模式
previewS3 Tables(Iceberg REST 表服务)· MinIO 磁盘格式在线兼容

已发布功能均有 CI 门禁覆盖;S3 兼容覆盖度公开跟踪在仓库内兼容矩阵文档。

迁移故事

把「从 MinIO 搬过来」做成一等公民

策略很清晰:不教育市场,承接存量——用户从 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 基础设施的默认存储底座」这个位置。

工程细节

工程治理:教科书级的仓库纪律

在线体验

亲手算一算纠删码的账

拖动数据块 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:赛道确定、执行凶猛、待时间验证。


上一个
Anki
下一个
Compositor
1 / 14