数据缓存亲和性调度(1) 本节介绍数据缓存亲和性调度。 Fluid提供了数据缓存亲和性调度优化能力,根据数据集排布的Pod调度策略,支持通过webhook机制将调度信息注入到业务Pod中,从而实现将业务Pod优先调度到有数据缓存能力的节点。 在智算场景下,创建训练任务指定数据集时,通过调度优化策略将训练任务优先调度到缓存数据节点,可以提高数据同节点访问概率,获取最大程度访问效率。 前提条件 已完成AI套件安装,弹性数据集组件运行正常。 已创建数据集并开启加速。 数据集加速状态为已加速或已预热。 功能介绍 基于Mutating Webhook机制,Fluid可以在 业务Pod 创建时拦截,检测是否使用 Fluid PVC,从而为应用Pod注入所需数据缓存的亲和性信息(fluid.io/s{namespace}{dataset})。当Kubernetes调度器调度应用Pod时,可以优先选择有缓存数据的节点。 注意 如果应用Pod在spec.affinity或spec.nodeSelector中自定义了与fluid调度相关的亲和性信息,此时以应用Pod自身配置为准,Fluid不会注入相关的亲和性调度配置信息。 操作步骤 1、创建数据集并开启数据加速 2、训练任务使用加速数据集 登录云容器引擎管理控制台; 在集群列表页点击进入指定集群; 进入主菜单 智算套件 > AI应用列表 > 离线训练 > 创建AI应用; 进入离线训练应用创建页面,在“基本信息”栏添加标签: 标签名为:fuse.serverful.fluid.io/inject 标签值为:true 进入离线训练应用创建页面,进行相关信息配置,详细参考创建训练任务; 配置训练数据: 点击“选择数据集”,在弹出页面选择“私有数据集”,选择已加速的数据集名称: 点击“选择数据集版本”,在弹出页面选择“私有数据集”,选择已加速的数据集名称: 继续其他配置,完成训练应用创建。 查看训练任务调度信息 进入主菜单 > 工作负载 > 容器组,查看训练任务pod对应的yaml信息,已经注入缓存节点调度信息: 进入主菜单 > 工作负载 > 容器组,可以看到训练任务pod 所在节点与fluid数据节点一致。
来自: