介绍
Fire-Flyer文件系统(以下简称3FS)是一个较为特殊的文件系统,是由DeepSeek AI专为满足AI训练和推理工作负载的密集数据需求而设计开发的一种高性能分布式并行文件系统。
3FS只用在AI训练时计算节点中的模型批量读取样本数据这个场景上,通过高速的计算存储交互加快模型训练。它以高吞吐、低延迟和强一致性为核心设计理念,通过高效利用RDMA网络,为分布式应用开发者提供了一个简化的共享存储层。本文档主要介绍了在ARM平台的openEuler 22.03操作系统下,DeepSeek的存储组件3FS的编译与安装步骤,帮助客户快速使能。
3FS是一个高性能、高可用的分布式文件系统,其架构设计分为四个核心组件:Cluster Manager、Client、Meta Service和Storage Service,所有组件通过RDMA网络实现高速互联。
Cluster Manager:
- 作为集群的控制中心,负责节点管理,采用多节点热备机制确保高可用性。
- 使用FoundationDB实现选主机制,确保主节点选举的可靠性和一致性。
- 监控Meta Service和Storage Service的节点状态,通过心跳机制及时处理节点状态变化,并通知集群。
- 管理Client的在线状态,回收失联Client占用的写文件权限。
Client:
- 提供两种接入方案:FUSE(Filesystem In Userspace)客户端(hf3fs_fuse)和原生客户端(USRBIO)。
- FUSE客户端支持POSIX接口,便于应用快速集成,适用于大多数应用。
- USRBIO通过SDK方式提供高性能接入,适合对性能要求高的场景。
Meta Service:
- 采用存算分离设计,元数据存储于FoundationDB,利用其事务机制支持文件系统目录树结构。
- 无状态设计,支持横向扩展,负责将POSIX目录操作转化为FoundationDB的事务执行。
Storage Service:
- 存储数据,采用存算一体设计,每个节点管理本地SSD,提供高效读写能力。
- 数据存储采用3副本机制,使用CRAQ协议,优化读性能。
- 数据分块并分散存储,实现负载均衡和提高数据可用性。