EAS は、モデルファイル、コードファイル、またはその他の構成ファイルをサービスインスタンスにアタッチするために、複数のストレージマウント方法をサポートしています。 この機能により、複数のインスタンス間でデータを共有できます。 マウントされたファイルは、イメージを再構築することなく、モデルの反復処理中またはコードの更新中に直接変更できるため、開発および運用保守 (O&M) コストを削減できます。 このトピックでは、EAS がサポートするマウントタイプとそれらの構成方法について説明します。
さまざまなタイプのストレージをマウントする
モデル、イメージ、ビデオなど、読み取りが主体の非構造化データには、OSS を使用します。
small ファイルの読み書きを頻繁に行う場合、または複数のサービスインスタンスで読み取り/書き込みディレクトリを共有する必要がある場合は、汎用型 NAS を使用します。
極めて低い待機時間と高いスループットを必要とするハイパフォーマンスコンピューティング (HPC) または AI トレーニングには、超高速型 NAS ファイルシステムまたはCPFSを使用します。
大規模な並列計算または AI トレーニングフレームワークには、CPFS を使用します。
凌雲リソースクォータを使用して EAS サービスをデプロイする場合にのみ、CPFS ファイルシステムをマウントできます。
NAS は、同じリージョン内の内部ネットワークアドレスからのみマウントをサポートしています。 NAS ファイルシステムが配置されている vSwitch への直接ネットワーク [接続] を確立する必要があります。 詳細については、「ネットワーク構成」をご参照ください。
OSS マウント
これは最も一般的なストレージマウント方法です。 次の図は、コンソールでの構成インターフェイスを示しています。

