灵活且不失高性能,这个 POSIX 共享文件系统值得一用
项目名称: JuiceFS 项目作者: Juicedata 开源许可协议: AGPL-3.0 项目地址: https://gitee.com/juicedata/JuiceFS 项目简介 JuiceFS 是一个建立在 Redis 和 S3 等对象存储之上的开源 POSIX 文件系统。它是为云原生环境设计,通过把元数据和数据分别持久化到 Redis 和对象存储中,它相当于一个无状态的中间件,帮助各种应用通过标准的文件系统接口来共享数据。 项目特性 完整 POSIX 兼容:已有应用可以无缝对接; 极致的性能:毫秒级的延迟,近乎无限的吞吐量(取决于对象存储规模); 云原生:完全弹性,很容易实现存储和计算分离架构; 共享:可以被多个客户端同时读写; 文件锁:支持 BSD 锁(flock)及 POSIX 锁(fcntl); 数据压缩:默认使用 LZ4 压缩数据,节省存储空间。 项目架构 JuiceFS 使用 Redis 来存储文件系统的元数据。Redis 是一个开源的内存数据库,可以保障元数据的高性能访问。所有文件的数据会通过客户端存储到对象存储中,以下是它的架构图: JuiceFS 中的文件格式,如下图所示。一个文件首先被拆分成固定大小的 "Chunk",默认 64 MiB。每个 Chunk 可以由一个或者多个 "Slice" 组成,它们是变长的。对于每一个 Slice