创建和管理DataCache

部署DataCache CRD后,您可以创建DataCache提前拉取业务所需的数据,例如AI训练模型等。本文介绍DataCache的配置参数以及如何创建、查询和删除DataCache。

前提条件

集群中已部署DataCache CRD。具体操作,请参见部署DataCache CRD

创建DataCache

配置说明

DataCache的YAML配置参数如下:

apiVersion: eci.aliyun.com/v1alpha1
kind: DataCache
metadata:
  name: test-url
spec:
  bucket: default
  path: /demo/url
  size: 20
  retentionDays: 3
  dataSource:
    type: URL 
    options:
      url: https://www.example.com
  netConfig: 
    securityGroupId: sg-2ze63v3jtm8e6sy******
    vSwitchId: vsw-2ze94pjtfuj9vaym******

参数说明如下:

  • apiVersion:API版本,固定为eci.aliyun.com/v1alpha1。

  • kind:资源类型,固定为DataCache。

  • metadata

    • name:DataCache名称。

  • spec

    • bucket:数据的存储空间。默认为default,支持自定义。eci-system为ECI保留空间,不可使用。

    • path:数据存储的路径。

    • size:DataCache大小。单位为GiB,默认为20 GiB。请根据实际数据量评估所需大小。

    • retentionDays:DataCache保留天数。过期会被清理。默认不过期。

    • dataSource:数据源,包括数据源类型type和配置参数options

      数据源类型

      数据来源说明

      配置参数

      URL

      链接地址

      • url:数据下载地址。

      • accessToken:拉取私有数据时,需配置该参数来验证身份以访问数据。

      HuggingFace或ModelScope

      • repoSource:取值范围为ModelScope/Model、ModelScope/DataSet、HuggingFace/Model、HuggingFace/DataSet,表示从ModelScope或HuggingFace社区拉取模型或者数据集。

      • repoId:模型ID或数据集ID。

      • revision:版本。默认为main或者master。

      • accessToken:拉取私有数据时,需配置该参数来验证身份以访问数据。

      NAS

      NAS文件系统

      • server:NAS文件系统的挂载点。

      • path:挂载子目录。极速型NAS需要以/share为前缀,例如/share/path

      • vers:挂载NAS的NFS协议版本号。推荐使用v3,极速型NAS仅支持v3。

      • options:挂载选项。建议使用NAS服务推荐选项,例如nolock,tcp,noresvport

      OSS

      OSS存储空间

      • bucket:OSS Bucket的名称。

      • url:OSS的接入域名(Endpoint)。

      • path:挂载子目录。相对Bucket根目录的目录,默认为/

      • otherOpts:挂载OSS时支持输入定制化参数,格式为-o *** -o ***,例如-o max_stat_cache_size=0 -o allow_other

      • ramRole:使用RAM角色授权时,对应的RAM角色。

        说明

        请创建RAM角色并为该角色授权。具体操作,请参见创建可信实体为阿里云服务的RAM角色为RAM角色授权

        创建时,可信实体类型为阿里云服务,角色类型为普通服务角色,受信服务为云服务器;为角色授权时,请选择AliyunOSSFullAccess权限策略。

      • akId:使用AccessKey直接授权时,对应的AccessKey ID。具体操作,请参见获取AccessKey

      • akSecret:使用AccessKey直接授权时,对应的AccessKey Secret。具体操作,请参见获取AccessKey

      SNAPSHOT

      快照

      snapshotId:快照ID。

    • netConfig

      • securityGroupId:创建DataCache过程中生成的ECI实例所属的安全组ID。

      • vSwitchId:创建DataCache过程中生成的ECI实例所属的交换机ID。

      如果需要通过公网拉取数据,在指定的交换机没有配置SNAT时,支持绑定EIP来拉取公网数据。此时,可在netConfig下添加EIP相关参数。

      netConfig: 
        eipInstanceId: eip-2zey74a7zienoxf*****  #与eipCreateParam二选一
        eipCreateParam:  #与eipInstanceId二选一
          bandwidth: 5
          commonBandwidthPackage:  cbwp-2zeukbj916scmj5******
          internetChargeType:  PayByTraffic
          publicIpAddressPoolId: pippool-bp187arfugi543y1s****
          ISP: BGP
      • eipInstanceId:如果指定的交换机没有配置SNAT,可以绑定已有的可用EIP,以便拉取公网数据。

      • eipCreateParam:如果指定的交换机没有配置SNAT,且没有可用的EIP,此时如果想要拉取公网数据,可以配置以下参数创建一个EIP并绑定。

        • bandwidth:EIP带宽。单位为Mbps。默认为5 Mbps。

        • commonBandwidthPackage:绑定已有的共享带宽包。更多信息,请参见共享带宽

        • internetChargeType:EIP的计量方式。取值范围为PayByBandwidth(按带宽计费)和PayByTraffic(按流量计费)。更多信息,请参见EIP计费方式

        • publicIpAddressPoolId:IP地址池ID。 EIP将从该IP地址池中分配。 IP地址池功能默认不开放。如需使用,请在配额中心申请IP地址池功能权益配额。更多信息,请参见创建和管理IP地址池

        • ISP:EIP的线路类型。取值范围为BGP(默认值)和BGP_PRO。更多信息,请参见EIP线路类型

