一个 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。

相关推荐
waterfeeling2 小时前
用 Context7 做一次点云配准的调研—测试—报告闭环:鲁棒 ICP
人工智能
2501_944521595 小时前
Ramda 跨端三方库仓颉适配全流程
开发语言·javascript·flutter·php
Data-Miner6 小时前
面对 AI 大模型智能涌现,如何从技术层面保护好隐私与数据安全?
大数据·人工智能
行思理6 小时前
go语言学习难度及适合学习的人群
开发语言·学习·golang
hpoenixf6 小时前
当 AI 开始谈“买什么”,研究助手离投顾和交易还有多远?
人工智能
大模型真好玩6 小时前
如何让视频模型对你言听计从?结构化提示词助你生成电影级画面
人工智能·agent·deepseek
zhang133830890757 小时前
传统机械三杯式风速传感器易磨损冻堵?CG-88金属超声波风速风向传感器给出免运维方案
运维·服务器·网络·人工智能·自动化
特立独行的猫a7 小时前
会说确认叫车才下单-启元机器人官方滴滴打车技能源码详解
人工智能·机器人·技能·启元机器人
老金带你玩AI7 小时前
GPT-6.1 Terra上线:更便宜了,干活到底怎么样?
人工智能
会议咨询7 小时前
2027年电力电子、人工智能与大数据国际会议(PEABD 2027)
大数据·人工智能·电力电子