次のコードは、JSON 構成の例を示しています。
{
"storage": [
{
"oss": {
"path": "oss://bucket/path/", // OSS バケットパス
"readOnly": false // 読み取り専用かどうか
},
"mount_path": "/mnt/data/" // マウントパス
}
]
}パラメーター:
パラメーター (コンソール) | パラメーター (JSON) | 説明 |
URI | oss.path | ソース OSS バケットのパス。 バケットの作成方法の詳細については、「はじめに」をご参照ください。 |
マウントパス | mount_path | ストレージがマウントされるサービスインスタンス内の宛先パス。 このパスを使用して、ソースファイルまたはデータを読み取ることができます。 例: |
読み取り専用 | oss.readOnly | ストレージを読み取り専用モードでマウントするかどうかを指定します。 |
NAS マウント
汎用型 NAS、超高速型 NAS ファイルシステム、または CPFS などの NAS ファイルシステムは、同一リージョン内の内部ネットワークアドレスを使用してマウントできます。 また、NAS ファイルシステムが配置されている vSwitch への直接ネットワーク接続を確立する必要があります。 詳細については、「ネットワーク構成」をご参照ください。
次の図は、コンソールでの構成インターフェイスを示しています。
次のコードは、JSON 構成の例を示しています。
{
"storage": [
{
"nfs": {
"path": "/", // ファイルシステムパス
"server": "06ba74****-a****.cn-hangzhou.nas.aliyuncs.com", // マウントポイントアドレス
"readOnly": false // 読み取り専用かどうか
},
"mount_path": "/mnt/data/" // マウントパス
}
]
}パラメーター:
パラメーター (コンソール) | パラメーター (JSON) | 説明 |
ストレージ権限リソースグループ | nfs.resourceGroup | ファイルシステムが属するリソースグループ。 このパラメーターは、リソースグループごとにファイルシステムをフィルタリングします。 リソースグループの詳細については、「リソースグループ設計のベストプラクティス」をご参照ください。 [すべてのストレージ権限リソースグループ] を選択した場合、JSON ファイルでこのパラメーターを設定する必要はありません。 |
ファイルシステムの選択 | なし | 作成された NAS ファイルシステムの ID。 NAS コンソール に [ログイン] して、対応するリージョンで NAS ファイルシステム ID を表示できます。 |
ファイルシステムマウントターゲット | nfs.server | NAS マウントポイントのアドレス。 EAS は、マウントポイントを介して NAS ファイルシステムにアクセスします。 アドレスの表示方法の詳細については、「マウントポイントアドレスを表示する」をご参照ください。 説明 コンソールでマウントポイントを選択すると、システムはマウントポイントに関連付けられている VPC を自動的に選択します。 |
ファイルシステムパス | nfs.path | マウントする NAS ファイルシステム内のソースパス。 これは、NAS インスタンス内のパスです。 例: |
マウントパス | mount_path | ストレージがマウントされるサービスインスタンス内の宛先パス。 このパスを使用して、ソースファイルまたはデータを読み取ることができます。 例: |
読み取り専用 | nfs.readOnly | ストレージを読み取り専用モードでマウントするかどうかを指定します。 |
カスタムデータセットをマウントする
データまたは構成ファイルから PAI データセット を作成し、それをパブリック AI アセットとして登録できます。 これにより、サービスのデプロイ時にデータセットを簡単にマウントして参照できます。
Object Storage Service (OSS) を使用するカスタムデータセットのみをマウントできます。
次の図は、コンソールでの構成インターフェイスを示しています。
次のコードは、JSON 構成の例を示しています。
"storage": [
{
"dataset": {
"id": "d-pcsah1t86bm8******", // データセット ID
"version": "v1", // バージョン
"read_only": false // 読み取り専用かどうか
},
"mount_path": "/mnt/data/" // マウントパス
}
]パラメーター:
パラメーター (コンソール) | パラメーター (JSON) | 説明 |
カスタムデータセット | dataset.id | 登録済みの Object Storage Service (OSS) タイプのカスタムデータセット。 カスタムデータセットを作成してその ID を取得する方法の詳細については、「データセットの作成と管理」をご参照ください。 |
バージョン | version | データセットのバージョン。 例: v1。 |
読み取り専用 | dataset.read_only | データセットを読み取り専用モードでマウントするかどうかを指定します。 |
マウントパス | mount_path | データセットがマウントされるサービスインスタンス内の宛先パス。 例: |
コードをマウントする
Git マウント: Git リポジトリからサービスインスタンスに、読み取り専用モードでコードをマウントします。コードは、インスタンスの起動時にプルされます。コードを変更した場合、その変更を反映させるには、サービスインスタンスを再起動する必要があります。
コード構成: Git リポジトリから PAI コードセットを作成し、公開 AI アセットとして登録できます。これにより、サービスをデプロイする際に、コードセットを簡単にマウントおよび参照できます。
Git マウント
次の図は、コンソールでの構成インターフェイスを示しています。
次のコードは、JSON 構成の例を示しています。
{
"storage": [
{
"git": {
"repo": "https://codeup.aliyun.com/xxx/eas/aitest.git", // Git リポジトリアドレス
"branch": "master", // ブランチ
"commit": "xxx", // コミット ID
"username": "username", // ユーザー名
"password": "password or access token" // パスワードまたはアクセストークン
},
"mount_path": "/mnt/data/" // マウントパス
}
]
}パラメーター:
パラメーター (コンソール) | パラメーター (JSON) | 説明 |
Git URL | git.repo | マウントする Git リポジトリの HTTPS アドレス。 Git プロトコルはサポートされていません。 |
ブランチ | git.branch | プルする Git リポジトリのブランチ。 デフォルト値は master です。 |
コミット | git.commit | プルする Git リポジトリのコミット ID。 |
ユーザー名 | git.username | プライベート Git リポジトリに [ログイン] するために使用されるユーザー名。 |
アクセストークン | git.password | プライベート Git リポジトリに [ログイン] するために使用されるパスワードまたはアクセストークン。 トークンの取得方法の詳細については、「付録: GitHub アカウントのトークンを取得する」をご参照ください。 |
マウントパス | mount_path | リポジトリがマウントされるサービスインスタンス内の宛先パス。 例: |
コード構成
このメソッドは、コードセットをサービスインスタンスに読み取り専用モードでマウントします。
次の図は、コンソールでの構成インターフェイスを示しています。
次のコードは、JSON 構成の例を示しています。
"storage": [
{
"code": {
"id": "code-4d3b42a1152****" // コードセット ID
},
"mount_path": "/mnt/data/" // マウントパス
}
]パラメーター:
パラメーター (コンソール) | パラメーター (JSON) | 説明 |
コード設定 | code.id | 登録済みのコードセット。 コードセットを作成してその ID を取得する方法の詳細については、「コード構成」をご参照ください。 |
マウントパス | mount_path | コードセットがマウントされるサービスインスタンス内の宛先パス。 例: |
PAI モデルをマウントする
サービスが必要とするモデルをパブリック PAI AI アセットとして登録して、PAI で一元管理できます。 詳細については、「モデルの登録と管理」をご参照ください。 その後、サービスデプロイ中に、モデルをサービスインスタンスに読み取り専用モードでマウントできます。
次の図は、コンソールでの構成インターフェイスを示しています。

パラメーター:
パラメーター (コンソール) | 説明 |
PAI モデル | 登録済みの PAI モデル。 モデルの作成方法の詳細については、「モデルの登録と管理」をご参照ください。 |
マウントパス | モデルがマウントされるサービスインスタンス内の宛先パス。 例: |
その他のマウント
イメージのマウント: このメソッドは、Docker イメージからディレクトリをサービスインスタンスに直接マウントしません。代わりに、まずソースイメージの指定されたディレクトリからローカル共有ボリュームにファイルをコピーし、次にランタイムにローカル共有ボリュームをマウントします。マウントするディレクトリに大量のデータが含まれている場合、このプロセスは大量のローカル記憶域を消費し、インスタンスの起動時間が長くなる可能性があります。この機能は、必要な場合にのみ使用してください。
EmptyDir マウント: この方法を使用すると、インスタンスは実行時にローカルディスクのディレクトリへの読み取りと書き込みができます。これにより、インスタンスが予期せず再起動した場合でも、書き込まれた内容は失われません。
イメージマウント
構成方法
{ "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
イメージがマウントされるサービスインスタンス内の宛先パス。 例:
/data_image。
EmptyDir マウント
構成方法
{ "name": "service_name", // サービス名 "storage": [ { "empty_dir": {}, // EmptyDir タイプ "mount_path": "/data_image" // マウントパス } ] }パラメーター
パラメーター (JSON)
説明
mount_path
サービスインスタンス内の宛先パス。
empty_dir
EmptyDir タイプを示す空のマップ値。 これはデータをローカルディスクに保存します。 他のプロパティは構成できません。
共有メモリの構成
高いストレージパフォーマンスが必要な場合は、次の構成を使用して共有メモリを有効にします。
{
"storage": [
{
"empty_dir": { // EmptyDir タイプ
"medium": "memory", // メモリを指定
"size_limit": 20 // メモリの上限 (GB)
},
"mount_path": "/dev/shm" // マウントパス
}
]
}ここで:
パラメーター (JSON) | 説明 |
medium | このパラメーターを memory に設定します。 |
mount_path | このパラメーターを |
size_limit | メモリの上限。 単位: GB。 |
完全な JSON 構成例
次のコードは、完全な構成例を示しています。 詳細については、「JSON を使用してサービスをデプロイする」をご参照ください。
{
"name": "service_name", // サービス名
"model_path": "http://path/to/model", // モデルパス
"processor": "pmml", // プロセッサ
"storage": [
{
"oss": {
"path": "oss://bucket/path/", // OSS バケットパス
"readOnly": false // 読み取り専用かどうか
},
"mount_path": "/mnt/data/" // マウントパス
},
{
"nfs": {
"path": "/", // ファイルシステムパス
"server": "06ba74****-a****.cn-hangzhou.nas.aliyuncs.com", // マウントポイントアドレス
"readOnly": false // 読み取り専用かどうか
},
"mount_path": "/mnt/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 // メモリの上限 (GB)
},
"mount_path": "/dev/shm" // マウントパス
},
{
"git": {
"repo": "https://codeup.aliyun.com/xxx/eas/aitest.git", // Git リポジトリアドレス
"branch": "master", // ブランチ
"commit": "xxx", // コミット ID
"username": "username", // ユーザー名
"password": "password or access token" // パスワードまたはアクセストークン
},
"mount_path": "/mnt/data/" // マウントパス
}
],
"metadata": {
"cpu": 1, // CPU 数
"instance": 1, // インスタンス数
"resource": "eas-r-xxx" // リソース名
}
}よくある質問
OSS バケットをマウントした後に「ファイルが見つかりません」というエラーが表示されるのはなぜですか?
このエラーは通常、パスが正しくないことが原因です。 マウント構成とアクセスパスを確認してください。
たとえば、
oss://my-bucket/を/mnt/dataにマウントする場合、OSS 内のoss://my-bucket/subfolder/myfile.txtファイルには、コンテナー内の/mnt/data/myfile.txtではなく、/mnt/data/subfolder/myfile.txtパスを使用してアクセスする必要があります。FTP または SSH ツールを使用してインスタンスに接続してファイルをアップロードまたはダウンロードできますか?
いいえ。 EAS インスタンスは FTP または SSH アクセスを提供しません。
EAS サービスとは異なるリージョンにある OSS バケットをマウントできますか?
いいえ。 EAS はリージョンをまたいで OSS バケットをマウントできません。 OSS の クロスリージョンレプリケーション 機能を使用して、EAS サービスと同じリージョンにある OSS バケットにデータを同期してください。
ストレージがマウントされていない場合、インスタンスにダウンロードしたファイルはどこに保存されますか? ファイルはインスタンスのシステムディスクに保存されます。 インスタンスが再起動または更新されるとシステムディスクはクリアされ、データが失われます。 データを永続化するには、ストレージをマウントする必要があります。