すべてのプロダクト
Search
ドキュメントセンター

Platform For AI:ストレージのマウント

最終更新日:Aug 27, 2025

EAS は、モデルファイル、コードファイル、またはその他の構成ファイルをサービスインスタンスにアタッチするために、複数のストレージマウント方法をサポートしています。 この機能により、複数のインスタンス間でデータを共有できます。 マウントされたファイルは、イメージを再構築することなく、モデルの反復処理中またはコードの更新中に直接変更できるため、開発および運用保守 (O&M) コストを削減できます。 このトピックでは、EAS がサポートするマウントタイプとそれらの構成方法について説明します。

さまざまなタイプのストレージをマウントする

  • モデル、イメージ、ビデオなど、読み取りが主体の非構造化データには、OSS を使用します。

  • small ファイルの読み書きを頻繁に行う場合、または複数のサービスインスタンスで読み取り/書き込みディレクトリを共有する必要がある場合は、汎用型 NAS を使用します。

  • 極めて低い待機時間と高いスループットを必要とするハイパフォーマンスコンピューティング (HPC) または AI トレーニングには、超高速型 NAS ファイルシステムまたはCPFSを使用します。

  • 大規模な並列計算または AI トレーニングフレームワークには、CPFS を使用します。

説明
  • 凌雲リソースクォータを使用して EAS サービスをデプロイする場合にのみ、CPFS ファイルシステムをマウントできます。

  • NAS は、同じリージョン内の内部ネットワークアドレスからのみマウントをサポートしています。 NAS ファイルシステムが配置されている vSwitch への直接ネットワーク [接続] を確立する必要があります。 詳細については、「ネットワーク構成」をご参照ください。

OSS マウント

これは最も一般的なストレージマウント方法です。 次の図は、コンソールでの構成インターフェイスを示しています。

image

次のコードは、JSON 構成の例を示しています。

{
  "storage": [
        {
            "oss": {
                "path": "oss://bucket/path/", // OSS バケットパス
                "readOnly": false // 読み取り専用かどうか
            },
            "mount_path": "/mnt/data/" // マウントパス
        }
    ]
}

パラメーター:

パラメーター (コンソール)

パラメーター (JSON)

説明

URI

oss.path

ソース OSS バケットのパス。 バケットの作成方法の詳細については、「はじめに」をご参照ください。

マウントパス

mount_path

ストレージがマウントされるサービスインスタンス内の宛先パス。 このパスを使用して、ソースファイルまたはデータを読み取ることができます。 例: /mnt/data

読み取り専用

oss.readOnly

ストレージを読み取り専用モードでマウントするかどうかを指定します。

NAS マウント

汎用型 NAS、超高速型 NAS ファイルシステム、または CPFS などの NAS ファイルシステムは、同一リージョン内の内部ネットワークアドレスを使用してマウントできます。 また、NAS ファイルシステムが配置されている vSwitch への直接ネットワーク接続を確立する必要があります。 詳細については、「ネットワーク構成」をご参照ください。

次の図は、コンソールでの構成インターフェイスを示しています。image

次のコードは、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

ストレージがマウントされるサービスインスタンス内の宛先パス。 このパスを使用して、ソースファイルまたはデータを読み取ることができます。 例: /mnt/data

読み取り専用

nfs.readOnly

ストレージを読み取り専用モードでマウントするかどうかを指定します。

カスタムデータセットをマウントする

データまたは構成ファイルから PAI データセット を作成し、それをパブリック AI アセットとして登録できます。 これにより、サービスのデプロイ時にデータセットを簡単にマウントして参照できます。

説明

Object Storage Service (OSS) を使用するカスタムデータセットのみをマウントできます。

次の図は、コンソールでの構成インターフェイスを示しています。image

次のコードは、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

データセットがマウントされるサービスインスタンス内の宛先パス。 例: /mnt/data/

コードをマウントする

  • Git マウント: Git リポジトリからサービスインスタンスに、読み取り専用モードでコードをマウントします。コードは、インスタンスの起動時にプルされます。コードを変更した場合、その変更を反映させるには、サービスインスタンスを再起動する必要があります。

  • コード構成: Git リポジトリから PAI コードセットを作成し、公開 AI アセットとして登録できます。これにより、サービスをデプロイする際に、コードセットを簡単にマウントおよび参照できます。

Git マウント

次の図は、コンソールでの構成インターフェイスを示しています。image

次のコードは、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

リポジトリがマウントされるサービスインスタンス内の宛先パス。 例: /mnt/data

コード構成

このメソッドは、コードセットをサービスインスタンスに読み取り専用モードでマウントします。

次の図は、コンソールでの構成インターフェイスを示しています。image

次のコードは、JSON 構成の例を示しています。

"storage": [
        {
            "code": {
                "id": "code-4d3b42a1152****" // コードセット ID
            },
            "mount_path": "/mnt/data/" // マウントパス
        }
    ]

パラメーター:

パラメーター (コンソール)

パラメーター (JSON)

説明

コード設定

code.id

登録済みのコードセット。 コードセットを作成してその ID を取得する方法の詳細については、「コード構成」をご参照ください。

マウントパス

mount_path

コードセットがマウントされるサービスインスタンス内の宛先パス。 例: /data_image

PAI モデルをマウントする

サービスが必要とするモデルをパブリック PAI AI アセットとして登録して、PAI で一元管理できます。 詳細については、「モデルの登録と管理」をご参照ください。 その後、サービスデプロイ中に、モデルをサービスインスタンスに読み取り専用モードでマウントできます。

次の図は、コンソールでの構成インターフェイスを示しています。

image

パラメーター:

パラメーター (コンソール)

説明

PAI モデル

登録済みの PAI モデル。 モデルの作成方法の詳細については、「モデルの登録と管理」をご参照ください。

マウントパス

モデルがマウントされるサービスインスタンス内の宛先パス。 例: /mnt/data/

その他のマウント

  • イメージのマウント: このメソッドは、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

このパラメーターを /dev/shm に設定します。

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" // リソース名
    }
}

よくある質問

  1. OSS バケットをマウントした後に「ファイルが見つかりません」というエラーが表示されるのはなぜですか?

    このエラーは通常、パスが正しくないことが原因です。 マウント構成とアクセスパスを確認してください。

    たとえば、oss://my-bucket//mnt/data にマウントする場合、OSS 内の oss://my-bucket/subfolder/myfile.txt ファイルには、コンテナー内の /mnt/data/myfile.txt ではなく、/mnt/data/subfolder/myfile.txt パスを使用してアクセスする必要があります。

  2. FTP または SSH ツールを使用してインスタンスに接続してファイルをアップロードまたはダウンロードできますか?

    いいえ。 EAS インスタンスは FTP または SSH アクセスを提供しません。

  3. EAS サービスとは異なるリージョンにある OSS バケットをマウントできますか?

    いいえ。 EAS はリージョンをまたいで OSS バケットをマウントできません。 OSS の クロスリージョンレプリケーション 機能を使用して、EAS サービスと同じリージョンにある OSS バケットにデータを同期してください。

  4. ストレージがマウントされていない場合、インスタンスにダウンロードしたファイルはどこに保存されますか? ファイルはインスタンスのシステムディスクに保存されます。 インスタンスが再起動または更新されるとシステムディスクはクリアされ、データが失われます。 データを永続化するには、ストレージをマウントする必要があります。