同步操作将从 Juicedata/JuiceFS 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
JuiceFS 是一个建立在 Redis 和 S3 等对象存储之上的开源 POSIX 文件系统。它是为云原生环境设计,通过把元数据和数据分别持久化到 Redis 和对象存储中,它相当于一个无状态的中间件,帮助各种应用通过标准的文件系统接口来共享数据。
主要特性有:
架构 | 开始使用 | POSIX 兼容性 | 性能测试 | 支持的对象存储 | 状态 | 产品路线图 | 反馈问题 | 贡献 | 社区 | 使用量收集 | 开源协议 | 致谢 | FAQ
JuiceFS 使用 Redis 来存储文件系统的元数据。Redis 是一个开源的内存数据库,可以保障元数据的高性能访问。所有文件的数据会通过客户端存储到对象存储中,以下是它的架构图:
JuiceFS 中的文件格式,如下图所示。一个文件首先被拆分成固定大小的 "Chunk",默认 64 MiB。每个 Chunk 可以由一个或者多个 "Slice" 组成,它们是变长的。对于每一个 Slice,又会被拆分成固定大小的 "Block",默认为 4 MiB(格式化后就不可以修改)。最后,这些 Block 会被压缩和加密保存到对象存储中。压缩和加密都是可选的。
你可以直接下载预编译的版本:二进制版本。
你需要先安装 Go,然后通过下面的方式来编译:
$ git clone https://github.com/juicedata/juicefs.git
$ cd juicefs
$ make
需要 Redis(2.2 及以上)服务器来存储元数据,请参考 Redis Quick Start。
如果是 macOS 系统,还需要 macFUSE。
还需要一个对象存储,测试时可以用本地目录代替。
假定你已经有一个本地运行的 Redis 服务,下面用它来格式化一个叫做 test
的文件系统:
$ ./juicefs format localhost test
它会使用默认参数来格式化。如果 Redis 服务不在本地,你可以像这样完整填写它的地址:redis://username:password@host:6379/1
。
JuiceFS 还需要一个对象存储,可以通过参数 --storage
、--bucket
、--accesskey
和 --secretkey
来指定。它默认会使用本地目录来模拟一个对象存储用于测试,详细的参数请看 ./juicefs format -h
。
一旦文件系统格式化好了,你可以把它挂载成一个目录,这个目录叫做 挂载点。
$ ./juicefs mount -d localhost ~/jfs
挂载之后你可以像使用本地盘一样使用它,详细的挂载参数,请运行 ./juicefs mount -h
。
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
使用 fio 测试了 JuiceFS、EFS 和 S3FS 的顺序读写性能,结果如下:
上图显示 JuiceFS 可以比其他两者提供 10 倍以上的吞吐,详细结果请看这里。
使用 mdtest 测试了 JuiceFS、EFS 和 S3FS 的元数据性能,结果如下:
上图显示 JuiceFS 的元数据性能显著优于其他两个,详细的测试报告请看这里。
完整的支持列表,请参照 juicesync。
JuiceFS 目前是 beta 状态,核心的存储格式还没有完全确定,还不建议使用到生产环境中。如果你对它有兴趣,请尽早测试,并给我们反馈。
我们使用 GitHub Issues 来管理社区反馈的问题,你也可以通过其他渠道跟社区联系。
感谢你的兴趣,请参考 CONTRIBUTING.md。
欢迎加入 Discussion 和 Slack channel 跟我们的团队和其他社区成员交流。
JuiceFS 的客户端会收集 匿名 使用数据来帮助我们更好地了解大家如何使用它,它只上报诸如版本号等使用量数据,不包含任何用户信息,完整的代码在这里。
你也可以通过下面的方式禁用它:
$ ./juicefs mount --no-usage-report
使用 GNU AGPL v3.0 开源,详见 LICENSE。
JuiceFS 的设计参考了 Google File System、HDFS 以及 MooseFS,感谢他们的杰出工作。
已经支持了绝大部分对象存储,参考这个列表。如果它跟 S3 兼容的话,也可以当成 S3 来使用。否则,请到 juicesync 创建一个 issue 来增加支持。
不可以。JuiceFS 使用了 Redis 的事务功能来保证元数据操作的原子性,而分布式版还不支持分布式事务。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。