Fire-Flyer 文件系统(3FS)总结:
一、核心特点
3FS 是一个专为 AI 训练和推理工作负载设计的高性能分布式文件系统,利用现代 SSD 和 RDMA 网络,提供共享存储层,简化分布式应用开发。其主要特点包括:
-
高性能与易用性
- 解耦架构
整合数千个 SSD 的吞吐量和数百个存储节点的网络带宽,实现无本地性限制的存储访问。
- 强一致性
采用 CRAQ(链复制与分配查询)协议,确保数据强一致性,简化应用开发。
- 标准文件接口
基于事务性键值存储(如 FoundationDB)提供无状态元数据服务,无需学习新 API。
- 解耦架构
-
多样化工作负载支持
- 数据准备
高效管理数据分析管道的中间输出,支持大规模数据组织。
- 数据加载器
支持跨计算节点随机访问训练样本,无需预取或洗牌数据。
- 检查点
支持高吞吐量并行检查点,适用于大规模训练。
- KVCache 推理优化
提供高吞吐量、大容量的缓存方案,替代昂贵的 DRAM 缓存。
- 数据准备
二、性能表现
-
峰值吞吐量
-
在 180 个存储节点(每个节点配备 2×200Gbps InfiniBand NIC 和 16 个 14TiB NVMe SSD)的集群中,通过 500+ 客户端节点进行读压力测试,实现了约 6.6 TiB/s 的聚合读吞吐量。
-
-
GraySort 基准测试
-
在 25 个存储节点和 50 个计算节点的集群中,对 110.5 TiB 数据进行排序,耗时 30 分 14 秒,平均吞吐量为 3.66 TiB/min。
-
-
KVCache 性能
-
在 LLM 推理优化中,KVCache 的读吞吐量峰值达到 40 GiB/s,同时展示了垃圾回收(GC)期间的移除操作 IOPS。
-
三、安装与使用
-
获取代码
./patches/apply.sh
-
安装依赖
-
支持 Ubuntu 20.04 和 22.04,提供详细的依赖安装命令,包括 CMake、开发库、编译工具链等。
-
额外依赖:libfuse 3.16.1+、FoundationDB 7.1+、Rust 工具链。
-
-
构建 3FS
-
使用 CMake 构建:
cmake -S . -B build
,cmake --build build -j 32
。
-
-
运行测试集群
-
按照设置指南部署和运行测试集群。
-
四、总结
3FS 通过解耦架构、强一致性和标准文件接口,为 AI 训练和推理提供了高性能、易用的分布式存储解决方案。其出色的性能表现(如 6.6 TiB/s 的读吞吐量)和多样化工作负载支持,使其成为大规模 AI 应用的理想选择。