DataCache のカスタムリソース定義 (CRD) をデプロイした後、DataCache を作成して、AI トレーニングモデルなどのワークロードに必要なデータを事前プルできます。このトピックでは、DataCache の設定パラメーターと、DataCache の作成、クエリ、削除方法について説明します。
前提条件
クラスターに DataCache CRD をデプロイする必要があります。詳細については、「DataCache CRD のデプロイ」をご参照ください。
DataCache の作成
パラメーター
次の YAML ファイルは、DataCache の設定パラメーターを示しています。
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` は Elastic Container Instance (ECI) 用に予約されているため、使用しないでください。
-
path:データが格納されるパス。
-
size:DataCache のサイズ (GiB)。デフォルト値は 20 GiB です。実際のデータ量に基づいて必要なサイズを見積もってください。
-
retentionDays:DataCache を保持する日数。システムは期限切れの DataCache を自動的に削除します。デフォルトでは、DataCache は無期限に保持されます。
-
dataSource:データソース。データソースの タイプ と設定 オプション が含まれます。
タイプ
説明
パラメーター
URL
URL
-
url:データをダウンロードする URL。 -
accessToken:非公開データをプルする際に認証を行うためにこのパラメーターを設定します。
HuggingFace または ModelScope
-
repoSource:ソースリポジトリ。有効な値は `ModelScope/Model`、`ModelScope/DataSet`、`HuggingFace/Model`、`HuggingFace/DataSet` です。ModelScope または HuggingFace からモデルまたはデータセットをプルするかどうかを指定します。 -
repoId:モデルまたはデータセットの ID。 -
revision:バージョン。デフォルト値は `main` または `master` です。 -
accessToken:非公開データをプルする際に認証を行うためにこのパラメーターを設定します。
NAS
NAS ファイルシステム
-
server:NAS ファイルシステムのマウントポイント。 -
path:マウントするサブディレクトリ。超高速型 NAS ファイルシステムの場合、パスは/shareで始まる必要があります (例:`/share/path`)。 -
vers:NAS ファイルシステムをマウントするための NFS プロトコルバージョン。v3 を推奨します。超高速型 NAS ファイルシステムは v3 のみをサポートします。 -
options:マウントオプション。File Storage NAS サービスが推奨するオプション (例:`nolock,tcp,noresvport`) を使用することを推奨します。
OSS
OSS バケット
-
bucket:OSS バケットの名前。 -
url:OSS エンドポイント。 -
path:バケットルートからの相対パスでマウントするサブディレクトリ。デフォルト値は/です。 -
otherOpts:OSS をマウントするためのカスタムパラメーター。フォーマットは-o *** -o ***です (例:`-o max_stat_cache_size=0 -o allow_other`)。 -
ramRole:権限付与に使用する RAM ロール。説明RAM ロールを作成し、それに権限を付与する必要があります。詳細については、「信頼できる Alibaba Cloud サービスの RAM ロールを作成する」および「RAM ロールに権限を付与する」をご参照ください。
ロールを作成する際、信頼できるエンティティタイプをAlibaba Cloud サービスに、ロールタイプをNormal Service Roleに、信頼されたサービスをElastic Compute Service に設定します。ロールに権限を付与する際は、AliyunOSSFullAccess ポリシーを選択します。
-
akId:直接権限付与に使用する AccessKey ID。詳細については、「AccessKey ペアの取得」をご参照ください。 -
akSecret:直接権限付与に使用する AccessKey Secret。詳細については、「AccessKey ペアの取得」をご参照ください。
SNAPSHOT
スナップショット
snapshotId:スナップショットの ID。 -
-
netConfig
-
securityGroupId:DataCache を生成する ECI インスタンスのセキュリティグループ ID。
-
vSwitchId:DataCache を生成する ECI インスタンスの vSwitch ID。
SNAT ゲートウェイが設定されていない vSwitch でインターネット経由でデータをプルするには、EIP をバインドできます。これを行うには、
netConfigの下に EIP 関連のパラメーターを追加します。netConfig: eipInstanceId: eip-2zey74a7zienoxf***** # Choose one: eipInstanceId or eipCreateParam eipCreateParam: # Choose one: eipInstanceId or eipCreateParam bandwidth: 5 commonBandwidthPackage: cbwp-2zeukbj916scmj5****** internetChargeType: PayByTraffic publicIpAddressPoolId: pippool-bp187arfugi543y1s**** ISP: BGP-
eipInstanceId:インターネットからデータをプルするためにバインドする既存の EIP の ID。vSwitch に SNAT ゲートウェイが設定されていない場合、このパラメーターを使用します。
-
eipCreateParam:新しい EIP を作成してバインドするためのパラメーター。指定された vSwitch に SNAT ゲートウェイが設定されておらず、利用可能な既存の EIP がない場合に使用します。
-
bandwidth:EIP の帯域幅。単位:Mbit/s。デフォルト値は 5 Mbit/s です。
-
commonBandwidthPackage:EIP に関連付ける既存の Internet Shared Bandwidth インスタンスの ID。詳細については、「Internet Shared Bandwidth」をご参照ください。
-
internetChargeType:EIP の課金方法。有効な値:`PayByBandwidth` および `PayByTraffic`。詳細については、「EIP の課金方法」をご参照ください。
-
publicIpAddressPoolId:EIP が割り当てられる IP アドレスプールの ID。IP アドレスプール機能はデフォルトでは有効になっていません。この機能を使用するには、クォータセンターで必要なクォータを申請する必要があります。詳細については、「IP アドレスプール」をご参照ください。
-
ISP:EIP の回線タイプ。有効な値:`BGP` (デフォルト) および `BGP_PRO`。詳細については、「EIP の回線タイプ」をご参照ください。
-
-
-
設定例
DataCache の YAML ファイル (例:datacache.yaml) を作成し、kubectl コマンドを実行して DataCache を作成します。
-
DataCache の作成
kubectl create -f datacache.yaml -
DataCache の更新
kubectl apply -f datacache.yaml
URL
-
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******
スナップショット
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 の管理
DataCache をクエリまたは削除する場合、次のいずれかの名前をリソースタイプ名として使用できます:
-
edc -
datacache -
datacaches -
datacaches.eci.aliyun.com
DataCache のクエリ
DataCache を作成した後、クラスター内のすべての DataCache をリスト表示したり、特定の DataCache の詳細を表示したりできます。
-
クラスター内のすべての DataCache をリスト表示する
kubectl get edc以下は出力例です。ステータスが `Available` の場合、DataCache が使用可能であることを示します。
~$ kubectl get datacache NAME AGE DATACACHEID STATUS PROGRESS BUCKET PATH test-snapshot 3m5s edc-2zef0yo3be9g8… Creating 27% default /demo/snapshot test-url-2 81m edc-2zehgoxuevp3er Available 100% default /demo/url -
特定の DataCache の詳細を表示する
kubectl describe edc <edc-name>以下のサンプル応答には、DataCache の基本情報、メタデータ、構成、ステータス、イベントが含まれています。
:~$ kubectl describe edc test-url-2 Name: test-url-2 Namespace: Labels: <none> Annotations: <none> API Version: eci.aliyun.com/v1alpha1 Kind: DataCache Metadata: Creation Timestamp: 2023-07-27T08:25:26Z Finalizers: eci.aliyun.com/datacachecontroller Generation: 1 Resource Version: 816839 UID: 70b90647-4915-45d5-a075-f0e3cf2fdcfb Spec: Bucket: default Data Source: Options: Repo Id: decapoda-research/llama-7b-hf Repo Source: HuggingFace/Model Type: URL Net Config: Security Group Id: sg-2zegwszw5xxx V Switch Id: vsw-2zeet2ksxxx Path: /demo/url Size: 20 Status: Data Cache Id: edc-2zehgoxuevpxxx Progress: 100% Snapshot Id: s-2zeib05j5bmxm:xxx Status: Available Events: Type Reason Age From Message ---- ------ ---- ---- ------- Normal Creating 31m datacache-controller Creating dataCache in ECI Normal Creating 31m datacache-controller ECI status: Pending Normal Success 30m datacache-controller Create dataCache in ECI successfully
DataCache の削除
各 DataCache はスナップショットに対応しており、ストレージコストが発生します。不要な課金を避けるため、不要になった DataCache は速やかに削除してください。
DataCache を削除するには、次のコマンドを実行します:
kubectl delete edc <edc-name>