JuiceFS是在Apache License 2.0下发布的高性能POSIX文件系统,专为云原生环境而设计。通过JuiceFS存储的数据将保留在对象存储(例如Amazon S3)中,并且相应的元数据可以根据场景和要求保留在Redis,MySQL和TiKV等各种数据库引擎中。
借助 JuiceFS,海量云存储可以直接连接到生产环境中的大数据、机器学习、人工智能和各种应用平台。无需修改代码,海量云存储可以像本地存储一样高效使用。
架构|入门|高级主题 |POSIX 兼容性|性能基准|支持的对象存储|谁在使用|路线图|报告问题|贡献|社区|使用情况跟踪|许可证|鸣谢 |常见问题
JuiceFS由三部分组成:
JuiceFS可以将文件系统的元数据存储在Redis上,这是一种快速,开源,内存中的键值数据存储,特别适合存储元数据;同时,所有数据都将通过JuiceFS客户端存储在对象存储中。了解更多信息
存储在JuiceFS中的每个文件都以固定大小拆分为“Chunk”,默认上限为64 MiB。每个块由一个或多个“切片”组成,切片的长度因文件的写入方式而异。每个切片由大小固定的“块”组成,默认情况下为4 MiB。这些块最终将存储在对象存储中;同时,文件及其块、切片和块的元数据信息将通过 JuiceFS 存储在元数据引擎中。了解更多信息
使用JuiceFS时,文件最终将被拆分为块,切片和块并存储在对象存储中。因此,存储在JuiceFS中的源文件无法在对象存储平台的文件浏览器中找到;相反,存储桶中只有一个块目录和一堆数字编号的目录和文件。不要惊慌!这只是JuiceFS高性能操作的秘诀!
在开始之前,请确保你拥有:
请参考快速入门指南,立即开始使用JuiceFS!
请查看命令参考中的所有命令行选项。
在 Kubernetes 上使用 JuiceFS 也非常容易。请在此处找到更多信息。
如果你想在Hadoop中使用JuiceFS,请查看Hadoop Java SDK。
有关更多信息,请参阅 JuiceFS 文档中心。
JuiceFS已经通过了最新的pjdfstest中的所有兼容性测试(总共8813次)。
All tests successful. Test Summary Report ------------------- /root/soft/pjdfstest/tests/chown/00.t (Wstat: 0 Tests: 1323 Failed: 0) TODO passed: 693, 697, 708-709, 714-715, 729, 733 Files=235, Tests=8813, 233 wallclock secs ( 2.77 usr 0.38 sys + 2.57 cusr 3.93 csys = 9.65 CPU) Result: PASS
除了pjdfstest所涵盖的POSIX功能外,JuiceFS还提供:
JuiceFS 提供了一个子命令,可以运行一些基本的基准测试,以帮助你了解它在环境中的工作原理:
fio还在JuiceFS,EFS和S3FS上执行了顺序读/写基准测试。
上面的结果图显示,JuiceFS可以提供比其他两个多10倍的吞吐量(查看更多详细信息)。
mdtest已经在JuiceFS,EFS和S3FS上执行了一个简单的mdtest基准测试。
结果表明,JuiceFS 可以提供比其他两个元数据 IOPS 多得多的元数据 IOPS(查看更多详细信息)。
JuiceFS 的根目录中有一个虚拟文件,用于显示文件系统操作的所有详细信息及其所花费的时间,例如:
.accesslog
$ cat /jfs/.accesslog
2021.01.15 08:26:11.003330 [uid:0,gid:0,pid:4403] write (17669,8666,4993160): OK <0.000010>
2021.01.15 08:26:11.003473 [uid:0,gid:0,pid:4403] write (17675,198,997439): OK <0.000014>
2021.01.15 08:26:11.003616 [uid:0,gid:0,pid:4403] write (17666,390,951582): OK <0.000006>
每行的最后一个数字是当前操作所花费的时间(以秒为单位)。你可以直接使用它来调试和分析性能问题,或尝试监视实时统计信息。请运行或参考此处以了解有关此子命令的更多信息。
./juicefs profile /jfs
./juicefs profile -h
JuiceFS支持几乎所有的对象存储服务。了解更多。
JuiceFS已准备好生产,并在生产中被数千台机器使用。此处已收集并记录了用户列表。此外,JuiceFS有几个与其他开源项目集成的合作项目,我们在这里进行了记录。如果你也在使用JuiceFS,请随时告诉我们,欢迎你与大家分享你的具体经验。
存储格式稳定,所有未来版本都将支持。
我们使用 GitHub 问题来跟踪社区报告的问题。如有任何问题,你也可以联系社区。
感谢你的贡献!有关详细信息,请参阅 CONTRIBUTING.md。
欢迎加入讨论和Slack频道,与JuiceFS团队成员和其他用户联系。
JuiceFS默认收集匿名使用数据,以帮助我们更好地了解社区如何使用JuiceFS。仅报告核心指标(例如版本号),不包括用户数据和任何其他敏感数据。相关代码可以在此处进行编辑。
你还可以通过命令行选项轻松禁用报告:
--no-usage-report
juicefs mount --no-usage-report
JuiceFS在Apache License 2.0下开源,参见LICENSE。
JuiceFS的设计灵感来自Google File System,HDFS和MooseFS。感谢他们的出色工作!
JuiceFS支持许多对象存储。请先查看此列表。如果你要使用的对象存储与 S3 兼容,则可以将其视为 S3。否则,请尝试报告问题。
是的。由于 v1.0.0 Beta3 JuiceFS 支持使用 Redis Cluster 作为元数据引擎,但需要注意的是,Redis Cluster 要求一个事务中所有操作的密钥必须位于同一个哈希槽中,因此 JuiceFS 文件系统只能使用一个哈希槽。
有关详细信息,请参阅“Redis 最佳实践”。
有关详细信息,请参阅“与他人比较”。
有关更多常见问题解答,请参阅完整列表。