基于 ACK Fluid 的混合云优化数据访问(一):场景与架构

作者:车漾(必嘫)

本系列文章将介绍如何基于 ACK Fluid 支持和优化混合云的数据访问场景。

概述

在 AI 和大数据时代,算力即正义,强大的算力推动了源源不断的创新。然而,企业自建的算力集群存在资源容量和弹性能力相对有限的问题,在业务低谷时可能会面临高昂的资源闲置成本,而在业务高峰时则可能会面临资源紧张的挑战。特别是在 AI 和大数据时代,越来越多的企业正在寻求将公共云作为算力的有效补充。

考虑到某些企业对于数据主权的特殊要求,他们需要将数据存放在私有云中,但同时也希望能够享受公共云的弹性、可靠性和成本优势。在这种情况下,混合云的使用变得愈发普遍。混合云可将阿里云的云服务与企业自建数据中心相融合,阿里云上的计算资源通过专线访问数据,并由 ACK One 统一进行管理。这种混合云解决方案不仅帮助客户节省成本,还提供了更高的性能和更强的安全保障。但是跨云的计算访问数据场景会带来共性的问题:

  • 云上通用计算和线下异构存储的适配复杂: 适配公共云通用弹性计算访问线下异构存储需要一定的开发和集成工作,时间周期较长。生产环境的维护和问题排查成本也会有所增加。
  • 数据访问性能影响工程效率: 跨云数据访问慢影响数据分析和 AI 训练的效率。
  • 冗余数据访问开销: 对于热点数据的反复读取会带来不必要流量费用。
  • 数据源的传输和复制 / 同步: 如何复制 / 同步线下和公有云的数据,保证数据的一致性?

图片

下面我们介绍一下 ACK Fluid [ 1] 支持混合云数据访问常见的应用场景,这些场景以 Kubernetes 下读数据为主 特点是接入简单,无侵入,性能好,低成本,自动化:

应用场景 1:

接入第三方分布式存储,连接弹性计算实例和云下存储

许多企业的数据都是存在线下,并且使用的存储类型多样,包括各种开源存储(Ceph,lustrure,JuiceFS,CubeFS)和自建存储。在使用公共云计算资源的时候,也存在挑战:

  • 数据迁云安全性和成本评估时间长: 对于数据迁移到云存储上,需要安全和存储团队的长时间评估,这会延缓整个上云过程。
  • 数据访问无法适配: 比如公共云对于弹性计算实例(ECI)支持的分布式存储类型有限(比如 NAS,OSS,CPFS),但是对于第三方存储缺乏支持。
  • 接入云平台周期长和难度高: 需要开发和维护云原生兼容的 CSI 插件,一方面需要相关的专家和开发适配工程量,同时要维护版本的升级,同时支持的场景有限。比如自建 CSI 无法适配弹性计算实例(ECI)。
  • 缺乏可信透明的数据接入方式: 如何在 Serverless 容器的黑盒系统访问数据过程中规避泄露,如何确保数据在传输、访问过程中安全,透明,可靠。
  • 避免业务修改的需求: 如何确保业务用户不感知基础设施层面的差异,避免对现有应用本身进行任何修改。

ACK Fluid 通过提供 ThinRuntime 扩展机制 [ 2] 支持将基于 FUSE 实现第三方存储客户端以容器化的方式接入 Kubernetes 中,可以支持阿里云上标准 Kubernetes,边缘 Kubernetes,Serverless Kubernetes 多种形态。

1. 开发简单
基于 ThinRuntime 方案,只需要会用 docker 即可,一般开发工作 2-3 小时左右,从而显著降低了接入第三方存储的工作成本。

2. 安全可控
以容器化的方式支持自定义方式实现数据访问。整个数据访问过程云平台无侵入,无需提供实现细节。

3. 使用方便只需要在 PVC(持久卷申请)中添加特定 label 即可,满足了业务用户无需感知基础设施层面的差异的需求,能将存储适配时间缩短为原计划的十分之一。

