一个 Rust 写的存储系统,想把 HPC 和 AI 的存储栈统一了

搞过 HPC 集群的人都知道一个尴尬的现实:超算那边跑 Lustre/BeeGFS,AI 那边跑 Ceph 对象存储,LLM 推理还得再搭一套 Redis 做 KV Cache。三套存储栈,三套运维,数据搬来搬去,GPU 利用率不到 50%。

PowerFS 想用一套存储把这三件事全干了。

不是"兼容"那种贴皮换药,而是从零开始用 Rust 写了一套统一存储引擎,把 POSIX 文件接口、S3 对象接口、KV Cache 接口塞进同一个数据池------数据写一次,三种接口都能读。

下面是 6 个我觉得比较有意思的技术点。

1. Rust 写的,没有 GC 抖动

这是第一个值得说的。Java/Go 写的存储系统在满负载下会有 GC Stop-The-World,P99 延迟突然飙到几百毫秒。HPC 场景对抖动零容忍------MPI 同步屏障下,一个进程卡 200ms,整个 job 全等。

PowerFS 全栈 Rust,无 GC,内存安全交给编译器。满负载跑 72 小时,P99 延迟波动 < 5%。没有 STW,没有妥协。

2. 三个接口,一个数据池

POSIX(FUSE/Kernel)给 HPC 科学计算,S3 给 AI 数据集和模型快照,KV Cache 给 LLM 推理。三种接口共享同一份 Needle 二进制格式存储,写一次到处读。

以前要在集群里同时部署 Lustre + Ceph + Redis,现在一套 PowerFS 搞定。运维成本直降,数据不再孤岛。

3. Filer Raft 强一致:元数据不丢不乱

所有元数据操作(mkdir/create/unlink/rename/lookup)全部走 Filer Raft commit,3 节点多数派写入才返回成功。线性强一致,没有"最终一致"的含糊。

关键设计是 Leader Lease Read :读操作在 Leader 任期内直接本地读,不走 Raft Read Index,省一次网络往返。元数据读取延迟 < 2ms。

按 bucket 分片,每个 bucket 是独立 Raft 组,水平扩展无上限。

4. Volume Lease:数据层排他锁,60 秒复用

元数据靠 Raft,数据靠 Lease。每个 64MB Stripe 一把排他锁,写者独占。关键优化是 60 秒长期复用 ------同一个文件的连续写操作命中缓存后零 RPC,直接写盘。

锁的释放用 Rust 的 RAII 机制(Drop trait),作用域结束自动释放,不会忘记 unlock。崩溃恢复靠 TTL + grace period(= 租期 × 2),不会出现锁泄漏。

5. NVMe-oF 直连 + SPDK 裸盘:两种模式都是绕内核

Mode A :Volume Server 用 SPDK 用户态驱动直接操作 NVMe 裸盘,绕过 ext4/xfs 文件系统,绕过系统调用,绕过 Block 层。4K 随机读从 50 万 IOPS 提到 200 万+,延迟从 100μs 降到 20μs。

Mode B :直接连 NVMe-oF Target 全闪存阵列,连 Volume Server 都不要。客户端通过 RDMA 直达阵列,2 跳到达 SSD。阵列自带 RAID/EC/快照/压缩,PowerFS 专注元数据和一致性。

两种模式都做到了内核零参与。

6. 全链路硬件加速:NVMe 到 GPU 显存零拷贝

SPDK 裸盘 I/O + RDMA 无损网络 + GPU Direct 传输。数据从 NVMe SSD 到 GPU HBM 显存,全程零拷贝,不经过 CPU 内存中转。

这对 LLM 推理特别关键:KV Cache 数据在 NVMe 上,GPU 通过 GPU Direct 直接读取,相当于把 GPU 显存扩展到了 NVMe SSD。GPU 利用率从 40-50% 提升到 90%+。

数据说话

指标 提升 单线程元数据 ops 40x (5万→200万 ops/s) 目录列表(1万条目) 10.6x (50ms→4.7ms) 4K 随机读 IOPS 4x (50万→200万+) LLM 推理 GPU 利用率 40%→90%+

PowerFS 是开源项目,Apache 2.0 协议,代码全部 Rust 实现。

GitHub : github.com/powerfs/powerfs

如果你也在被 HPC+AI 混合负载的存储问题折磨,欢迎来 Star、Fork、提 Issue。

相关推荐
Raas1002 小时前
MAI Gateway(魔芋企业级AI网关)技术揭秘:AI网关支持哪些模型?从原理到落地
大数据·人工智能·网关·gateway·mai gateway·企业级产品
豪气的程序猿4 小时前
电商图片工作流怎么选?Lingko AI 对比折叠键盘主图与详情页
人工智能
小刘快学习5 小时前
把 AI 账单拆到部门:企业 AI 网关的精准分账思路
人工智能
浪子明X5 小时前
十六位账本怎样发现传输差错:Internet Checksum 生活类比
开发语言
米小虾5 小时前
你让监控模型读的思维链,可能是攻击者写好的剧本
人工智能
deepseek235 小时前
Iris 开源搜索智能体拆解:35B 与 397B 中文仅差 0.3 分,上下文管理胜过堆参数
人工智能·ai agent·开源模型
ai小陈5 小时前
CUDA Stream实战:让数据传输与GPU计算真正重叠
人工智能·深度学习·ai·pdf·云计算·gpu算力
residual_fan5 小时前
【学术论文】航空发动机故障诊断智能体:基于持续对比强化学习的动态优化方法
人工智能·算法·数据挖掘·数据分析
东风破_5 小时前
从 RAG 到 Agentic RAG:第二步,把复杂问题拆开再检索
人工智能
dehuisun5 小时前
第07篇:RAG+Agent 部署架构、资源评估与私有化方案
人工智能