混合云场景下基于 Fluid 的焱融高效存储方案
云计算平台因其部署便捷、运维高效、计算成本低、易于扩展等优势,吸引了越来越多的数据密集型应用在其上运行。如今,以 Kubernetes 为代表的云原生架构因其灵活的资源负载和高效的应用编排调度,在机器学习、大模型训练及大数据等数据密集型场景中广泛应用。
然而在存算分离场景下,Kubernetes 云原生环境和数据密集应用计算框架存在数据访问延时高、运行效率低、数据管理复杂等问题。尤其是远程和跨数据中心的数据访问,会造成巨大的网络延时。
有数据统计,同一个地域间数据访问的延时比同一个机房间数据访问的延时至少增加了 4 倍。而同一个国家不同地域间的访问延时又会增加至少 1.5 倍。
同时对于使用对象存储的数据密集型应用,由于对象存储数据访问性能相较于高性能文件存储性能较差,再叠加上述网络架构的问题,会造成更加严重的性能下降与瓶颈。
焱融科技混合云场景下 YRCloudFile 解决方案
对于此问题,高性能分布式文件存储 YRCloudFile 结合了 DataLoad 功能以及 Fluid+YRCloudFile Runtime 缓存加速引擎带来了新的解决方案,让用户在混合云环境中,既能享受到文件存储的高性能体验,又能享受到对象存储的低成本和容量优势。
01
Fluid 简介
Fluid 是一款开源的云原生基础架构。在计算和存储分离的大背景驱动下,Fluid 的目标是为 AI 与大数据云原生应用提供一层高效便捷的数据抽象,将数据从存储抽象出来,以便实现:
1. 通过数据亲和性调度和分布式缓存引擎加速,实现数据和计算之间的融合,从而加速计算对数据的访问。
2. 将数据独立于存储进行管理,并且通过 Kubernetes 的命名空间进行资源隔离,实现数据的安全隔离。
3. 将来自不同存储的数据联合起来进行运算,从而有机会打破不同存储的差异性带来的数据孤岛效应。
通过 Kubernetes 服务提供的该数据层抽象,就可以让数据像流体一样在诸如 HDFS、OSS、Ceph 这样的存储源和 Kubernetes 上层的云原生应用计算之间灵活高效地移动、复制、驱逐、转换和管理。
而具体的数据操作对用户透明,用户不必再担心访问远端数据的效率,或是管理数据源的便捷性,以及如何帮助 Kuberntes 做出恰当的调度决策等运维问题。用户只需以 Kubernetes 原生数据卷的方式直接访问抽象出来的数据,剩余任务交给 Fluid 完成。
02
Fluid + YRCloudFile Runtime
云原生容器应用的数据访问面临众多的挑战,YRCloudFile 为了解决这些问题,重构新一代面向容器环境的存储解决方案,开发了标准 CSI 插件无缝对接 Kubernetes。
用户只需在 Kubernetes 集群 Master 节点及计算节点上,以容器形式运行 YRCloudFile 提供的 CSI 插件,即可对 YRCloudFile 的存储能力进行调度和访问。
此外 YRCloudFile 充分调研客户对于对象存储的使用需求设计了 DataLoad 功能,让用户既能体验文件存储的性能,又享受对象存储的成本和容量优势。
Fluid 通过在 Kubernetes 中部署 Dataset 和 Runtime 两个自定义资源对象,为数据密集型应用提供了数据加速的服务,具备很强的数据集安全性和版本管理能力。用户在 Dataset 中指定远存储的信息,Runtime 将远程数据加载到离计算节点更近的地方,从而起到数据访问加速的效果。
Dataset:数据集是逻辑上相关的一组数据的集合,会被运算引擎使用,比如大数据的 Spark,AI 场景的 TensorFlow。而这些数据智能的应用会创造工业界的核心价值。
Runtime:实现数据集安全性,版本管理和数据加速等能力的执行引擎。Fluid 的 Runtime 定义了标准化的接口,通过实现这些接口,开发者能够针对不同的场景与需求,扩展不同的 Runtime。
将 Fluid 的管理能力和 YRCloudFile Storage 的高效访问能力结合。YRCloudFile 基于自身特性开发了符合 Runtime 接口的 YRCloudFile Runtime,使用 Fluid 的接口来实现 YRCloudFile 的 DataLoad 功能,让容器用户以 YRCloudFile 为存储卷,只使用 Kubernetes 的 API 接口就可以方便高效的使用对象存储 。
Fluid + YRCloudFile Runtime 当前具备的 DataLoad 功能如下:
○ 支持元数据导入和数据预热
○ 支持指定前缀的导入
○ 支持数据使用结束后的增量导出
整体架构流程图如下图所示:
YRCloudFile Runtime 会启动一个 Master 组件。Master 组件主要用来调用 YRCloudFile 的 gRPC 服务。
总之,实现计算和存储的弹性和高效是提升效率的关键,而结合对象存储的大容量和高性价比则是降低成本的关键。在未来的工作中,我们会继续完善 DataLoad 功能以及 YRCloudFile Runtime,为用户在混合云场景下高效使用做出更多贡献。
评论