历时 13 个月, JuiceFS v1.1 今天正式发布了!
这是继 v1.0 版本后,第二个长期维护的稳定版(LTS),与 v1.0 完全兼容。
JuiceFS 是为云环境设计的分布式文件系统,元数据和数据都可以借助已有的成熟组件来实现,避免重复造轮子,大大降低了复杂度,可以给用户提供简单易用且稳定可靠的统一文件存储方案。
目前,JuiceFS 支持 10 种以上元数据引擎和 30 种以上数据存储引擎,丰富的元数据和数据引擎选择使得用户可以灵活应对多变的企业环境和数据存储需求;同时,JuiceFS 兼容 POSIX、 HDFS、S3、WebDAV 访问协议,也可以在 Kubernetes 中作为持久卷(PV) 使用,完善的兼容性让数据能够在各个应用中流通自如。
新功能快速浏览:大规模数据管理更轻松
JuiceFS 在大数据、机器学习等场景中被广泛使用,用户的数据规模不断扩大,其中不乏文件数超过 100 亿的集群,如何管理好这海量的文件是目前的挑战。
为此,JuiceFS v1.1 引入了以目录为单位的空间使用统计,并新增如下功能:
- 目录配额:为目录设置配额限制,控制其大小和文件数,以防止个别用户占用过多资源影响整个系统的稳定性;
- 目录克隆:在需要复制大量文件的情境下,使用此功能可以仅拷贝元数据,实现快速复制目录及其内容,从而节省时间和空间;
- 快速查看用量信息:可以快速查看存储空间和文件数量的统计信息;
- 支持 FoundationDB 作为元数据引擎:这是一款由 Apple 公司开源的分布式数据库,具有高性能、高扩展性和高容错性的特点;
- 支持 GlusterFS 作为数据存储:进一步简化自建对象存储的扩容和运维问题,关于这个功能的详细介绍,请参考:JuiceFS 社区版 v1.1-beta2 发布:新增 Gluster 作为对象存储
更安全
- 减少权限安全隐患和防止误操作:在 mount 时通过
--root-squash
选项来将root
用户映射为一个非特权用户; - 可设置特殊标记位来控制文件的行为:在 mount 时通过
--enable-ioctl
选项开启对ioctl
的部分支持,如append only (a)
和immutable (i)
; - 防止因硬件异常导致的缓存数据错误:为本地缓存文件增加了完整性校验。
更稳定
解决与对接组件的兼容问题:
- 为 TiKV 添加独立的 GC 线程,解决其在没有部署 TiDB 组件时无法自行 GC 的问题
- 提升以 gateway 方式使用 JuiceFS,以及在 Hadoop 生态中使用时的兼容性
调整特定场景下的使用策略:
- 修复了高配机器上 FUSE 占用过多 CPU 问题
- 重构了数据对象清除控制方式,能更好地调节待删除对象的清理速度
- 增加了
cache-scan-internal
选项来自定义本地缓存的扫描时间,并且可以选择只在启动时扫描一次或完全关闭扫描 - 增加了
cache-eviction
选项来调整本地缓存清理策略 - 增加了
skip-dir-nlink
选项来减少在同一目录下并发创建目录导致的元数据事务冲突
修复可能导致客户端奔溃的 Bugs:
- 元数据引擎中某些值异常会导致客户端 panic
- 客户端在并发执行 truncate 和 release 操作时可能会死锁
更易用
- 一键收集诊断信息:提供一键生成诊断报告的功能,方便排查问题和提供反馈意见;
- 一键恢复回收站文件:可以一次性地恢复某段时间内所有被删除的文件,无需逐个操作;
- 无需挂载就可以进行数据同步:在使用
sync
工具时,新支持了jfs://
前缀来访问 JuiceFS 中的数据; - 自动添加开机启动:在 mount 时加上
--update-fstab
选项,会自动在系统中添加相同挂载参数的开机启动; - 提升了查看文件内部结构
info
命令的性能,且展示更多丰富有用的信息; - 增强了
fsck
命令,使其在一定条件下能修复损坏的目录信息; - 增强了垃圾回收
gc
命令,当待删除对象积累过多时可用其来执行手动清理; - 进一步提升了数据同步命令
sync
的性能,并添加了多个策略参数来应对不同的需求。
更多生产环境验证:社区使用规模成倍增长
JuiceFS 社区版于 2021 年 1 月正式开源,在全球范围内获得了众多用户的关注与应用。在文件存储领域,JuiceFS 已经成为增长速度最快的项目之一,目前在 GitHub上已获得 8.5K 颗星标 。 相比去年发布 JuiceFS v1.0 时,匿名上报的用户使用指标都有了大幅增长。
JuiceFS 最初为大数据平台上云设计,同时随着 AI 技术的持续发展,JuiceFS 在 AI 领域也有了越来越多的应用和案例,包括自动驾驶、 AIGC、大语言模型等场景。目前,将 JuiceFS 应用于生产环境的用户包括有移动云、航天宏图、小米、vivo、百度、携程旅行、大疆、理想汽车、思谋科技、上汽集团、地平线、云知声、深势科技、商汤、Shopee、知乎、网易游戏、一面数据等企业,还有济南超算中心、国家天文数据中心等。
这些社区用户也分享了他们在不同场景的实践:
- 理想汽车:从 Hadoop 到云原生的演进
- 乾象投资:基于JuiceFS 构建量化投研平台
- 金山云:基于JuiceFS 的 Elasticsearch 冷热数据管理实践
- 云知声: 基于 JuiceFS 的超算平台存储实践
- 中国电信:JuiceFS 在日均 PB 级数据场景的应用
- 豆瓣:使用 JuiceFS 实现统一的数据存储
- 之江实验室:如何为异构算力集群构建存储层
- 一面数据: 存算分离架构设计与实践
- 思谋科技:构建易于运维的 AI 训练平台
- 网易游戏:大数据平台上云架构设计与实践
- 多点DMALL :大数据存算分离下的存储架构探索与实践
社区持续活跃,共建云原生生态
在过去的 13 个月中,社区版 JuiceFS 一直保持着高度活跃的状态。新增的 issue 数量达到 410 个,合并的 PR 数量为 920 个,贡献者人数更是达到了 102 人,较前一年增长100% 。
社区用户的规模也在不断壮大,中文社区已建立了第 6 个微信群。社区交流活动也在积极推进,每两周举行一次线上 Office Hours 活动,每月举办一次 Meetup,确保用户可以通过多种渠道交流问题。
值得一提的是,在过去一年中,JuiceFS 在海外也获得了越来越多的关注,海外用户贡献了 30% 的 Issues 和 24% 的 Pull Requests;在使用社区版的用户中,海外用户占比超 30%,其中美国 16.9%,欧洲 8.1%,亚洲 6.1%(中国大陆以外地区)。
JuiceFS 社区版采用 “Apache 2.0” 许可,使用户可以放心将 JuiceFS 应用于各种商业环境。这不仅允许用户根据自身需求进行二次改进,还便于与上下游应用进行更深度的融合,共建云原生生态。在 v1.1 版本中,JuiceFS 和 Fluid 在数据迁移、目录配额和 JuiceFSRuntime 等方面进行了多项优化。
以下这些备受期待的功能将在未来的版本中逐步实现,欢迎大家一起来共建:
- 分布式数据缓存
- 支持 Kerberos 和 Ranger
- 挂载点平滑升级
- POSIX ACLs
- 用户和组配额
🔗JuiceFS v1.1 下载链接:https://github.com/juicedata/juicefs/releases/tag/v1.1.0
👀 升级注意事项:https://juicefs.com/docs/zh/community/release_notes#juicefs-v11
在开源的两年多时间里,JuiceFS 走进了全球上百家企业,衷心感谢每一位社区成员! 谢谢你们反馈的问题、解答的疑问、贡献的代码、分享的实践经验,都让 JuiceFS 变得更强大、更易于使用。