乾象投资:基于JuiceFS 构建云上量化投研平台( 三 )


云厂商会提供一些方案,比如像阿里云的 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 构建云上量化投研平台

文章插图
除了成本和吞吐以外,在技术选型时,JuiceFS 对上文提到的功能 Full POSIX、权限控制、Qos、Kubernetes 都能够比较好的支持;
值得一提的是JuiceFS 的缓存集群能力,它能够实现灵活的缓存加速 。最开始时,我们使用计算节点做本地缓存,这是一个挺常见的做法 。存算分离之后,希望计算节点有一些数据可以本地化,JuiceFS 这方面功能的支持是比较完善的,对于空间的占用、百分比的限制等都做得很完善 。我们部署了独立的缓存集群去服务一些热数据,只要在使用之前去做缓存预热就可以了 。在使用过程中,我们发现不同的计算集群资源的利用率差别很大,集群中有一些大带宽的机器,大部分时候都是用来做单节点的计算 , 这也就意味着机器的网络的资源基本上是没有怎么用到,而且还有一些闲置的磁盘,因此就在这些机器上去部署了缓存节点,把闲置的网络带宽给利用了起来 。最终使得我们在同一个集群中 , 实现了一个带宽非常大的缓存集群 。
目前,JuiceFS 被用在了以下生产场景:
  • 计算任务数据文件系统,被应用于热数据输入;
  • 日志/ artifact 输出;
  • Pipeline 数据中转:数据特征生成之后,需要中转到模型训练中,训练过程中也会有数据中转的需求,Fluid 和 JuiceFS 作为中间的缓存集群来使用 。
未来,我们将继续探索云原生、AI技术,用以进行更高效、安全的工具链研发和基础技术平台建设 。
如有帮助的话欢迎关注我们项目 Juicedata/JuiceFS 哟! (0?0?)

推荐阅读