RustFS 评测:Apache 2.0 许可的 S3 兼容存储,性能与许可的双重赌注
对于 4KB 对象负载,比 MinIO 快 2.3 倍。 RustFS 是一个开源的、S3 兼容的高性能对象存储系统,支持与其他 S3 兼容平台(例如 MinIO 和 Ceph)迁移和共存。
秒懂
- 它是什么?
- RustFS 是一个用 Rust 编写的分布式对象存储,宣称 4KB 小对象性能比 MinIO 快 2.3 倍,并以 Apache 2.0 许可避开 AGPL 限制。本文基于仓库文档与发布信息,分析其架构、部署方式、真实局限与适用边界。
- 适合谁用?
- RustFS 适合那些需要 S3 兼容接口、同时在意 AGPL 传染性许可的团队,尤其是数据湖、AI 训练和边缘设备场景。它不适合需要成熟分布式复制、生命周期管理或 KMS 的生产环境,因为这些功能在 1.0.0-rc.4 中仍标记为 Under Testing。
- 能商用吗?
- 可以。Apache-2.0 是宽松许可证:你可以使用、修改并销售基于它的软件,只需保留版权和许可证声明。
- 还在维护吗?
- 在维护。仓库在最近一天内有新的提交。
- 用什么语言写的?
- 主要是 Rust(依据 GitHub 的语言统计)。
以上回答依据项目的 GitHub 数据(最近同步于 2026年9月15日)和我们的分析,不构成法律意见。
开源项目深度解析
一个用许可和性能做卖点的存储系统
RustFS 解决的问题很具体:对象存储领域长期被 MinIO 和 Ceph 占据,前者采用 AGPL v3 许可,后者虽然 Apache 2.0 但部署复杂。RustFS 直接用 Apache 2.0 许可,这在 README 中被反复强调,甚至用了 poison pill 和 license traps 这样的措辞。它的目标用户是那些希望避开 AGPL 义务、同时需要 S3 兼容接口的团队,尤其是数据湖、AI 和边缘设备场景。项目用 Rust 重写,宣称在 4KB 小对象负载下比 MinIO 快 2.3 倍。这个数字来自仓库提供的压力测试环境,具体测试方法和代码没有公开,所以只能当作厂商声明对待。
架构与数据流:从 README 能看到的机制
从仓库文档看,RustFS 支持单节点模式和分布式模式,后者标记为 Under Testing。单节点模式已经可用,说明它先解决的是部署简单的需求。S3 核心功能、上传下载、版本控制、日志、事件通知、多租户都已标注为 Available。数据流方面,它同时提供 S3 API 和 OpenStack Swift API,并原生支持 Keystone 认证。这意味着它可以作为 OpenStack 环境的存储后端,也能被标准 S3 客户端访问。Bitrot Protection 已可用,说明数据完整性校验是内置的。但分布式模式的具体一致性协议、数据放置策略、故障转移机制,README 没有给出细节,只能从架构文档目录推测存在 design 文档。
部署与上手:Helm 与 Docker 是主要入口
README 指向 docs.rustfs.com/en/installation 作为 Getting Started 入口,但没有给出具体的安装命令。仓库的 docker.yml 工作流暗示 Docker 镜像是发布产物之一,K8s Helm Charts 标记为 Available。因此实际部署路径大概率是拉取 Docker 镜像或使用 Helm chart。配置方面,文档提到 S3 兼容矩阵位于 docs/architecture/s3-compatibility-matrix.md,这是判断哪些 S3 操作被支持的关键文件。由于没有本地安装,我无法验证具体配置键,但可以确定的是,部署者需要先查阅这个矩阵,确认自己依赖的 API 是否在列。
性能声明与真实局限:2.3 倍不是免费午餐
README 给出的性能对比环境是 2 核 CPU、4GB 内存、15Gbps 网络、4 块 40GB 硬盘。这个配置对 MinIO 来说相当受限,而 RustFS 在相同条件下宣称快 2.3 倍。但这里有几个问题:首先,压力测试只针对 4KB 对象,大对象或混合负载的表现未知。其次,测试环境没有说明是否启用了 TLS、版本控制或复制,这些功能会显著影响性能。更关键的是,分布式模式仍在测试阶段,意味着性能优势可能只适用于单节点。对于需要横向扩展的生产环境,这个 2.3 倍的数字参考价值有限。
与 MinIO 和 Ceph 的差异:许可比功能更突出
RustFS 与 MinIO 的核心区别不在功能,而在许可。MinIO 的 AGPL v3 要求修改版必须开源,这对商业集成是障碍。RustFS 用 Apache 2.0 消除了这个顾虑。与 Ceph 相比,RustFS 的优势是部署简单,劣势是分布式成熟度。Ceph 的 RGW 经过多年生产验证,而 RustFS 的分布式模式还标着 Under Testing。另外,RustFS 支持 Swift API 和 Keystone 认证,这让它能直接替换 OpenStack 环境中的 Swift 存储,这是 MinIO 不具备的能力。但 Swift 元数据操作只标为 Partial,意味着某些 Swift 特性可能不完整。
维护与升级成本:RC 版本意味着什么
当前最新版本是 1.0.0-rc.4,发布于 2026 年 8 月 28 日,距离 rc.3 只有一周。这种发布节奏说明项目正在快速迭代,但也意味着 API 和配置可能不稳定。从 rc.2-preview.1 到 rc.4 的间隔是两周,没有 LTS 版本。升级成本方面,Apache 2.0 许可允许自由使用和修改,但项目没有提供迁移工具或升级指南的明确文档。README 提到支持迁移和共存,但具体机制未说明。对于生产用户,这意味着每次升级都需要重新验证兼容性和数据完整性。
谁该用,谁该等:一个基于证据的判断
RustFS 的 Apache 2.0 许可是实实在在的优势,尤其对商业产品集成。但它的功能矩阵显示,生命周期管理、分布式模式、KMS 都还在测试中。如果你的场景是单节点、小对象、对许可敏感,RustFS 值得尝试。如果你需要多节点复制、跨区域容灾或企业级密钥管理,应该等待这些功能稳定。另一个风险是社区规模:README 提供了 Discord 和 GitHub Discussions,但没有任何用户案例或生产部署证据。在采用前,至少要在自己的硬件上复现性能测试,并检查 S3 兼容矩阵中你依赖的每个操作。
编辑结论
RustFS 适合那些需要 S3 兼容接口、同时在意 AGPL 传染性许可的团队,尤其是数据湖、AI 训练和边缘设备场景。它不适合需要成熟分布式复制、生命周期管理或 KMS 的生产环境,因为这些功能在 1.0.0-rc.4 中仍标记为 Under Testing。采用前应验证三件事:S3 兼容矩阵中你依赖的 API 是否完整,分布式模式在故障注入下的表现,以及 Swift 元数据操作的部分支持是否影响你的工作流。最终判断:RustFS 是一个有明确性能主张和许可优势的年轻项目,但它的生产就绪度取决于那些尚未稳定的分布式特性,而非单节点基准测试。
社区笔记