存储更弹性,详解 Fluid “ECI 环境数据访问” 新功能

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,恶意文件检测 1000次 1年
对象存储 OSS,内容安全 1000次 1年
简介: 近期,Fluid 支持了阿里云 ECI 应用,并将JuiceFS Runtime Controller 设置为默认安装;JuiceFS 也就此功能与 Fluid 完成了集成和测试工作。 用户可以在 ECI 环境中使用JuiceFS, 体验计算与存储的双重极致弹性。

近期,Fluid 支持了阿里云 ECI 应用,并将 JuiceFS Runtime Controller 设置为默认安装;JuiceFS 也就此功能与 Fluid 完成了集成和测试工作。 用户可以在 ECI 环境中使用JuiceFS, 体验计算与存储的双重极致弹性。

(还不了解 JuiceFS Runtime Controller 的小伙伴,推荐先阅读:在 Kubernetes 集群玩转 Fluid + JuiceFS ,这个功能可以让用户更好地在 Kubernetes 环境中使用 JuiceFS 缓存管理能力)

ECI(Elastic Container Instance)阿里云弹性容器实例,是阿里云 Serverless 和容器化的弹性计算服务。用户无需购买和管理底层 ECS 服务器,只需要提供打包好的镜像,即可运行容器,用户仅需要为容器实际运行消耗的资源付费。

如果说云原生就是使资源池化,那么 Serverless 的演进才使得基础设施水电煤化成为可能。Serverless 的核心是快速交付、智能弹性、更低成本。数据智能应用的 Serverless 化已经成为了一种趋势,尤其是对于计算密集型任务的 AI 训练场景来说,长期维护大量 ECS 服务器,成本相当高。对于这类场景,ECI 是最理想的选择,用户只需要为任务运行时的资源付费,即用即停,不需要长期维护 ECS 服务器,是降本增效的最优选择。

目前,在ECI 环境,JuiceFS 用户可以借助 Fluid 来使用 JuiceFS,亦可借助 Fluid 的 Dataload 功能更方便地使用 JuiceFS 的缓存预热功能,进一步提升云上 AI 应用的数据访问效率。
Fluid 如何支持 ECI 应用

Fluid 通过自动识别用户应用中使用的 Fluid PVC(PersistentVolumeClaim),将不同缓存 Runtime 的 FUSE 客户端以 Sidecar 的形式注入到 Serverless Pod 中。JuiceFS 客户端以 Sidecar 容器的方式单独为应用容器提供挂载服务,且与应用容器同生命周期,用户只需要为应用运行时的资源付费即可。

同时,为了提高数据加速能力,独立缓存集群可以长时间运行,只需单独开几台 ECS 节点用以运行各 Runtime 的缓存集群,为 Sidecar 提供分布式缓存服务。

整体架构如下图。

image.png

Why JuiceFS in AI

AI 训练场景会产生大量的小文件,同时 AI 作业管线(Pipeline)纷繁复杂、流程长,ML/DL 框架、MPI 框架、科学计算库、大数据计算引擎等不同组件需要对接不同的数据访问接口;当在 Kubernetes 平台上,尤其是 Serverless 环境使用传统文件系统也面临可靠性、访问性能等一系列问题。

JuiceFS 是一款为云上环境设计的分布式存储引擎,采用「数据」与「元数据」分离存储的架构,元数据引擎可以横向扩展,轻松支持百亿小文件存储;并且 JuiceFS 云服务版具备分布式缓存能力,对于机器学习中需要对同一个数据集反复训练等场景,可以大幅提升数据访问的性能。

JuiceFS 如何在 Fluid 中工作

通过 Fluid 我们可以快速搭建 JuiceFS 的环境,构建出 JuiceFS 独立缓存集群,缓存集群以 StatefulSet 的形式运行在 ECS 节点中,提供分布式缓存服务,而 FUSE 客户端以 Sidecar 的方式运行在业务 Pod 中,业务 Pod 则运行在 ECI 节点上。

image.png

使用流程

具体操作可参考官网 JuiceFS 文档

准备环境

目前 Fluid on ECI 还处于公测阶段,默认没有开启,但我们可以申请 AI 套件免费体验席位。

申请完毕后,我们需要创建一个 ACK 版集群,集群的 Kubernetes 版本不低于1.18。在 ACK 集群中可以直接通过云原生 AI 套件,安装 Fluid。

使用 JuiceFS

JuiceFS 采用元数据和数据分开存储的设计,元数据会被存储在元数据服务引擎中,数据会被存储在对象存储中,对象存储需要用户自己提供。由于目前只有云服务版 JuiceFS 提供分布式缓存服务,本文以云服务版 JuiceFS 为例。

1.创建 Secret 第一步在 ACK 集群中创建保密字典,填入需要密文存储的 token(JuiceFS 控制台管理的 volume token)和对象存储的 accesskey 和 secretkey。

2.创建 JuiceFSRuntime 和 Dataset 在 JuiceFSRuntime 中指定副本数及缓存地址等信息;在 Dataset 的 options 中填入对象存储的 bucket,在 encryptOptions 中填入引用 Secret 的值。

创建好后,可以在容器组页面看到有 Worker Pod 创建出来:

image.png

这 5 个 Worker 就组成了一个 JuiceFS 独立缓存集群,运行在 ECS 节点上,为客户端提供缓存服务。

3.缓存加速 缓存集群创建好后,我们可以先进行缓存预热,创建 Dataload,指定上一步创建的 Dataset。「任务」页面的 jfs-load-loader-job 显示完成,即代表缓存集群预热完成。
4.创建应用

最后我们可以创建应用了,在应用的数据卷中指定与 Dataset 同名的存储卷,这里我们创建一个 Job,启动命令为统计拷贝数据的时间。同时需要给 Pod 设置以下两个 Label:

