
3FS
A shared distributed file system built for AI training and inference data, using SSDs and RDMA networking.
- Stars
- 10.4k
- Forks
- 1.1k
- Licence
- MIT
- Language
- C++
- Last update
- 6 months ago
- Type
- Other
What it is
3FS (Fire-Flyer File System) is a distributed file system, meaning files are spread across many storage machines and presented to applications as one shared storage layer. It is designed for AI workloads such as training, data preparation, checkpointing, and LLM inference caching. The README says it uses modern SSDs and RDMA networks for high throughput and exposes a standard file interface, so applications do not need a new storage API.
- Serve training samples to many compute nodes with random access, avoiding separate prefetching or shuffling steps
- Write high-throughput parallel checkpoints during large-scale training
- Store and organize outputs of data analytics pipelines in hierarchical directories
- Use as a lower-cost, larger-capacity alternative to DRAM-based KV caching for inference
Great for
- Teams running large AI training clusters that need shared, high-throughput storage
- Engineers building data pipelines that write many intermediate files across compute nodes
- Infrastructure teams evaluating storage for LLM inference caching
- Operators comfortable building and running a distributed system from source
Not ideal for
- Individuals or small projects wanting a simple file share, since it requires a cluster of SSDs and RDMA networking and is designed for large deployments
- Users without systems administration experience, because setup involves multiple dependencies and a cluster deployment guide
- Anyone needing a managed, packaged product, since the README describes only build-from-source and Docker build images
How to get it
- 1
Clone and build from source
You'll need: Ubuntu 20.04/22.04, openEuler, or OpenCloudOS/TencentOS (or Docker build images) · CMake and a C++ toolchain (clang-14 or gcc 10/11+ as listed in README) · libfuse 3.16.1 or newer · FoundationDB 7.1 or newer · Rust toolchain, minimum 1.75.0, recommended 1.85.0 or newer
Clone the repository
git clone https://github.com/deepseek-ai/3fsCheck out submodules and apply patches
cd 3fs && git submodule update --init --recursive && ./patches/apply.shConfigure the build
cmake -S . -B build -DCMAKE_CXX_COMPILER=clang++-14 -DCMAKE_C_COMPILER=clang-14 -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DSHUFFLE_METHOD=<method>Build
cmake --build build -j 32 - 2
Run it
- Install the system dependencies listed for your OS in the README
- Install libfuse, FoundationDB, and the Rust toolchain
- Clone the repository and check out submodules
- Build with CMake, choosing a consistent SHUFFLE_METHOD value
- Follow the setup guide in deploy/README.md to run a test cluster
- 3
Get the most out of it
- Read the design notes in docs/design_notes.md to understand the architecture before deploying
- Follow deploy/README.md for the test cluster setup
- Use the fio engine for USRBIO in benchmarks/fio_usrbio to benchmark your own hardware
- Review the USRBIO API reference in src/lib/api/UsrbIo.md if you need a direct high-performance API
Downloads
Strengths
- Uses the standard file interface, so existing applications need no new storage API
- The README reports strong consistency via Chain Replication with Apportioned Queries (CRAQ)
- Published benchmarks cover large clusters, including about 6.6 TiB/s aggregate read throughput on a 180-node cluster
Trade-offs
- Requires significant hardware (SSDs, RDMA-capable networking) and several dependencies such as FoundationDB and Rust, so setup is complex
- Build compatibility depends on compiler choice; the README warns binaries from different compilers may be incompatible unless the shuffle method is pinned
- Benchmark results come from the authors' own large test clusters, which most readers cannot reproduce
Stats synced from GitHub. The assessment above was drafted with AI from the project's README on 2026-10-29 and may miss recent changes — check the README before relying on a command. MIT licence: free to use, modify and distribute, including commercially, as long as you keep the copyright notice.