配置示例

编写DataCache的YAML配置文件(假设名称为datacache.yaml),通过kubectl命令即可创建DataCache。

  • 全新创建

    kubectl create -f datacache.yaml
  • 更新创建

    kubectl apply -f datacache.yaml

各类型DataCache的YAML示例如下:

URL

  • 从链接地址拉取数据

    apiVersion: eci.aliyun.com/v1alpha1
    kind: DataCache
    metadata:
      name: test-url-1
    spec:
      path: /demo/url
      dataSource:
        type: URL 
        options:
          url: https://www.example.com
      netConfig:                
        securityGroupId: sg-2ze63v3jtm8e6sy******
        vSwitchId: vsw-2ze94pjtfuj9vaym******

  • 从HuggingFace拉取模型

    apiVersion: eci.aliyun.com/v1alpha1
    kind: DataCache
    metadata:
      name: test-url-2
    spec:
      path: /demo/url
      dataSource:
        type: URL 
        options:
          repoSource: "HuggingFace/Model"        
          repoId: "decapoda-research/llama-7b-hf"
      netConfig: 
        securityGroupId: sg-2ze63v3jtm8e6sy******
        vSwitchId: vsw-2ze94pjtfuj9vaym******

NAS

apiVersion: eci.aliyun.com/v1alpha1
kind: DataCache
metadata:
  name: test-nas
spec:
  path: /demo/nas
  dataSource:
    type: NAS 
    options:
      server: "0389a***-nh**.cn-beijing.extreme.nas.aliyuncs.com"
      path: "/"
      vers: "3"
      options: "nolock,tcp,noresvport"
  netConfig: 
    securityGroupId: sg-2ze63v3jtm8e6sy******
    vSwitchId: vsw-2ze94pjtfuj9vaym******

OSS

apiVersion: eci.aliyun.com/v1alpha1
kind: DataCache
metadata:
  name: test-oss
spec:
  path: /demo/oss
  dataSource:
    type: OSS 
    options:
      bucket: "oss-***"
      url: "oss-cn-beijing-internal.aliyuncs.com"
      path: "/test"
      otherOpts: "-o max_stat_cache_size=0 -o allow_other"
      ramRole: "<your RAM Role Name>"
  netConfig: 
    securityGroupId: sg-2ze63v3jtm8e6sy******
    vSwitchId: vsw-2ze94pjtfuj9vaym******

SNAPSHOT

apiVersion: eci.aliyun.com/v1alpha1
kind: DataCache
metadata:
  name: test-snapshot
spec:
  path: /demo/snapshot
  dataSource:
    type: SNAPSHOT 
    options:
      snapshotId: s-uf6j98q2tvfcjz******
  netConfig: 
    securityGroupId: sg-2ze63v3jtm8e6sy******
    vSwitchId: vsw-2ze94pjtfuj9vaym***

管理DataCache

说明

查询或删除时,可使用以下任意一个名称作为资源类型名称:

  • edc

  • datacache

  • datacaches

  • datacaches.eci.aliyun.com

查询DataCache

创建DataCache后,您可以根据需要查询集群下所有DataCache列表或者查看某个DataCache的详细信息。

  • 查询集群下所有DataCache列表

    kubectl get edc 

    返回示例如下,状态为Available表示可以使用该DataCache。

    get edc.png

  • 查看某个DataCache的详细信息

    kubectl describe edc <edc-name>

    返回示例如下,包括DataCache的基本信息、元数据、配置、状态和事件信息等。

    describe edc.png

删除DataCache

重要

DataCache对应一个快照。保留快照需要支付快照存储费用。对于不再使用的DataCache,建议您及时删除。

如果想要删除某个DataCache,可执行以下命令:

kubectl delete edc <edc-name>