Skip to main content
NetApp artificial intelligence solutions
简体中文版经机器翻译而成,仅供参考。如与英语版出现任何冲突,应以英语版为准。

使用 Union.ai 和NetApp FlexCache部署混合 AI 训练

贡献者 sathyaga netapp-jsnyder

了解如何使用 Union.ai 编排、 NetApp FlexCache和Trident进行 Kubernetes 存储配置,从而部署混合 AI 训练环境。

David Espejo,Union.ai Sathish Thyagarajan, NetApp

概述

Union.ai 的混合编排平台与NetApp ONTAP和FlexCache无缝集成,可加速 AI/ML 训练工作流程。该解决方案允许数据安全地保留在本地,同时利用基于云的 GPU 计算进行 AI 训练工作负载。 NetApp FlexCache确保仅将必要的数据缓存在云端,从而实现高效、安全且可扩展的混合 AI/ML 管道。

客户用例:混合云人工智能培训

  • 本地数据:存储在NetApp ONTAP上,以确保合规性和安全性。

  • 云计算:在 EKS/GKE/AKS 上进行可扩展的 GPU 训练。

  • AI/ML 编排:Union.ai 协调跨环境的数据处理和训练。

  • 存储配置: NetApp Trident可自动配置 PVC/PV。

客户价值

  • 利用NetApp ONTAP 的横向扩展功能,在海量数据集上运行 AI 工作负载。

  • 使用 NetApp 的混合云功能,在本地和云端之间移动和同步数据。

  • 使用FlexCache快速将本地数据缓存到云端。

  • Union.ai 通过版本控制、血缘跟踪和工件管理简化了跨环境的编排。

  • 在云端执行培训,同时将敏感数据保留在本地。

启用插件 - 前提条件

要求

细节

ONTAP 版本

ONTAP 9.7+(无需FlexCache许可证)

FlexCache许可证

ONTAP 9.6 及更早版本需要此功能

Kubernetes

本地集群和云集群(EKS/GKE/AKS)

Trident

可安装在本地集群和云集群上

Union.ai

控制平面已部署(联合云或自托管)

网络连接

集群间连通性(如果ONTAP集群是独立的)

权限

ONTAP和 Kubernetes 集群的管理员权限。

✅请使用正确的ONTAP凭据(例如,vsadmin)。

刚接触 Union.ai?

请参阅本文档末尾的配套指南。

参考架构

下图展示了 Union.ai 控制平面与NetApp存储的集成,用于混合 AI 训练。

采用 Union.ai 和NetApp 的混合 AI 训练架构
  • Union.ai 控制平面:协调工作流、管理数据移动并与NetApp API 集成。

  • NetApp ONTAP + FlexCache:提供从本地到云端的高效数据缓存。

  • 混合训练集群:训练作业在云 K8s 集群(例如 EKS)中运行,数据从本地缓存。

步骤 1:创建FlexCache卷

使用ONTAP系统管理器

  1. 导航至“存储”>“卷”。

  2. 单击“添加”。

  3. 选择更多选项。

  4. 启用“添加为远程卷的缓存”功能。

  5. 选择源卷(本地)和目标卷(云)。

  6. 定义服务质量或性能级别(可选)。

  7. 单击“创建”。

💡如果由于权限或聚合问题导致NetApp DataOps Toolkit 无法正常工作,请直接使用ONTAP系统管理器或 CLI 创建FlexCache卷。

步骤 2:配置 Trident

在两个集群上都安装Trident :

创建Trident后端

apiVersion: trident.netapp.io/v1
kind: TridentBackendConfig
metadata:
name: ontap-flexcache
spec:
version: 1
storageDriverName: ontap-nas
managementLIF: <ONTAP-MGMT-IP>
dataLIF: <ONTAP-DATA-IP>
svm: <SVM-NAME>
username: vsadmin
password: <password>

Apply: kubectl apply -f backend-flexcache.yaml

如果收到 401 未授权错误,请验证ONTAP用户是否具有足够的 API 权限,以及是否使用了正确的用户名 (vsadmin) 和密码。

