JuiceFS 企业版 5.0 新特性速览

2023-11-17
Juicedata Team

JuiceFS 企业版 5.0 近期正式对外发布。

新版本首先带来了几个重要的新功能:支持共享块设备;把文件从分块格式合并还原成完整文件进行存储的“转存”功能;以及导入对象存储已有数据缓存支持。此外,还着重改善了分布式缓存相关的易用性和可观测性,相信能更好地满足高性能计算场景的需求。

JuiceFS 企业版是面向海量文件高性能计算场景的分布式文件系统,适用场景包括 AI 与机器学习模型训练、高性能计算等。

大幅改进缓存管理能力

缓存管理方面,尤其是分布式缓存,JuiceFS 企业版 5.0 做了诸多优化:

  • 提升缓存可观测性:用户现在可以检查特定文件或目录的缓存状态,增强了对缓存使用情况的监控。

  • 主动清除缓存:提供了主动清除特定文件或目录缓存的能力,使用户能够更加灵活地控制缓存资源。客户端删除文件后,其所在的缓存组也会主动清理相关数据、释放空间。

  • 支持异构的缓存集群:支持为不同节点设置独立权重,还可以主动下线特定节点以迁移上面的缓存数据,实现更精细化的资源分配。

  • 自动故障感知:自动识别并移除出现故障(如卡顿或 EIO 错误)的缓存盘,从而增强系统可靠性。

  • 均衡性改进:改善了缓存节点间的均衡性,提升整体命中率。

  • 多种缓存淘汰策略:允许用户在挂载时选择缓存淘汰策略,目前支持 2-random 和 noeviction。

  • 数据完整性校验:默认对所有缓存数据执行完整性校验,避免磁盘损坏或者数据被篡改时的静默错误。

支持共享块设备做数据持久化

当用户需要进行高负载的小文件写入,或者大量的随机写入操作,比如 EDA、CV 训练、Elasticsearch、ClickHouse 等应用,它们通常涉及频繁的小型 I/O 操作。这些小型请求上传到对象存储时,由于对象存储本身的延迟较高,导致整体性能通常较差。

为了解决这个问题,JuiceFS 之前的版本中提供“客户端写缓存”功能,它允许用户将数据临时存储在本地缓存,然后再以异步方式上传到对象存储。然而写缓存的待上传数据会面临更大数据安全风险,并且持久化未完成时,其他客户端也读不到这些数据,因此实际使用场景非常受限。

在 5.0 中,JuiceFS 新增支持多挂载的共享块设备作为写缓存,或者直接作为数据存储引擎来使用,有效解决上述问题。在使用时,多个客户端需要同时挂载同一个块设备,如下图所示:小 IO 直接写入共享块设备,而大 IO 按原有流程直接发送到对象存储。同时利用上块设备的低延迟写入,和对象存储的大吞吐。

数据流通示意图
数据流通示意图

共享块设备还支持更丰富的用法,比如让数据暂存于块设备,一段时间后转存至对象存储,或者小于设定阈值的写请求固定保存在块设备,请参考文档

为对象存储中已有数据提供加速访问

许多用户已经在对象存储中积累了大量数据,并且希望能使用 JuiceFS 访问这些存量数据,比方说想通过 POSIX 接口访问,或者实现与 Hadoop 生态系统的无缝对接。

JuiceFS 企业版 5.0 支持直接导入对象存储中的已有文件,具体而言,这个功能会扫描指定对象存储桶中的所有对象,然后在 JuiceFS 中生成对应的元数据,令其在 JuiceFS 文件系统中以只读方式访问。

如下图所示,直接写入 JuiceFS 的文件会被拆块存储,而导入(import)的文件会原样保存在对象存储,客户端对导入文件的访问是只读的,并且读取的时候,同样支持 JuiceFS 的本地缓存和分布式缓存

将分块格式文件“转存”为对象

JuiceFS 默认会将文件进行分块存储,并将元数据与数据剥离(称为“分块格式”)。正是这样的存储格式和分离架构,让 JuiceFS 得以成为高性能、强一致性文件系统。然而,在需要直接从对象存储读取文件的场景中,这种设计可能导致不便。例如,在数据归档场景,由于 JuiceFS 文件分块策略使得筛选冷热数据的条件设置变得复杂。另外,某些合规性要求可能需要在对象存储中保留文件的原始格式。

JuiceFS 5.0版本中推出了新功能:文件自动转存成对象。该功能允许在文件一段时间内未发生修改后,自动将其合并为一个单一的对象。因为对象存储不支持高效的重命名和修改操作,因此转存后的文件也不允许重命名和修改。和上方介绍的“导入”功能类似,转存后的对象同样支持缓存。

导入和转存功能,在我们的文档中有更详细介绍。

有关 5.0 的更详细内容,还可观看视频:

相关博客

全新 JuiceFS Python SDK 快速上手

2024-10-14
JuiceFS 5.1 商业版推出了全新的 Python SDK,适用于云服务和企业版。一方面可以让用户绕过 FUSE 模块直接以编程的方式读写 JuiceFS 文件系统,另一方面也方便用户集成 J…

JuiceFS 企业版 5.1:新增可写镜像、Python SDK 多项特性 ,强化 AI 场景支持

2024-09-14
JuiceFS 企业版 5.1 正式发布,为了更好地适应企业在多云和混合云架构下的数据管理,支持更广泛的 AI 应用场景,新版本增添了多项新特性,并在系统性能、可观测性方面等进行了全面的优化。

极限挑战:使用 Go 打造百亿级文件系统的实践之旅

2024-02-02
本文介绍了 JuiceFS 在设计元数据引擎时所做的关键决策,并详细介绍了内存池、自主管理小块内存、压缩空闲目录以及优化小文件格式这 4 个内存优化手段。

从架构到特性:JuiceFS 企业版首次全面解析

2023-06-06 高昌健
大多数用户是通过社区版初次接触 JuiceFS,企业版对大家来说可能比较陌生。与其他开源项目不同的是,JuiceFS 企业版比社区版更早发布,社区版的架构设计大量参考了企业版。对 JuiceFS 用…