云厂商会提供一些方案,比如像阿里云的 NAS , AWS EFS 之类;另外一类是像阿里云的 CPFS 方案,AWS 的 FSx 方案 。这两类文件系统的吞吐是与容量强绑定的,当容量越大的时候,吞吐会越大,跟 NAS 的存储性质是直接相关的 。这样的方案 , 在面对小量的热数据的时候不太友好,需要额外的优化才能达到比较好的表现 。另外 CPFS 或者阿里云上的极速型 NAS,对低延时的读取很友好,但缺点是成本比较高 。
就各自官网展示的价格,我们做了个对比 。各类高性能 NAS 产品的成本大概是 1500-2000元/TB/月,JuiceFS 整体的成本会低很多 , 因为 JuiceFS 的底层存储是对象存储。JuiceFS 的成本分成这样几个部分:对象存储的存储费用;JuiceFS 云服务的费用;以及SSD 缓存产生的成本 。综合来看,JuiceFS 的整体成本远低于 NAS 和其他方案的成本 。
在吞吐方面,早期做了一些测试,当节点数量比较少的时候,直接用 CPFS 跟做 JuiceF 对比,同时读取性能不会有很大的差异 。但是当节点数变大之后,因为 NAS 类文件系统有带宽限制,读取时间整体都拉长了 , 而 JuiceFS 只要做好缓存集群的部署 , 可以非常轻松的支撑下来,并且没有太大的开销,下图场景是部署了总带宽约为 300Gb 左右的集群 。

文章插图
除了成本和吞吐以外,在技术选型时,JuiceFS 对上文提到的功能 Full POSIX、权限控制、Qos、Kubernetes 都能够比较好的支持;
值得一提的是JuiceFS 的缓存集群能力,它能够实现灵活的缓存加速 。最开始时,我们使用计算节点做本地缓存,这是一个挺常见的做法 。存算分离之后,希望计算节点有一些数据可以本地化,JuiceFS 这方面功能的支持是比较完善的,对于空间的占用、百分比的限制等都做得很完善 。我们部署了独立的缓存集群去服务一些热数据,只要在使用之前去做缓存预热就可以了 。在使用过程中,我们发现不同的计算集群资源的利用率差别很大,集群中有一些大带宽的机器,大部分时候都是用来做单节点的计算 , 这也就意味着机器的网络的资源基本上是没有怎么用到,而且还有一些闲置的磁盘,因此就在这些机器上去部署了缓存节点,把闲置的网络带宽给利用了起来 。最终使得我们在同一个集群中 , 实现了一个带宽非常大的缓存集群 。
目前,JuiceFS 被用在了以下生产场景:
- 计算任务数据文件系统,被应用于热数据输入;
- 日志/ artifact 输出;
- Pipeline 数据中转:数据特征生成之后,需要中转到模型训练中,训练过程中也会有数据中转的需求,Fluid 和 JuiceFS 作为中间的缓存集群来使用 。
如有帮助的话欢迎关注我们项目 Juicedata/JuiceFS 哟! (0?0?)
推荐阅读
- 17 基于SqlSugar的开发框架循序渐进介绍-- 基于CSRedis实现缓存的处理
- 19 基于.NetCore开发博客项目 StarBlog - Markdown渲染方案探索
- Arctic 基于 Hive 的流批一体实践
- 三 AIR32F103 Linux环境基于标准外设库的项目模板
- 用昇腾AI护航“井下安全”
- 盘它!基于CANN的辅助驾驶AI实战案例,轻松搞定车辆检测和车距计算!
- 基于PL022 SPI 控制器 海思3516系列芯片SPI速率慢问题深入分析与优化
- 基于vite3+tauri模拟QQ登录切换窗体|Tauri自定义拖拽|最小/大/关闭
- 基于tauri+vue3.x多开窗口|Tauri创建多窗体实践
- 提高工作效率的神器:基于前端表格实现Chrome Excel扩展插件