定义存储类

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: flexcache-sc
provisioner: csi.trident.netapp.io
parameters:
backendType: "ontap-nas"
Apply:
kubectl apply -f storageclass-flexcache.yaml

步骤 3:部署 Union.ai 工作流

Union 使用 PVC 将FlexCache卷挂载到训练作业中。

示例 PodTemplate

apiVersion: v1
kind: PodTemplate
metadata:
name: netapp-podtemplate
namespace: flytesnacks-development
template:
metadata:
labels:
default-storage: netapp
spec:
containers:
- name: primary
volumeMounts:
- name: flexcache-storage
mountPath: /data/flexcache
volumes:
- name: flexcache-storage
persistentVolumeClaim:
claimName: flexcache-pvc

示例工作流程

从联合导入任务、工作流

@task(pod_template="netapp-podtemplate")

def train_model(pvc_path: str):

加载并使用来自 PVC 的数据进行训练。

@workflow

def training_pipeline():

train_model(pvc_path="/data/flexcache")

工会运营商将:

  • 制作PVC管

  • 挂载FlexCache卷

  • 在云端 Kubernetes 集群中调度作业

步骤 4:验证集成

任务 验证

PVC支架

训练 pod 应该能够成功挂载 /data/flexcache。

数据访问

训练作业可以对FlexCache进行读写操作。

缓存行为

监控ONTAP中的缓存命中/未命中情况。确保聚合支持FlexCache

性能

验证训练工作负载的延迟和吞吐量

使用NetApp BlueXP或ONTAP CLI 监控性能。

安全注意事项

  • 使用 VPC 端点为NetApp ONTAP 的FSx 启用

  • 启用传输中和静态加密

  • 申请基于角色的访问控制/身份与授权以访问ONTAP

  • Union.ai 不会访问或存储客户数据

监测与优化

工具

目的

NetApp BlueXP

监控FlexCache 的使用情况和性能

Union.ai 用户界面

跟踪管道状态和指标

Trident日志

调试 PVC 或后端问题

可选增强功能

  • 使用BlueXP API 自动创建FlexCache

  • 使用 Union SDK 在训练前预热缓存

  • 训练后添加批量推理或模型服务管道

  • 如果 DataOps Toolkit 失败,则回退到通过系统管理器手动创建FlexCache 。

故障排除

问题 解决

PVC卡在待定状态

检查Trident日志和后端配置

来自ONTAP API 的 401 未授权

使用 vsadmin 并验证权限

作业失败:没有合适的存储空间

确保ONTAP聚合支持FlexCache/ FabricPool

训练表现缓慢

检查缓存命中率和网络延迟

数据未同步

在ONTAP中验证FlexCache关系健康状况

后续步骤

  1. 使用测试数据验证FlexCache

  2. 部署 Union.ai 训练管道

  3. 监控和优化性能

  4. 记录客户特定设置

结束语

您现在拥有一个经过验证的混合 AI 训练环境,该环境使用 Union.ai 和NetApp FlexCache。训练作业可以在云端运行,同时安全高效地访问本地数据,而无需复制整个数据集或损害治理。

Union.ai - 配套指南

第一步:选择部署模式

方案A:联合云

选项B:自托管

  • 跟随:https://docs.union.ai/platform/latest/deployment/self-hosted/["自托管指南"]

  • 通过 Helm 部署:

helm install union unionai/union -n union-system -f values.yaml

步骤 2:安装联合运算符

kubectl apply -fhttps://raw.githubusercontent.com/unionai/operator/main/deploy/operator.yaml[]

kubectl get pods -n union-system

步骤 3:安装 Union CLI

pip install unionai

工会登录

步骤 4:注册工作流程

联合项目创建混合人工智能

union register training_pipeline.py --project hybrid-ai

步骤 5:运行和监控

union run training_pipeline --project hybrid-ai

联合观察培训管道

查看日志 "联合用户界面"

步骤 6:注册计算集群(可选)

union cluster register --name cloud-k8s --kubeconfig ~/.kube/config

步骤7:追踪文物及传承

Union 会自动跟踪:

  • 输入/输出参数

  • 数据版本

  • 日志和指标

  • 执行谱系