alibabacloud.com/fluid-sidecar-target: eci
alibabacloud.com/eci: "true

应用创建好后,我们就可以看到 Pod 中有 Webhook 注入的 fluid-fuse 容器,且运行在虚拟节点上:

image.png

此时该 Pod 已经运行在 ECI 环境中了。该 Pod 运行完,日志中就会显示其拷贝数据的时间:

image.png

根据上面的步骤,可以看出,在有缓存加速的时候,拷贝数据的时间为 1m11.16s。为了与有缓存的情况做个对比,我们遵循上述过程,在不做缓存加速的情况下,测试拷贝数据的时间。过程为 创建 JuiceFSRuntime -> 创建 Dataset -> 创建应用。

image.png

可以看到,在没有分布式缓存的情况下,拷贝相同的数据时间为 19m 6.45s。对于有分布式缓存的时候,拷贝时间缩短到了 1m11.16s,速度提升了 19 倍。

总结

本文介绍了在ECI 环境中,用户如何借助 Fluid 使用 JuiceFS,并使用 JuiceFS 的分布式缓存能力,来提升云上应用的数据访问速率。未来,JuiceFS 亦会在 CSI 中通过 Sidecar 的方式支持 Serverless 场景,用户可以通过更加原生的方式在 ECI 中使用 JuiceFS。

相关实践学习
基于ACK Serverless轻松部署企业级Stable Diffusion
本实验指导您在容器服务Serverless版(以下简称 ACK Serverless )中,通过Knative部署满足企业级弹性需求的Stable Diffusion服务。同时通过对该服务进行压测实验,体验ACK Serverless 弹性能力。
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
4月前
|
缓存 测试技术 调度
双十一弹性能力支撑--ECI稳定性建设
本文我们将为大家介绍,ECI这些年在稳定性方面做了哪些工作,以及是如何来为集团双十一保驾护航的。
130649 49
|
存储 弹性计算 负载均衡
使用阿里云 ECI 弹性部署 Fizz Gateway 节点
本文描述了如何使用阿里云的ECI快速配置弹性伸缩
481 0
|
Kubernetes Serverless 调度
快速创建一个具有弹性的容器集群(ACK+ECI)
通过本文的实操,我们可以得到一个生产可用的ACK容器集群,同时本环节是后续相关实操的基础,请大家尽量提前做好服务开通及授权等相关操作,本文主要用来指导用户快速创建一个ACK集群
1468 36
快速创建一个具有弹性的容器集群(ACK+ECI)
|
弹性计算 资源调度 Kubernetes
混合云IDC自有K8S弹性使用ECI最佳实践
本文介绍线下IDC与云端通过专线构建混合云架构,自有K8S利用虚拟节点弹性调用ECI承载业务高峰期资源需求的最佳实践。
混合云IDC自有K8S弹性使用ECI最佳实践
|
容器
阿里云最新产品手册——云基础产品与基础设施——计算——弹性容器实例——通用部署ACK虚拟节点组件创建ECI Pot——虚拟节点和弹性容器ECI——专有版操作步骤
阿里云最新产品手册——云基础产品与基础设施——计算——弹性容器实例——通用部署ACK虚拟节点组件创建ECI Pot——虚拟节点和弹性容器ECI——专有版操作步骤自制脑图
125 1
阿里云最新产品手册——云基础产品与基础设施——计算——弹性容器实例——通用部署ACK虚拟节点组件创建ECI Pot——虚拟节点和弹性容器ECI——专有版操作步骤
|
4月前
|
弹性计算 缓存 Kubernetes
什么是阿里云弹性容器实例?弹性容器实例优势及应用场景介绍
弹性容器实例是阿里云的云服务器产品,使用弹性容器实例之后,用户无需管理底层 ECS 服务器,只需要提供打包好的镜像,即可运行容器,与阿里云容器服务无缝对接并仅为容器实际运行消耗的资源付费。本文介绍了阿里云弹性容器实例的、功能特性、产品优势及应用场景。
什么是阿里云弹性容器实例?弹性容器实例优势及应用场景介绍
|
容器
阿里云最新产品手册——云基础产品与基础设施——计算——弹性容器实例——通用部署ACK虚拟节点组件创建ECI Pot——ECI Pot——特殊实例
阿里云最新产品手册——云基础产品与基础设施——计算——弹性容器实例——通用部署ACK虚拟节点组件创建ECI Pot——ECI Pot——特殊实例自制脑图
384 4
|
容器
阿里云最新产品手册——云基础产品与基础设施——计算——弹性容器实例——通用部署ACK虚拟节点组件创建ECI Pot——ECI Pot——创建ECI Pot
阿里云最新产品手册——云基础产品与基础设施——计算——弹性容器实例——通用部署ACK虚拟节点组件创建ECI Pot——ECI Pot——创建ECI Pot自制脑图
333 1
|
容器
阿里云最新产品手册——云基础产品与基础设施——计算——弹性容器实例——通用部署ACK虚拟节点组件创建ECI Pot——ECI Pot
阿里云最新产品手册——云基础产品与基础设施——计算——弹性容器实例——通用部署ACK虚拟节点组件创建ECI Pot——ECI Pot自制脑图
276 1
|
容器
阿里云最新产品手册——云基础产品与基础设施——计算——弹性容器实例——通用部署ACK虚拟节点组件创建ECI Pot——虚拟节点和弹性容器ECI——运行场景
阿里云最新产品手册——云基础产品与基础设施——计算——弹性容器实例——通用部署ACK虚拟节点组件创建ECI Pot——虚拟节点和弹性容器ECI——运行场景自制脑图
268 1