JuiceFS 企业版 5.2 版本近日发布,文件管理规模迈入千亿级。此次升级重点提升了超大规模集群的稳定性,优化了分布式缓存的网络性能,并增强了系统的易用性与安全性,旨在支持高并发访问等复杂的高性能应用场景。
JuiceFS 企业版专为高性能场景设计,自 2019 年起开始应用于机器学习领域,现已成为 AI 行业核心基础设施之一。我们的商业客户涵盖大模型公司,如 MiniMax、智谱 AI、阶跃星辰;GenAI 服务与应用提供商如 Lepton AI、Fal.ai、LiblibAI 等;自动驾驶领域的 Momenta、地平线等,以及众多应用 AI 技术的各行业领先科技企业。
01 超大规模稳定性提升:支持千亿文件规模
AI 场景,尤其是在自动驾驶等领域,数据量增长迅猛。例如,单辆自动驾驶汽车每天可产生高达 20TB 的数据,随着自动驾驶技术的普及,这一数据量将以指数级增长。分布式文件系统不仅要满足现有业务的容量需求,更要具备支撑未来持续扩展的能力。
然而,实现从百亿到千亿规模的突破,对分布式文件系统提出了诸多严峻挑战,包括如何管理复杂度大幅提升的元数据,如何在高并发环境下扩展性能的同时依然保持强一致性,如何平滑扩展规模的同时又能保持系统稳定。
多分区机制通过元数据分区和并行处理,是 JuiceFS 应对大规模集群的核心策略。5.2 版本通过优化多分区机制的稳定性和内存压缩策略,实现了文件规模的再次突破。5.2 版本还针对多分区机制在各种极端场景下的问题进行了修复,进一步增强了系统的可靠性。
该优化方案已在多个企业的生产环境中得到充分验证,单个集群管理文件数量超过 500 亿,元数据请求的平均延迟稳定在 1ms 左右。同时,日常读写带宽分别达到 50 GiB/s 和 30 GiB/s,峰值读速超过 200 GiB/s。
为进一步验证新版本在高并发元数据处理和系统稳定性方面的表现,我们在内部部署了一个更大规模的测试集群,使用 mdtest 工具在 12 小时内写入了 1300 亿文件,并在此规模下维持了 24 小时的混合负载。
硬件配置:
- 36 台 GCP c3-standard-176 服务器
- 每台配备 176 个 vCPU、704GB 内存和 100Gbps 网络接口
性能表现:
- 累计写入超过 1300 亿个文件
- 元数据集群稳定地维持了平均每秒 800 万 IOPS
02 分布式缓存网络优化,实现 TiB 级聚合带宽
随着数据量与模型规模的爆炸性增长,多个客户端频繁访问相同数据的场景愈加普遍。分布式缓存通过聚合多个节点的本地缓存形成大容量缓存池,提升缓存命中率,增强读带宽和 IOPS,降低读延迟,满足高性能需求。
然而,节点间的数据交换极度依赖网络性能。带宽不足会限制传输速度,增加延迟;网络延迟过高会影响缓存响应,降低系统效率;同时,网络数据处理消耗的 CPU 资源也可能成为瓶颈,限制整体性能。
在 5.2 版本中,我们针对分布式缓存节点间的网络传输进行了多项优化,具体优化包括:
- 采用零拷贝,减少系统调用和数据拷贝;
- 采用多路复用,小包合并和设置 socket 参数 SO_RCVLOWAT(接收低水位线)解决网络碎片化导致的 CPU 利用率下降问题;
- 优化了 CRC 校验流程,降低 CPU 开销。这些优化显著提升了分布式缓存性能,降低系统延迟,满足高并发和大规模访问需求。
企业版 5.2 的关键性能提升可以参考以下图表:
从图表中可以看出,经过一系列优化后,5.2 版本显著降低了 CPU 的开销:客户端的 CPU 开销降低了一半以上,缓存节点的 CPU 开销也得益于零拷贝技术,降低到优化前的 1/3。
JuiceFS 5.2 版本相比 5.1, 对网络带宽的利用率更高,15 台 GCP 200Gbps 节点的规模下聚合带宽提高了约 20%;此外,我们还搭建了由 100 台 GCP 100Gbps 节点组成的分布式缓存集群,使用 fio 工具进行连续读取测试时,聚合读带宽达到了 1.2 TB/s,接近跑满 TCP/IP 的网络带宽,表明系统具有更强的水平扩展能力,在大规模环境下也能充分发挥硬件性能,支撑高并发、大数据量的访问需求。
03 首次发布 Windows 客户端(Beta)
在 Windows 系统中,许多用户一直希望能够使用 JuiceFS 实现文件共享。由于早期版本的 Windows 客户端存在不少稳定性和兼容性问题,因此一直处于内部测试阶段。在新版本中,我们首次正式发布了 Windows 客户端(Beta)。在这个版本中,我们全面提升了其整体可用性和稳定性,使它能够满足大多数日常使用场景的需求。主要包括以下优化:
- 修复了 Windows 客户端在 API 调用和用户身份管理等方面存在的多个兼容性问题;
- 完善了工具支持,目前 debug、stat、info 等子命令已可在 Windows 平台下正常使用;
- 新增了对后台运行参数的支持,使 JuiceFS 可以直接作为系统服务进行挂载,无需再借助第三方工具。
欢迎有需求的用户下载体验,并反馈您在使用过程中遇到的任何问题。我们将积极配合进行修复优化,为 Windows 用户提供更优质的使用体验。
04 其他重要功能优化
功能改进
- 提高 Python SDK 的兼容性,进一步改善性能。
- 优化共享块设备特性:JuiceFS 允许客户端使用块设备来加速数据读写。此前版本中需要将块设备挂载到每一个需要加速的客户端节点,因此要求块设备本身支持多机挂载。新版本中去掉了此约束条件,允许仅挑选一个客户端将块设备挂载到本地,其它客户端通过网络来共享访问此块设备。
- 按需导入对象存储文件:JuiceFS 支持将对象存储中的已有对象导入到文件系统中,从而提供跨协议访问和数据缓存的能力。但当需要导入的对象数很多时,一次性完整导入会给元数据服务带来较大的压力,而且耗时也比较久。新版本中提供了按需导入的功能,用户仅需配置好文件系统跟存储桶的关联即可,对象不会被立即导入,而是在首次访问时触发导入。
- 支持不同大小的缓存盘:数据缓存是 JuiceFS 提供的核心能力之一。此前版本要求所有本地缓存盘必须大小一致。新版本中放宽了此限制,允许客户端通过权重机制同时使用不同大小的缓存盘,提高缓存灵活性和资源利用率。
稳定性
- 改善读放大问题:JuiceFS 设计了一系列预读和预取的策略来提升读取文件的性能。然而在某些特定场景中,这些策略反而会带来不可忽略的读放大问题,浪费了对象存储带宽。新版本中我们重新评估并调整了这些策略,大幅减小了在读取特定规模文件,以及进行 4 MiB 随机读等场景下的读放大现象。
- 更强的全局 QoS 能力:文件系统全局的 QoS 需要元数据服务主控。当客户端数量增加时,维护 QoS 而产生的额外消息也成倍增多,甚至影响到正常的业务请求。新版本中对 QoS 相关的请求做了合并,大大减小了其对元数据服务的压力。
易用性
- 控制台一键升级客户端:版本升级是软件维护的必然需求。之前版本中,JuiceFS 客户端的升级需要用户运维人员登陆到每一个客户端节点,执行对应的升级命令。在新版本中,控制台上直接提供了一键升级的按钮,方便运维人员快速完成升级。
- 一键获取客户端 debug 信息:与上一个升级功能类似,新版本中当我们需要收集某一个客户端的 debug 信息时,不再需要登陆到对应节点执行 debug 命令,而是可以在控制台上直接执行并下载结果文件。
- 支持通过 restore 命令来辅助回收站文件恢复:当用户需要恢复的文件需要进行多个关键字过滤,或者有一个完整的文件列表时,新版本的 restore 命令不仅更方便使用,还提供了更优的性能。
安全性
- 对象存储访问凭证加密:客户端本地的配置文件中记录了对象存储的 access key 和 secret key 等访问凭证,一旦泄漏可能对用户的数据产生毁灭性的影响。新版本中默认对这些访问凭证进行了 AES 加密,且禁止操作者显式解密。
05 小结
JuiceFS 企业版 5.2 实现了从百亿级到千亿级文件规模的突破,为 AI 场景数据的持续增长提供了坚实基础。新版本通过优化分布式缓存网络性能,大幅降低了 CPU 开销,网络性能提升至 TiB 级带宽。同时,首次发布了 Windows 客户端(Beta)版本,并对多个关键特性进行了优化,进一步增强了系统的性能、可用性和稳定性。
云服务用户现已可以直接在线体验 JuiceFS 企业版 5.2 版本。私有部署用户也可通过官方渠道获得升级支持。
5.2 版本的优化是基于客户的实际需求和行业发展趋势。我们将继续紧密关注 AI 领域的进展,专注于产品研发,助力企业以简洁灵活的架构应对持续变化的数据挑战
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。