# JuiceFS — Cloud-Native POSIX File System Built on Object Storage > A high-performance distributed file system that stores data in object storage like S3 while keeping metadata in Redis, PostgreSQL, or MySQL for cloud-native workloads. ## Install Save in your project root: # JuiceFS — Cloud-Native POSIX File System Built on Object Storage ## Quick Use ```bash # Install the client curl -sSL https://d.juicefs.com/install | sh - # Format a new volume using Redis for metadata and S3 for data juicefs format --storage s3 --bucket https://mybucket.s3.amazonaws.com redis://localhost:6379/1 myvol # Mount the volume sudo juicefs mount redis://localhost:6379/1 /mnt/jfs ``` ## Introduction JuiceFS is a POSIX-compatible distributed file system that decouples data storage from metadata management. Data lives in any S3-compatible object store while metadata resides in engines like Redis, TiKV, or PostgreSQL. This architecture delivers high throughput and strong consistency for AI training, big data analytics, and shared storage scenarios at a fraction of the cost of traditional network file systems. ## What JuiceFS Does - Provides a fully POSIX-compliant mount point backed by object storage - Separates metadata (Redis, MySQL, PostgreSQL, TiKV) from data (S3, GCS, Azure Blob, MinIO) - Supports Kubernetes CSI driver for persistent volumes in containerized workloads - Offers a Hadoop-compatible Java SDK for Spark, Hive, and Presto integration - Includes built-in data compression, encryption, and tiered caching ## Architecture Overview JuiceFS splits every file into fixed-size chunks stored as objects in the configured backend. A metadata engine tracks the file tree, permissions, and chunk mappings. Clients communicate with the metadata engine for namespace operations and read/write data directly to object storage. A local disk cache accelerates repeated reads, and the FUSE or CSI interface makes the volume transparent to applications. ## Self-Hosting & Configuration - Deploy the single Go binary on Linux, macOS, or within containers - Choose a metadata engine: Redis for lowest latency, PostgreSQL or MySQL for durability - Set `--storage` and `--bucket` flags to point at your object store - Configure cache size and path with `--cache-dir` and `--cache-size` for read performance - Use the Kubernetes CSI driver to provision JuiceFS volumes declaratively ## Key Features - POSIX compliance lets existing applications work without code changes - Elastic storage that scales with object store capacity, no resharding needed - Client-side AES-256 encryption for data at rest in untrusted object stores - Built-in LZ4 or Zstandard compression reduces storage costs - Hadoop SDK enables direct integration with Spark and Hive without FUSE overhead ## Comparison with Similar Tools - **CephFS** — full-featured but operationally complex; JuiceFS offloads data to cheap object storage - **SeaweedFS** — combines metadata and data in a custom store; JuiceFS uses commodity S3 - **GlusterFS** — block-replicated; JuiceFS leverages object store durability instead - **Alluxio** — caching layer without persistent storage; JuiceFS is a full file system - **EFS / Filestore** — managed cloud NFS; JuiceFS is self-hosted and cloud-agnostic ## FAQ **Q: Which metadata engine should I choose?** A: Redis offers the lowest latency for most workloads. PostgreSQL or MySQL are better when you need transactional durability and already operate those databases. **Q: Can I use JuiceFS with Kubernetes?** A: Yes. The official CSI driver provisions persistent volumes backed by JuiceFS, supporting ReadWriteMany access mode. **Q: Is the data encrypted?** A: JuiceFS supports client-side AES-256-GCM encryption. Data is encrypted before it leaves the client, so the object store never sees plaintext. **Q: How does caching work?** A: Clients maintain a local disk cache for recently read data. Cache size and eviction policies are configurable per mount. ## Sources - https://github.com/juicedata/juicefs - https://juicefs.com/docs/community/introduction/ --- Source: https://tokrepo.com/en/workflows/7bbe2e2f-3d5a-11f1-9bc6-00163e2b0d79 Author: AI Open Source