OSS、NAS、データセット、コードセット、またはモデルを EAS サービスにマウントすると、インスタンス間でデータを共有し、イメージを再構築することなくコンテンツを更新できます。
ストレージソリューションの選択
まずストレージタイプを選択し、次にマウント方法を選択します。
1. 基盤となるストレージタイプの選択
データ特性とパフォーマンス要件に基づいて選択します。
|
ストレージタイプ |
ファイル特性 |
読み取り/書き込みパターン |
パフォーマンス特性 |
一般的なユースケース |
|
OSS |
大量の大規模ファイル |
読み取り中心 |
高スループット、低コスト |
モデルファイルのストレージ、静的アセット管理 |
|
汎用 NAS |
中規模から大規模のファイル |
読み書き混在、複数インスタンスで共有 |
中程度の IOPS、中程度のレイテンシー |
複数インスタンスの共有ディレクトリ、設定ファイル管理 |
|
Extreme NAS |
大量の小規模ファイル |
高頻度、低レイテンシーの読み取り/書き込み操作 |
低レイテンシー、高 IOPS |
AI トレーニング、ハイパフォーマンスコンピューティング |
|
CPFS |
超大規模ファイル |
大規模並列読み取り/書き込み |
極めて低いレイテンシー、極めて高いスループット |
分散トレーニング、大規模並列コンピューティング |
推奨事項:
-
コストを重視するアプリケーション:OSS はストレージコストが最も低く、パフォーマンスが重要でない大容量データに適しています。
-
パフォーマンスを重視するアプリケーション:パフォーマンスは以下の順になります:CPFS > Extreme NAS > 汎用 NAS > OSS。予算とパフォーマンス要件に基づいて選択してください。
-
組み合わせによる使用:複数のストレージタイプを同時にマウントできます。たとえば、大規模モデルには OSS を使用し、共有設定ファイルには汎用 NAS を使用します。
-
移行パス:まず OSS で迅速に検証し、必要に応じて本番環境では NAS または CPFS にアップグレードします。
-
CPFS には Lingjun コンピューティングリソースクォータが必要です。
-
EAS サービスと NAS マウントターゲットは同じ VPC 内に存在する必要があります。詳細については、EASからパブリックまたは内部リソースへのアクセスをご参照ください。
2. マウント方法の選択
ユースケースに基づいてマウント方法を選択します。
|
マウント方法 |
ユースケース |
主な利点 |
説明 |
|
ストレージパスの直接マウント |
迅速な検証、一時的な使用 |
シンプルな設定、オンデマンド使用 |
OSS または NAS パスを直接指定 |
|
PAI データセットのマウント |
データバージョン管理、チームコラボレーション |
バージョン管理、アセットの再利用 |
OSS または NAS パスをデータセットとして登録 |
|
Git からのマウント |
アプリケーションコードとスクリプトのデプロイ |
コードのバージョン管理 |
Git リポジトリからプル、読み取り専用マウント |
|
PAI コードセットのマウント |
企業コードアセット管理 |
標準化された管理、監査とトレーサビリティ |
Git リポジトリをコードセットとして登録 |
|
PAI モデルのマウント |
モデルバージョン管理 |
モデルのイテレーション、チームコラボレーション |
モデルを PAI AI アセットとして登録 |
基本的なストレージマウント
OSS マウント
ユースケース
-
大規模なモデルファイル (GB レベル以上) の保存。
-
推論に必要な静的アセット (画像、動画、設定ファイルなど) の保存。
-
データの読み取りが主な操作である、読み取りが多いワークロード。
-
低コストのストレージを必要とする、コストに敏感なアプリケーション。
設定
コンソールのストレージマウントセクションで、OSS を選択し、バケットとマウントパスを指定します。
JSON の例:
{
"storage": [
{
"oss": {
"path": "oss://bucket/path/",
"readOnly": false
},
"mount_path": "/mnt/data/"
}
]
}
パラメーター:
|
パラメーター (コンソール) |
パラメーター (JSON) |
説明 |
|
URI |
oss.path |
ソース OSS バケットパス。バケットを作成するには、「クイックスタート」をご参照ください。 |
|
マウントパス |
mount_path |
サービスインスタンス内の宛先パス。このパスからソースファイルにアクセスします。例: |
|
読み取り専用 |
oss.readOnly |
読み取り専用モードでマウントするかどうか。 |
NAS マウント
NAS マウントは、汎用 NAS、エクストリーム NAS、CPFS をサポートしており、「ストレージソリューションの選択」で説明されているネットワーク要件が適用されます。
JSON の例:
{
"storage": [
{
"nfs": {
"path": "/",
"server": "06ba74****-a****.cn-hangzhou.nas.aliyuncs.com",
"readOnly": false
},
"mount_path": "/mnt/data/"
}
]
}
パラメーター:
|
パラメーター (コンソール) |
パラメーター (JSON) |
説明 |
|
ストレージ権限リソースグループ |
nfs.resourceGroup |
ファイルシステムを所有するリソースグループ。リソースグループでファイルシステムをフィルタリングします。「リソースグループの設計に関するベストプラクティス」をご参照ください。 [すべてのストレージ権限リソースグループ] を選択した場合、JSON ファイルでこのパラメーターを設定する必要はありません。 |
|
ファイルシステムを選択 |
N/A |
NAS ファイルシステム ID。お使いのリージョンの NAS コンソール で確認できます。 |
|
ファイルシステムのマウントターゲット |
nfs.server |
NAS マウントターゲットアドレス。「マウントターゲットアドレスの表示」で確認できます。 説明
コンソールでマウントターゲットを選択すると、関連する VPC が自動的に選択されます。 |
|
ファイルシステムパス |
nfs.path |
NAS ファイルシステム内のソースパス ( |
|
マウントパス |
mount_path |
サービスインスタンス内の宛先パス。例: |
|
読み取り専用 |
nfs.readOnly |
読み取り専用モードでマウントするかどうか。 |
Git マウント
JSON の例:
{
"storage": [
{
"git": {
"repo": "https://codeup.aliyun.com/xxx/eas/aitest.git",
"branch": "master",
"username": "username",
"password": "password or access token"
},
"mount_path": "/mnt/data/"
}
]
}
パラメーター:
|
パラメーター (コンソール) |
パラメーター (JSON) |
説明 |
|
Git URL |
git.repo |
Git リポジトリの HTTPS URL。Git プロトコルはサポートされていません。 |
|
ブランチ |
git.branch |
プルするブランチ。デフォルト:master。 |
|
コミット |
git.commit |
プルするコミット ID。このパラメーターを指定すると、 |
|
Git ユーザー名 |
git.username |
プライベートリポジトリ認証用のユーザー名。 |
|
アクセストークン |
git.password |
プライベート Git リポジトリのパスワードまたはアクセストークン。「付録:GitHub アカウントのトークンを取得する」をご参照ください。 |
|
マウントパス |
mount_path |
サービスインスタンス内の宛先パス。例: |
プラットフォームアセットのマウント
集中管理と再利用のために、PAI AI アセットとして登録されたデータセット、コードセット、モデルをマウントします。
データセットのマウント
デプロイ間でのバージョン管理と再利用のために、データまたは設定ファイルを PAI の データセット として登録します。
OSS、汎用 NAS、エクストリーム NAS、および CPFS に基づくカスタムデータセットをサポートします。
JSON の例:
"storage": [
{
"dataset": {
"id": "d-pcsah1t86bm8******",
"version": "v1",
"read_only": false
},
"mount_path": "/mnt/data/"
}
]
パラメーター:
|
パラメーター (コンソール) |
パラメーター (JSON) |
説明 |
|
カスタムデータセット |
dataset.id |
登録済みのカスタムデータセットです。データセットの作成と管理で作成し、ID を確認できます。 |
|
バージョン |
version |
データセットのバージョンです。例: v1。 |
|
読み取り専用 |
dataset.read_only |
データセットを読み取り専用モードでマウントするかどうかを指定します。 |
|
マウントパス |
mount_path |
サービスインスタンス内の宛先パスです。例: |
コードセットのマウント
Git リポジトリを PAI の コードセット として登録します。コードセットは読み取り専用モードでマウントされます。
JSON の例:
"storage": [
{
"code": {
"id": "code-4d3b42a1152****"
},
"mount_path": "/mnt/data/"
}
]
パラメーター:
|
パラメーター (コンソール) |
パラメーター (JSON) |
説明 |
|
コード設定 |
code.id |
登録済みのコードセットです。コード設定で作成し、ID を確認できます。 |
|
マウントパス |
mount_path |
サービスインスタンス内の宛先パスです。例: |
PAI モデルのマウント
バージョンとメタデータを集中管理するために、モデルを PAI AI アセットとして登録します。モデルは読み取り専用モードでマウントされます。「モデルの登録と管理」をご参照ください。
パラメーター:
|
パラメーター (コンソール) |
説明 |
|
PAI モデル |
登録済みの PAI モデルです。モデルの登録と管理で作成します。 |
|
マウントパス |
モデルのマウント先パスです。例: |
高度なマウントオプション
EAS は、次の追加のマウント方法をサポートしています:
-
イメージマウント:Docker イメージパスから一時的なローカルボリュームにファイルをコピーし、その後サービスインスタンスにマウントします。ディレクトリが大きいほどストレージ使用量と起動時間が増加します。
-
emptyDir マウント:実行中のインスタンス向けの一時的なローカルストレージです。予期しない再起動が発生しても内容は保持されます。キャッシュや一時ファイルに使用します。
イメージマウント
JSON で設定します:
{
"storage": [
{
"image": {
"image": "registry-vpc.cn-xxxx.aliyuncs.com/eas/image_name:v1",
"path": "/path/to/mount/"
},
"mount_path": "/data_image"
}
]
}
イメージは、同一リージョン内の内部ネットワークアドレスからのみマウントできます。プライベートイメージの場合は、dockerAuth パラメーターを使用して認証を行います。dockerAuth は、カスタムイメージを使用するに記載された手順に従って設定してください。
パラメーター:
|
パラメーター (JSON) |
説明 |
|
image.image |
イメージリポジトリの内部ネットワークアドレスです。 |
|
image.path |
コピー元となるイメージ内のソースパスです。 |
|
mount_path |
コピーしたファイルの宛先パスです。例: |
emptyDir マウント
JSON で設定します:
{
"storage": [
{
"empty_dir": {},
"mount_path": "/mnt/temp"
}
]
}
パラメーター:
|
パラメーター (JSON) |
説明 |
|
mount_path |
サービスインスタンス内の宛先パスです。 |
|
empty_dir |
値が空マップの emptyDir です。データはローカルディスクに保存されます。ほかのプロパティはサポートされていません。 |
共有メモリの設定
より高いパフォーマンスを得るには、共有メモリボリューム (tmpfs) をマウントします:
{
"storage": [
{
"empty_dir": {
"medium": "memory",
"size_limit": 20
},
"mount_path": "/dev/shm"
}
]
}
パラメーター:
|
パラメーター (JSON) |
説明 |
|
medium |
このパラメーターを memory に設定します。 |
|
mount_path |
このパラメーターを |
|
size_limit |
メモリサイズの上限 (単位: GB) です。 |
JSON 設定の例
以下は、完全な設定例です。JSON によるデプロイメントについては、「JSON を使用したサービスのデプロイメント」をご参照ください。
{
"name": "service_name",
"model_path": "http://path/to/model",
"processor": "pmml",
"storage": [
{
"oss": {
"path": "oss://bucket/path/",
"readOnly": false
},
"mount_path": "/mnt/oss_data/"
},
{
"nfs": {
"path": "/",
"server": "06ba74****-a****.cn-hangzhou.nas.aliyuncs.com",
"readOnly": false
},
"mount_path": "/mnt/nfs_data/"
},
{
"image": {
"image": "registry-vpc.cn-shanghai.aliyuncs.com/eas/test_image:v1",
"path": "/path/to/mount/"
},
"mount_path": "/data_image"
},
{
"empty_dir": {
"medium": "memory",
"size_limit": 20
},
"mount_path": "/dev/shm"
},
{
"git": {
"repo": "https://codeup.aliyun.com/xxx/eas/aitest.git",
"branch": "master",
"commit": "xxx",
"username": "username",
"password": "password or access token"
},
"mount_path": "/mnt/git_code/"
}
],
"metadata": {
"cpu": 1,
"instance": 1,
"resource": "eas-r-xxx"
}
}
よくある質問
-
OSS バケットをマウントした後に「file not found」エラーが表示されるのはなぜですか?
通常、パスが正しくないことが原因です。マウント設定とアクセスパスを確認してください。
たとえば、
oss://my-bucket/を/mnt/dataにマウントした場合、OSS のoss://my-bucket/subfolder/myfile.txtにあるファイルには、コンテナ内のパス/mnt/data/subfolder/myfile.txtからアクセスする必要があり、/mnt/data/myfile.txtからはアクセスできません。 -
ネットワーク接続の問題により NAS マウントが失敗した場合、どうすればよいですか?
NAS のマウントには、EAS サービスと NAS マウントターゲットが同じ VPC 内にある必要があります。次の点を確認してください:
-
VPC の一致:EAS サービスと NAS マウントターゲットの VPC ID が同じであることを確認してください。
-
ネットワーク設定:NAS にアクセスするには、「EAS からパブリックまたは内部リソースへのアクセス」の手順に従ってネットワークを設定してください。
-
マウントターゲットのステータス:NAS マウントターゲットが存在し、
Available状態であることを確認してください。
-
-
認証エラーにより Git マウントが失敗した場合、どうすればよいですか?
次の点を確認してください:
-
アクセス トークンの有効性:Git アクセス トークンが期限切れになっておらず、リポジトリに対する読み取り権限があることを確認してください。
-
リポジトリの権限:プライベートリポジトリの場合、ユーザー名とパスワードまたはトークンが正しく、読み取り権限があることを確認してください。
-
リポジトリアドレスの形式:
https://github.com/user/repo.gitのように、HTTPS プロトコルを使用してください。Git プロトコルはサポートされていません。 -
ブランチ/コミットの存在:指定されたブランチ名またはコミット ID がリポジトリに存在することを確認してください。
-
-
マウントパスの競合によりサービスの起動に失敗した場合、どうすればよいですか?
マウントパスの競合は、次の理由により発生する可能性があります:
-
マウントパスの重複:同じサービス内で、複数のストレージ設定が同じマウントパスを使用しています。各ストレージの
mount_pathが一意であることを確認してください。 -
システムディレクトリの競合:マウントパスは、
/bin、/etc、/usr、または/libなどの重要なシステムディレクトリにすることはできません。代わりに/mntまたは/data配下のパスを使用してください。 -
パス形式の誤り:マウントパスは、スラッシュ (
/) で始まる絶対パスである必要があります。
-
-
FTP または SSH ツールを使用してインスタンスに接続し、ファイルをアップロードまたはダウンロードできますか?
いいえ。EAS インスタンスは FTP または SSH アクセスを提供していません。
-
EAS サービスとは異なるリージョンにある OSS バケットをマウントできますか?
いいえ。EAS はリージョンをまたいで OSS バケットをマウントすることはできません。OSS のクロスリージョンレプリケーション機能を使用して、EAS サービスと同じリージョンの OSS バケットにデータを同期してください。
-
ストレージがマウントされていない場合、インスタンスにダウンロードしたファイルはどこに保存されますか?
ファイルはインスタンスのシステムディスクに保存されますが、これはエフェメラルです。インスタンスが再起動または更新されると、システムディスク上のデータは失われます。データを永続的に保存するには、外部ストレージをマウントしてください。