4. 开源标准基于开源 Fluid 标准对于 ThinRuntime 提供了完整的支持,只要满足开源要求就可以适配 ACK Fluid。整个开发测试可以在 MiniKube 环境完成。

5. 可观测可控制第三方存储客户端只需要实现自身的容器化,就可以转化为 Fluid 管理的 Pod,无缝接入 Kubernetes 体系,并获得可观测性和计算资源可控制性。

总结: ACK Fluid 为云上计算访问云下数据提供了扩展性好,安全可控,低适配成本与云平台实现无关的好处,应用案例参见小米 [ 3]

图片

应用场景 2:

加速第三方存储卷声明,降低资源成本

在满足场景 1 下,即便云上计算能够以 Kubernetes 的标准化协议 PV 存储卷访问企业的线下存储,也无法避免在性能,成本上的挑战和需求:

  • 数据访问带宽有限和高延时: 云上计算访问云下存储带来的数据访问延时和带宽有限,导致高性能计算耗时长,计算资源利用率低
  • 数据冗余读取,网络费用昂贵: 深度学习模型的超参调优、自动调参深度学习任务等运行期间会不断重复访问同一数据。但是由于 Kubernetes 原生调度器无法感知数据缓存状态,导致应用调度的结果不佳,缓存无法重用,导致数据重复拉取引入更多外网和专线费用。
  • 线下分布式存储是数据并发访问的瓶颈,而且面临着性能和稳定性方面的挑战: 当大规模算力并发访问线下存储且深度学习训练的 IO 压力增大,线下分布式存储很容易成为性能瓶颈。这会对计算任务造成影响,甚至会导致整个计算集群失效。
  • 受网络稳定性影响严重: 一旦公共云和数据中心之间网络不够稳定,会导致数据同步出错,应用处于不可用的状态。
  • 数据安全需求: 元数据和数据需要保护,不允许够持久化到云盘上。

ACK Fluid 提供了基于 JindoRuntime 的 PV 存储卷通用加速能力 [ 4] ,可以支持满足 PVC 的第三方存储简单,快速,安全的获得通过分布式缓存实现数据访问加速能力,可以带来如下好处:

1. 使用简单
只需要实现 CSI 协议中 PVC 的第三方存储即可以立即使用,无需额外开发。

2. 高性能,提效率
通过数据预热、弹性带宽和缓存亲和感知调度,实现云上计算集群访问云下数据性能无损失

3. 降成本,省流量
通过分布式缓存将热点数据持久到云上,减少数据读取,降低网络流量;同时吞吐可以弹性伸缩,按照业务削峰填谷。

4. 自动化
以数据为中心的自动化运维,提高运维效率:包括自动缓存预热、自动化扩缩容和清理,实现高效管理。

5. 更安全
分布式内存缓存提高安全性:无需数据落盘,适用于敏感用户,提供卓越性能和安全保障。

总结: ACK Fluid 为云上计算访问第三方存储 PVC 提供了开箱即用,高性能,低成本,自动化和无数据落盘的收益,应用案例参见 360。

图片

应用场景 3:

实现第三方存储主机目录挂载 Kubernetes 化,标准化并加速提效

也有许多企业由于历史原因和技术云下存储选择没有支持 CSI 协议,只支持以主机目录的方式挂载,一方面存在与 Kubernetes 标准化平台的对接的挑战,另一方面也需要应对与场景 2 类似的性能和成本的问题:

  • 缺少标准化,上云困难: 主机目录挂载的模式由于无法被 Kubernetes 感知和调度,很难被容器化工作负载使用和管理。
  • 缺少数据隔离性: 由于整个目录都被挂载到主机上,并被所有的工作负载访问,导致数据全局可见。
  • 数据访问在成本,性能和可用性上有何场景 2 相同的需求,因此不再赘述。

ACK Fluid 提供了基于 JindoRuntime 的 PV 主机目录通用加速能力,直接支持主机目录挂载可以原生,简单,快速,安全的获得通过分布式缓存实现数据访问加速能力。

1. 标准化
将传统架构迁移至云原生:将主机目录挂载模式变化为 Kubernetes 可以管理的 CSI 协议下的 PV 存储卷,便捷与公共云标准协议结合。

