JuiceFS 对比 3FS
3FS (Fire-Flyer File System) 是一款分布式文件系统,针对 AI 训练和推理工作负载设计,由 DeepSeek 开源。该系统使用 NVMe SSD 和 RDMA 网络提供共享存储层,面向大规模 AI 应用的 I/O 需求。
JuiceFS 是一个云原生分布式文件系统,其数据存储在对象存储中。社区版可与多种元数据服务集成,适用场景广泛,于 2021 年在 GitHub 开源。企业版专为高性能场景设计,广泛应用于大规模 AI 任务,涵盖生成式 AI、自动驾驶、量化金融和生物科技等。
本文从架构设计、文件分布、RPC 框架和功能特性等方面对 3FS 和 JuiceFS 进行全面对比。
架构对比
3FS
3FS 采用针对 AI 工作负载设计的架构,包含以下关键 组件:
- 集群管理服务(Cluster Manager):处理成员变更,并将集群配置分发给其他服务和客户端。为了提高系统可靠性和避免单点故障,会部署多个集群管理服务,其中一个被选为主节点。
- 元数据服务(Metadata Service):无状态服务,处理文件元数据操作,依靠支持事务的键值数据库 FoundationDB 来存储元数据。
- 存储服务(Storage Service):使用本地 NVMe SSD 管理数据存储,采用 CRAQ(Chain Replication with Apportioned Queries)算法确保数据一致性。
- 客户端(Clients):提供 FUSE Client 以实现 POSIX 兼容性,以及 Native Client API 用于高性能零拷贝操作。
所有组件通过 RDMA 进行高性能网络通信。集群配置通常存储在可靠的分布式服务中,例如 ZooKeeper 或 etcd。

JuiceFS
JuiceFS 采用模块化的云原生架构,包含三个核心组件:
- 元数据引擎:用于存储文件元数据,包括常规文件系统的元数据和文件数据的索引。社区版支持 Redis、TiKV、MySQL、PostgreSQL、FoundationDB 等多种数据库。企业版使用自研高性能元数据服务。
- 数据存储:一般是对象存储服务,可以是公有云的对象存储也可以是私有部署的对象存储服务。支持与各种存储后端集成。
- JuiceFS 客户端:提供 POSIX(FUSE)、Hadoop SDK、CSI Driver、S3 网关等不同的接入方式。
架构差异
存储模块
3FS 使用本地 NVMe SSD 进行数据存储,为了保证数据存储的一致性,采用 CRAQ(Chain Replication with Apportioned Queries)算法。几个副本被组成一个 Chain,写请求从 Chain 的 Head 开始,一直到达 Chain 的 Tail 时返回写成功应答。读请求可以发送到 Chain 的所有副本,如果读到脏节点的数据,该节点会联系 Tail 节点检查状态。

数据的写入是按顺序逐节点传递,因此会带来比较高的延时,但这种设计优先考虑读性能,这对于读密集型的 AI 工作负载至关重要。
相比之下,JuiceFS 利用对象存储作为数据存储解决方案,从而可享有对象存储带来的若干优势,如数据可靠性、一致性等。存储模块提供了一组用于对象操作的标准接口(GET/PUT/HEAD/LIST),可以与各种存储后端无缝集成。社区版 JuiceFS 提供本地缓存来应对 AI 场景下的带宽需求,企业版使用分布式缓存满足更大的聚合读带宽的需求。