简介
RustFS 用热门安全的 Rust 语言开发,兼容 S3 协议。适用于 AI/ML 及海量数据存储、大数据、互联网、工业和保密存储等全部场景。近乎免费使用。遵循 Apache 2 协议,支持国产保密设备和系统。
关于存储方案
过去十年,对象存储领域似乎“尘埃落定”:
Ceph RADOS 一统私有云,但运维复杂度劝退中小企业;
MinIO 以 Go 单二进制横扫轻量市场,然而 AGPL 协议、GC 延迟、ARM 性能仍被诟病;
公有云 S3 生态封闭、出网费惊人,政企/信创场景不可控。
2023 年 11 月,GitHub 悄然出现 rustfs/rustfs,短短 8 个月 Star 破 3 k,单 Release 下载量 10 w+,成为国内外技术媒体争相报道的“现象级”项目。它用 Rust 语言重写对象存储核心,主打 Apache 2.0 许可证 + 100 % S3 兼容 + 10 ms 级 P99 延迟 + 单文件 100 MB 部署 。
概览
语言 & 许可证 Rust 1.79 + Apache-2.0(商用零污染) 单二进制体积 93 MB(x86_64-unknown-linux-musl 静态链接) 最小配置 1 vCPU / 512 MB RAM / 1 GB 磁盘即可跑单节点 Demo 最大规模 公开测试 1000+ 节点、EB 级容量,元数据 100 亿对象 网络协议 S3 API + Admin REST + Prometheus metrics + OTLP traces 存储引擎 自研 RStore,支持追加写、EC、BitRot 校验、WORM 元数据引擎 Raft Group(hashicorp/raft-rs),支持分层选举 特色功能 S3 Object Lambda、多租户 IAM、冷热分层、跨桶复制、TLS 1.3 强制
拓扑
┌─────────────┐ ┌──────────────┐ │ S3 Client │◄──────►│ RustFS GW │◄── Stateless └─────────────┘ └──────┬───────┘ │ ┌──────────────────┼──────────────────┐ │ │ │ ┌─────────▼────────┐ ┌──────┴──────┐ ┌────────▼────────┐ │ Meta Raft Group │ │ EC / Copy │ │ Mem+Disk Cache │ │ (3,5,7 node) │ │ (8+3,10+4) │ │ LRU+LFU │ └──────────────────┘ └─────────────┘ └─────────────────┘
常见问题 FAQ
Q:RustFS 和 MinIO 最大区别? A:语言(Rust vs Go)+ License(Apache-2.0 vs AGPL-3.0)+ 性能(零 GC)。 Q:支持 Windows 吗? A:支持,CI 已跑通 windows-2022 Github Runner。 Q:如何平滑从 MinIO 迁移? A:使用 mc mirror 或 rclone sync,S3 协议零改造。 Q:有图形界面吗? A:内置 Web Console(React + Antd),支持 Bucket Policy 可视化编辑。 Q:Raft 会不会成为瓶颈? A:Meta 支持 水平分片,单 Raft Group 20 亿对象,已压测。 Q:RustFS 加密方案? A:SSE-S3、SSE-C、SSE-KMS 均已实现,国密 SM4 2025 Q1 合入。 Q:如何二次开发? A:所有 crate 发布到 crates.io,gateway 支持 WASM 插件。 Q:是否有商业支持? A:官方公司 RustFS Inc. 提供 SLA 7×24,支持国产信创。 Q:边缘场景最低配置? A:树莓派 CM4 + USB3.0 硬盘,实测 250 MB/s。 Q:性能调优工具? A:内置 rustfs-top,类 htop,实时展示 IO / Raft / GC。
示例:本地接入
想把 RustFS 当“本地硬盘”——FUSE 挂载模式
准备环境(Linux/macOS)
# Ubuntu/Debian sudo apt install fuse libfuse-dev # macOS brew install macfuse
源码编译(单二进制,<100 MB)
git clone https://github.com/rustfs/rustfs.git cd rustfs cargo build --release
启动服务端
mkdir -p /data/store # 数据落盘目录 ./target/release/rustfs_server --data-dir /data/store
挂载到本地目录
mkdir -p ~/rustfs ./target/release/rustfs_client --mount-point ~/rustfs
当本地磁盘用
cp movie.mkv ~/rustfs/ ls ~/rustfs/
卸载:
fusermount -u ~/rustfs(Linux)或 umount ~/rustfs(macOS)
常见下一步
修改默认密码:首次登录控制台后立刻改,或在启动参数里直接指定 RUSTFS_SECRET_KEY。
数据持久化:Docker 模式一定把 /data 挂到宿主机;生产环境再加 -v /var/log/rustfs:/var/log/rustfs 收集日志。
集群/多节点:官方文档里有“分布式快速起步”章节,原理与 MinIO 类似,先启动一组 server 节点,再用 mc admin 把磁盘池化。
应用接入:SpringBoot、Python、Vue 分片上传等完整示例可参考 。
“把 RustFS 想成 Rust 写的 MinIO:Docker 一条命令就能 S3 协议读写;再编译个客户端就能 FUSE 挂载当本地磁盘用。” 先按场景选 1 或 2 跑通,再按需看官方文档扩集群、做备份、接 SDK 即可。
官网&下载
官网:https://rustfs.com/zh/
下载:https://rustfs.com/zh/download/
其它
http://www.savh.cn/thread-1681.htm
转载请注明:Savh.Cn 发表



