共计 1065 个字符,预计需要花费 3 分钟才能阅读完成。
项目名称: 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,又会被拆分成固定大小的 “Block”,默认为 4 MiB(格式化后就不能够批改)。最初,这些 Block 会被压缩和加密保留到对象存储中。压缩和加密都是可选的。
性能测试
程序读写性能
应用 fio 测试了 JuiceFS、EFS 和 S3FS 的程序读写性能,后果如下:
上图显示 JuiceFS 能够比其余两者提供 10 倍以上的吞吐。
元数据性能
应用 mdtest 测试了 JuiceFS、EFS 和 S3FS 的元数据性能,后果如下:
上图显示 JuiceFS 的元数据性能显著优于其余两个。
开发者说
JuiceFS 的翻新架构更合乎云原生的发展趋势,咱们一开始就以 SaaS 的模式将它提供给私有云的客户,让客户分钟级就能够取得 PB 级企业文件存储服务。同时,咱们也和行业当先的对象存储厂商一起服务公有云客户。
咱们深信文件系统是最好的治理非结构化数据的形式,对象存储只实用于某些简略场景。分布式文件系统始终是根底软件中难啃的骨头,JuiceFS 通过对文件系统中元数据和数据的独立形象,大大减低了零碎复杂度,使得文件系统可能借助这些年来对象存储和分布式数据库的停顿,治理超大规模的数据。同时,复杂度的升高能够让更多的开发者参加进来,将来更多的利用也会建设在文件系统接口之上。