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 领域的进展,专注于产品研发,助力企业以简洁灵活的架构应对持续变化的数据挑战


JuiceFS
183 声望10 粉丝

JuiceFS 是一款面向云环境设计的高性能共享文件系统。提供完备的 POSIX 兼容性,可将海量低价的云存储作为本地磁盘使用,亦可同时被多台主机同时挂载读写。