2. 迁移低成本
传统架构迁移低成本:无需额外开发,只需要在部署时刻将 Hostpath 协议转换成 PV 存储卷。

3. 数据隔离更容易
接入 Fluid 后,可以通过子数据集模式可以控制不同用户对于线下存储不同目录的可见性,无需额外开发。

4. 高性能,提效率
通过数据预热、弹性带宽和缓存亲和感知调度,实现云上计算集群访问云下数据性能无损失

5. 降成本,省流量
通过分布式缓存将热点数据持久到云上,减少数据读取,降低网络流量;同时吞吐可以弹性伸缩,按照业务削峰填谷。

6. 自动化
以数据为中心的自动化运维,提高运维效率:包括自动缓存预热、自动化扩缩容和清理,实现高效管理。

7. 更安全
分布式内存缓存提高安全性:无需数据落盘,适用于敏感用户,提供卓越性能和安全保障。

总结: ACK Fluid 为云上计算访问第三方存储的主机目录挂载方式提供了开箱即用,高性能,低成本,自动化和无数据落盘的收益。

图片

应用场景 4:

跨区域中心数据分发

许多企业出于性能、安全、稳定性和资源隔离的目的,会在不同区域建立多个计算集群。而这些计算集群需要远程访问唯一中心化的数据存储。比如随着大语言模型的逐渐成熟,基于其的多区域推理服务也逐渐成为各个企业需要支持的能力,针对这一场景,仍有不小的挑战:

  • 多计算集群间手动同步数据非常耗时。
  • 大型语言模型的管理复杂,由于不同业务需求会选择不同基础模型和数据,导致最终模型存在差异。
  • 模型数据频繁更新,根据不同业务输入进行迭代。
  • 拉取大型语言模型文件耗时长,启动模型推理服务较慢。参数规模庞大,体积通常达到几百 GB,在 GPU 显存中加载时间巨大。
  • 模型更新要求所有区域同步更新,使用过载的存储集群进行复制作业会严重影响现有负载性能。

ACK Fluid 除了提供通用存储客户端的加速能力,还提供了定时和触发式数据迁移和预热能力,简化数据分发的复杂度。

1. 节省成本
跨区流量成本大幅降低,计算时间明显缩短,少量增加计算集群成本;并且可以通过弹性进一步优化。

2. 加速应用
由于计算的数据访问在同一个数据中心或者可用区内完成通信,延时降低,且缓存吞吐并发能力可线性扩展。

3. 简化数据同步
通过自定义策略控制数据同步操作,降低数据访问争抢,同时通过自动化的方式降低运维复杂度。

图片

综述

在本文中,我们简单介绍了通过 ACK Fluid 和 JindoFS 团队的 JindoRuntime 可以支持的混合云场景分类,后续文章中,我们会对以上场景的具体实践和使用方式进行详细介绍。

相关链接:

[1] ACK Fluid

https://help.aliyun.com/zh/ack/cloud-native-ai-suite/user-guide/overview-of-fluid

[2] ThinRuntime 扩展机制

https://github.com/fluid-cloudnative/fluid/blob/master/docs/zh/samples/thinruntime.md

[3] 小米

https://www.infoq.cn/article/kco7hi5TcVE08ySwNIw7

[4] PV 存储卷通用加速能力

https://help.aliyun.com/zh/ack/cloud-native-ai-suite/user-guide/accelerate-pv-storage-volume-data-access

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/131768.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C#中的Dispatcher:Invoke与BeginInvoke的使用

Dispatcher是.NET框架中的一个重要概念,用于处理异步消息传递。在C#中,Dispatcher提供了两种方法:Invoke和BeginInvoke,用于控制线程上消息的顺序和执行方式。 目录 一、Dispatcher.Invoke二、Dispatcher.BeginInvoke三、使用场景…

安卓三防平板在行业应用中有哪些优势

