文章目录
- RustFS:用 Rust 写的分布式对象存储,2.9 万 Star
- 存储这件事,Rust 能比 Go 做得更好?
- 和 MinIO 比,区别在哪?
- 部署方式
- 适合什么场景?
RustFS:用 Rust 写的分布式对象存储,2.9 万 Star
最近在 GitHub 上看到一个项目叫 RustFS,Star 已经到了 2.9 万,增速很猛。简单说,它是一个用 Rust 写的分布式对象存储系统,定位是 MinIO 的替代品,但许可证用的是 Apache 2.0,没有 AGPL 那些限制。
存储这件事,Rust 能比 Go 做得更好?
对象存储这个领域,MinIO 一直是主流选择,用 Go 写的。但 Go 有 GC 停顿的问题,在高并发场景下会有延迟抖动。RustFS 直接用 Rust 重写,内存安全由编译器保证,没有垃圾回收的开销。
官方给了一个压测数据,2 核 4GB 内存、15Gbps 网络、4 块盘(单盘 IOPS 3800)的环境下,RustFS 的读写性能跑赢了 MinIO。具体数据在项目里有视频演示。
当然,存储系统光快没用,功能也得跟上。RustFS 目前已经实现了 S3 核心功能、上传下载、版本控制、事件通知、Bitrot 保护、Bucket 复制、多租户这些。K8s Helm Charts 也有了,分布式模式和生命周期管理还在测试中。
和 MinIO 比,区别在哪?
除了性能,RustFS 和 MinIO 最大的区别在许可证。MinIO 是 AGPL v3,用它搭建服务的话,你的代码也可能被要求开源。RustFS 用的是 Apache 2.0,商业项目用起来没有这个顾虑。
另外 RustFS 没有遥测数据上报,数据主权这块比较干净。对 GDPR、CCPA 这些合规要求有需求的团队,这点挺重要。
功能层面,RustFS 还支持 OpenStack Swift API 和 Keystone 认证,对用 OpenStack 的团队来说可以直接对接。S3 兼容性方面,官方说 100% 兼容,现有的 S3 工具和客户端都能直接用。
部署方式
RustFS 给了好几种部署方式,最简单的一键脚本:
curl -O https://rustfs.com/install_rustfs.sh && bash install_rustfs.shDocker 也支持,镜像直接拉就行,Web 管理界面在 9001 端口。还支持 Docker Compose、Helm Chart、Nix Flake,甚至 podman 也能跑。容器内用的是非 root 用户,权限管理比较规范。
适合什么场景?
做数据湖、AI 训练数据存储、大数据平台的团队,如果在找一个许可证友好、性能不错的对象存储,RustFS 值得关注。特别是之前被 MinIO 的 AGPL 许可证卡住的项目,可以考虑切换。
不过也要注意,RustFS 还在 beta 阶段,分布式模式和部分功能还在测试中。生产环境用的话,建议先在测试集群跑一段时间,确认稳定性再上。
项目活跃度不错,Discord 社区也有人在,遇到问题能找到人讨论。文档在 docs.rustfs.com,上手门槛不高。
人在,遇到问题能找到人讨论。文档在 docs.rustfs.com,上手门槛不高。