RDS Custom容器系列节点挂载CPFS文件系统

CPFS(Cloud Paralleled File System)是一种并行文件系统,其数据存储在集群中的多个数据节点上,并支持多个客户端同时访问,从而为大型高性能计算集群提供高IOPS、高吞吐量以及低延迟的数据存储服务。本文介绍如何在RDS Custom容器系列节点中挂载并使用CPFS文件系统。

前提条件

已创建RDS Custom容器系列AI节点

步骤一:创建CPFS文件系统和协议服务

CPFS仅支持静态挂载。您需要先创建CPFS文件系统以及对应的协议服务,并获取挂载地址以便后续挂载使用。

  1. 创建CPFS通用版文件系统

    • 请在RDS Custom容器系列节点所属地域创建CPFS文件系统。

    • CPFS文件系统的VPC必须与RDS Custom容器系列节点所处的ACK集群的VPC一致。

    • 如果使用已有CPFS文件系统,请在NAS控制台文件系统列表页面单击目标CPFS文件系统,在基本信息页面确认CPFS版本号为2.3.0及以上。如果不满足,请创建新的CPFS文件系统。

  2. 创建Fileset

    在执行数据流动任务前,需要在CPFS文件系统中指定目录作为数据流动的Fileset。

  3. 创建数据流动

    在进行CPFS FilesetOSS Bucket之间的数据流动之前,需要确保已经创建对应的数据流动。

  4. 创建协议服务

    • 配置导出目录时,协议导出选择Fileset

    • 请使用RDS Custom容器系列节点对应的VPC和交换机创建协议服务,并生成挂载点。

    • 如果使用已有协议服务,请确认协议服务所使用的VPC是否与RDS Custom容器系列节点一致(CPFS不支持跨VPC挂载)。如果不满足,请重新创建协议服务。

  5. 获取协议服务的挂载地址。

    协议服务页面,单击导出目录,然后在挂载地址列复制并保存挂载地址。挂载地址包含挂载点域名以及挂载目录,如果指定导出的是 / 目录,则挂载地址显示为cpfs-****.<Region ID>.cpfs.aliyuncs.com:/share

步骤二:创建静态卷PV

执行以下命令创建静态卷PV。

kubectl create -f pv-cfps.yaml

部分参数要求如下:

  • mountProtocol:必须设置为cpfs-nfs

  • server:为目标CPFS挂载地址前的域名,比如cpfs-****.<Region ID>.cpfs.aliyuncs.com

  • path:为/share/{CPFS Fileset的目录名}/{OSS下的模型路径}。例如/share/models/Qwen3-32B/

  • volumeHandle:为目标CPFS的实例ID。

以下为创建静态卷PVcpfs-test示例文件。

apiVersion: v1
kind: PersistentVolume
metadata:
  name: cpfs-test  # PV的名称,需唯一
  labels:
    alicloud-pvname: cpfs-test  # 自定义标签,用于标识PV
spec:
  accessModes:
  - ReadWriteMany 
  capacity:
    storage: 1Ti
  csi:
    driver: nasplugin.csi.alibabacloud.com 
    volumeAttributes: 
      mountProtocol: cpfs-nfs # 默认必填
      server: cpfs-****.<Region ID>.cpfs.aliyuncs.com  # 目标CPFS的挂载地址
      path: /share/models/Qwen3-32B/   # 为/share/{CPFS Fileset的目录名}/{OSS下的模型路径}
    volumeHandle: cpfs-03ab50a14b9e****  # 目标CPFS的实例ID

步骤三:创建存储声明PVC

执行以下命令创建存储声明PVC。

kubectl create -f pvc-cfps.yaml

以下为创建存储声明PVCcpfs-test.yaml示例文件。

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: cpfs-test
spec:
  volumeName: cpfs-test
  accessModes:
  - ReadWriteMany
  resources:
    requests:
      storage: 1Ti

步骤四:部署Pod并挂载PVC

执行以下命令,部署Pod并挂载PVC。

kubectl apply -f pod.yaml

以下为部署Podsglang-qwen3.yaml示例文件。

# Pod配置
apiVersion: v1
kind: Pod
metadata:
  name: sglang-qwen3
spec:
  containers:
  - command:
    - sh
    - -c
    - echo hello world; sleep infinity;
    image: aliclouddb-pub-registry-vpc.cn-beijing.cr.aliyuncs.com/aliclouddb-public/des-ai-nv:25.05-sglang0.4.6.post4-pytorch2.6-cu124-20250513-serverless
    imagePullPolicy: IfNotPresent
    name: sglang
    ports:
    - containerPort: 8000
      name: restful
      protocol: TCP
    resources:
      requests:
        cpu: "80"
        memory: "300Gi"
        nvidia.com/gpu: "2"  # 请求2个GPU
      limits:
        cpu: "80"
        memory: "300Gi"
        nvidia.com/gpu: "2"  # 限制2个GPU
    volumeMounts:
      - name: cpfs-volume
        mountPath: "/data"
  volumes:
    - name: cpfs-volume
      persistentVolumeClaim:
        claimName: cpfs-test
  restartPolicy: Always
  nodeSelector:
    alibabacloud.com/virtual-node: "true"
  tolerations:
  - effect: NoSchedule
    key: virtual-kubelet.io/provider
    value: aliclouddb

步骤五:验证挂载结果

执行以下命令,验证挂载结果。

kubectl exec <pod名称> -- df -h /data

示例:

kubectl exec sglang-qwen3 -- df -h /data
Filesystem                                            Size  Used Avail Use% Mounted on
cpfs-****.cn-beijing.cpfs.aliyuncs.com:/share/models  3.6T  416M  3.6T   1% /dat

相关文档

RDS Custom简介