这个项目能做什么

JuiceFS 是一个在 Apache License 2.0 下发布的高性能 POSIX 文件系统,专为云原生环境设计。通过 JuiceFS 写入的文件会持久化到对象存储(例如 Amazon S3 或其他 S3 兼容服务),而文件名、大小、权限、时间戳和目录结构等元数据则保存在单独的元数据引擎中。支持的元数据引擎包括 Redis、MySQL、SQLite 和 TiKV,因此可以根据不同场景和需求调整部署。 该项目描述了三个主要部分:JuiceFS 客户端,负责协调对象存储和元数据引擎并实现文件系统接口;数据存储层,可以使用本地磁盘、公有云或私有云对象存储,或 HDFS;以及元数据引擎。文件被拆分为块(默认上限 64 MiB),块再拆分为切片,切片再拆分为存储到对象存储中的区块(默认 4 MiB)。由于这种布局,源文件无法在对象存储浏览器中直接看到;存储桶中包含一个 chunks 目录,其中有带编号的目录和文件。 README 中列出的突出能力包括:完整的 POSIX 兼容性、兼容 Hadoop 2.x 和 3.x 的 Hadoop Java SDK、S3 兼容网关、Kubernetes CSI 驱动、数千个客户端的共享读写访问、强一致性(已确认的修改会立即对所有已挂载客户端可见)、低延迟和可扩展吞吐量、传输中和静态加密、全局文件锁(BSD flock 和 POSIX fcntl),以及使用 LZ4 或 Zstandard 的数据压缩。README 还提到 close-to-open 一致性、原子重命名和元数据操作、unlink 后仍可访问已打开文件、mmap、支持 punch hole 的 fallocate,以及扩展属性。它指出 JuiceFS 在最新的 pjdfstest 中通过了全部 8813 项兼容性测试。 开始使用需要受支持的元数据引擎、受支持的对象存储和 JuiceFS 客户端。文档涵盖快速入门指南、命令参考、容器(Docker 和 Podman)、Kubernetes、Hadoop Java SDK、Redis 最佳实践、对象存储设置、缓存、故障诊断、FUSE 挂载选项、Windows 使用和 S3 网关。基准测试通过 JuiceFS 子命令提供,此外还有 fio 顺序读写和 mdtest 元数据与 EFS 和 S3FS 的对比;README 将这些呈现为有利结果,并链接到详细信息。 支持的对象存储包括 Amazon S3 和 S3 兼容服务、Google Cloud Storage、Azure Blob Storage、阿里云 OSS、腾讯云 COS、七牛云 Kodo、QingStor、Ceph RGW、MinIO、本地磁盘和 Redis 等。README 表示 JuiceFS 已可用于生产环境,并被数千台机器使用,还提供了采用者列表和集成文档。存储格式被描述为稳定,并会得到未来版本的支持。路线图提到网关优化、可恢复同步、预读优化、大规模场景优化和快照。 JuiceFS 默认收集匿名使用数据,仅报告版本号等核心指标,可以通过 --no-usage-report 选项禁用。其设计灵感来自 Google File System、HDFS 和 MooseFS。社区支持可通过 GitHub Discussions 和 Discord 获得,问题在 GitHub 上跟踪。