在工业维修和检测中,安卓三防平板的应用也十分广泛。它可以搭载各种专业软件和工具,帮助工人们进行设备故障排查和维护,降低了维修成本和停机时间。 一、产品卖点: 1. 防水性能:该手持平板采用了防水设计,…

基于FPGA的数字时钟系统设计

在FPGA的学习中,数字时钟是一个比较基础的实验案例,通过该实验可以更好的锻炼初学者的框架设计能力以及逻辑思维能力,从而打好坚实的基本功,接下来就开始我们的学习吧! 1.数码管介绍 数码管通俗理解就是将8个LED(包含…

什么是UI自动化测试工具?

UI自动化测试工具有着AI技术驱动,零代码开启自动化测试,集设备管理与自动化能力于一身的组织级自动化测试管理平台。基于计算机视觉技术,可跨平台、跨载体执行脚本,脚本开发和维护效率提升至少50%;多端融合统一用户使用体验&#…

C/C++ 线程超详细讲解(系统性学习day10)

目录 前言 一、线程基础 1.概念 2.一个进程中多个线程特征 2.1 线程共有资源 2.2 线程私有资源 3.线程相关的api函数 3.1 创建线程 创建线程实例代码如下: 需要特别注意的是: -lpthread和-pthread的区别 3.2 给线程函数传参 传参实例代码如…

springboot项目Html页面引入css文件不生效

我的出错原因&#xff1a; 在调用css文件时&#xff1a; <link rel"stylesheet" type"text/css" href"/static/css/style.css" /> 这里我多加了一个/static,而使得css样式不生效 因为在springboot项目中&#xff0c;静态资源是默认存…

3D机器视觉:解锁未来的立体视野

原创 | 文 BFT机器人 机器视觉领域一直在不断演进&#xff0c;从最初的二维图像处理&#xff0c;逐渐扩展到了更复杂的三维领域&#xff0c;形成了3D机器视觉。3D机器视觉技术的涌现为计算机系统带来了全新的感知和理解能力&#xff0c;这一领域的发展正日益受到广泛关注。本文…

上海亚商投顾:沪指探底回升 华为汽车概念股集体大涨

上海亚商投顾前言&#xff1a;无惧大盘涨跌&#xff0c;解密龙虎榜资金&#xff0c;跟踪一线游资和机构资金动向&#xff0c;识别短期热点和强势个股。 一.市场情绪 三大指数昨日探底回升&#xff0c;早盘一度集体跌超1%&#xff0c;随后震荡回暖&#xff0c;深成指、创业板指…

043:mapboxGL鼠标点击提示source属性信息

第043个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+mapbox中通过鼠标点击提示source属性信息。这里用到了popup弹窗,用到了click事件,用到了鼠标样式的变化等功能。 直接复制下面的 vue+mapbox源代码,操作2分钟即可运行实现效果 文章目录 示例效果配置方式示例源…

Unity设计模式——建造者模式

Product类——产品类&#xff0c;由多个部件组成。 class Product {IList<string> parts new List<string>();//添加产品部件public void Add(string part){parts.Add(part);}public void Show(){foreach (string part in parts){Debug.Log("产品:"pa…

Centos中利用自带的定时器Crontab_实现mysql数据库自动备份_linux中mysql自动备份脚本---Linux运维工作笔记056

这个经常需要,怕出问题因而需要经常备份数据库,可以利用centos自带的定时器,配合脚本实现自动备份. 1.首先查看一下,这个crontab服务有没有打开: 执行:ntsysv 可以看到已经开机自启动了. 注意这个操作界面,用鼠标不行,需要用,tab按键,直接tab到确定,或取消,然后按回车回到命…

【Go】excelize库实现excel导入导出封装(一),自定义导出样式、隔行背景色、自适应行高、动态导出指定列、动态更改表头

前言 最近在学go操作excel&#xff0c;毕竟在web开发里&#xff0c;操作excel是非常非常常见的。这里我选择用 excelize 库来实现操作excel。 为了方便和通用&#xff0c;我们需要把导入导出进行封装&#xff0c;这样以后就可以很方便的拿来用&#xff0c;或者进行扩展。 我参…