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

Platform For AI:サービスへのストレージのマウント (高度)

最終更新日:Jul 22, 2024

このトピックでは、サービスインスタンスにマウントできる外部ストレージの種類について説明します。Object storage service (OSS) 、Apsara File Storage NAS (NAS) 、Gitリポジトリ、Dockerイメージ、およびemptyDirボリュームです。

背景情報

Elastic Algorithm Service (EAS) では、OSS、NAS、Gitリポジトリ、Dockerイメージ、emptyDirボリュームの外部ストレージをマウントできます。 サービスのランタイムでは、特定のストレージをサービスの1つ以上のインスタンスにマウントできます。 ビジネス要件に基づいて、1つ以上のタイプの外部ストレージをマウントできます。 外部ストレージをマウントするには、サービス構成ファイルにストレージフィールドを追加します。 このフィールドは、ストレージタイプ、マウントするストレージのパス、およびストレージをマウントするサービスインスタンスのパスを指定するために使用されます。

OSSバケットのマウント

OSSバケットをマウントするには、Machine Learning Platform for AI (PAI) コンソールのElastic Algorithm Serviceページで、OSSバケットの指定されたパスを読み取る権限をEASに付与する必要があります。 詳細については、「必要なAlibaba Cloudサービスの有効化と権限付与」をご参照ください。

  • サービス構成ファイルのサンプル構成:

    {
      "name": "service_name",
      "storage": [
            {
                "mount_path": "/data_oss",
                "oss": {
                    "endpoint": "oss-cn-shanghai-internal.aliyuncs.com",
                    "path": "oss://bucket/path/"
                }
            }
        ]
    }
  • パラメーター

    パラメーター

    説明

    mount_path

    ストレージをマウントするサービスインスタンス上のパス。

    oss.endpoint

    サービスインスタンスが存在するリージョンのOSSの内部エンドポイント。 内部エンドポイントには-internalが含まれます。

    oss.path

    マウントするOSSバケットのパス。 パスはoss:// で始める必要があります。

説明

OSSバケットは、専用リソースグループ内のサービスインスタンスにのみマウントできます。

NASファイルシステムのマウント

サービスインスタンスと同じリージョンにあるNASファイルシステムをマウントできます。 NASファイルシステムをマウントするには、NASファイルシステムのマウントターゲットの内部ドメイン名を使用し、NASファイルシステムが存在する仮想プライベートクラウド (VPC) にサービスインスタンスを接続する必要があります。 ネットワーク接続の設定方法の詳細については、「ネットワーク接続の設定」をご参照ください。

  • サービス構成ファイルのサンプル構成:

    {
        "name": "service_name",
        "storage": [
            {
                "mount_path": "/data_nas",
                "nfs": {
                    "path": "/",
                    "readOnly": false,
                    "server": "xxx.cn-shanghai.nas.aliyuncs.com"
                }
            }
        ]
    }
                            
  • パラメーター

    パラメーター

    説明

    mount_path

    ストレージをマウントするサービスインスタンス上のパス。

    nfs.path

    マウントするNASファイルシステムのパス。

    nfs.readOnly

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

    nfs.server

    マウントターゲットのドメイン名。

Gitリポジトリをマウントする

Gitリポジトリがサービスインスタンスにマウントされ、EASが読み取り専用モードでGitリポジトリにアクセスする場合、サービスインスタンスの起動中にGitリポジトリのコードをプルできます。 マウントされたGitリポジトリは自動的に更新されません。 ソースGitリポジトリのコードが変更された場合、サービスインスタンスを再起動して最新のコードを取得する必要があります。

  • サービス構成ファイルのサンプル構成:

    {
      "name": "service_name",
      "storage": [
        {
          "mount_path": "/data_git",
          "git": {
            "repo": "https://codeup.aliyun.com/xxx/eas/aitest.git",
            "username": "username",
            "password": "password or access token"
          }
        }
      ]
    }
  • パラメーター

    パラメーター

    必須

    説明

    mount_path

    ストレージをマウントするサービスインスタンス上のパス。

    git.repo

    マウントするGitリポジトリのHTTPSアドレス。 Gitプロトコルはサポートされていません。

    git.us ername

    不可

    プライベートGitリポジトリへのログインに使用されるユーザー名。

    git.password

    不可

    プライベートGitリポジトリへのログインに使用されるパスワード。

    git.brアンチ

    不可

    コードをプルするGitリポジトリのブランチ。 デフォルト値:master

    git.com mit

    不可

    コードをプルするGitリポジトリのコミットID。

Dockerイメージのマウント

Dockerイメージをサービスインスタンスに直接マウントすることはできません。 Dockerイメージのパスにあるファイルをローカル共有ボリュームにコピーし、共有ボリュームをサービスインスタンスにマウントする必要があります。 指定されたパスのデータ量が多い場合、より多くのローカルストレージが消費され、サービスインスタンスの起動に使用される期間が延長されます。 この機能を使用する場合は、これらの要素を考慮することをお勧めします。

  • {
        "name": "service_name",
        "storage": [
            {
                "image": {
                    "image": "registry-vpc.cn-shanghai.aliyuncs.com/eas/test_image:v1",
                    "path": "/path/to/mount/"
                },
                "mount_path": "/data_image"
            }
        ]
    }
    説明

    サービスインスタンスと同じリージョンにあるDockerイメージをマウントできます。 イメージをマウントするには、イメージの内部アドレスを使用する必要があります。 イメージがプライベートイメージリポジトリからのものである場合、dockerAuthパラメーターを設定して、プライベートイメージリポジトリへのアクセスに使用される認証情報を指定できます。 dockerAuthパラメーターの詳細については、「カスタムイメージを使用したモデルサービスのデプロイ」をご参照ください。

  • パラメーター

    パラメーター

    説明

    mount_path

    ストレージをマウントするサービスインスタンス上のパス。

    image.image

    イメージの内部アドレス。

    image.path

    サービスインスタンスにマウントするイメージのパス。

emptyDirボリュームをマウントする

次の要件を満たすために、emptyDirボリュームをサービスインスタンスにマウントできます。実行中のサービスインスタンスは、ローカルディスクからデータを読み書きできます。

  • サービス構成ファイルのサンプル構成:

    {
        "name": "service_name" 、
        "storage": [
            {
                "empty_dir": {}、
                "mount_path": "/data_image"
            }
        ]
    }
  • パラメーター

    パラメーター

    説明

    mount_path

    ストレージをマウントするサービスインスタンス上のパス。

    empty_dir

    emptyDirボリュームを指定するmapオブジェクト。 値は空のままにする必要があります。 このパラメーターで他のプロパティを設定することはできません。

共有メモリの設定

共有メモリの設定方法を次に示します。

{
    "name": "service_name" 、
    "storage": [
        {
            "empty_dir": {
              "medium": "memory" 、
              "size_limit": 20
            },
            "mount_path": "/dev/shm"
        }
    ]
}

パラメーター:

  • medium: このパラメーターをmemoryに設定します。

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

  • size_limit: 共有メモリサイズの上限を指定します。 単位は GB です。

完全な設定例

次のサンプルの完全な設定では、OSSバケット、NASファイルシステム、Gitリポジトリ、イメージ、およびemptyDirボリュームがサービスインスタンスにマウントされています。

{
    "name": "service_name",
    "model_path": "http://path/to/model",
    "processor": "pmml",
    "storage": [
        {
            "mount_path": "/data_oss1",
            "oss": {
                "endpoint": "oss-cn-shanghai-internal.aliyuncs.com",
                "path": "oss://bucket1/path/"
            }
        },
        {
            "mount_path": "/data_oss2",
            "oss": {
                "endpoint": "oss-cn-shanghai-internal.aliyuncs.com",
                "path": "oss://bucket2/path/"
            }
        },
        {
            "mount_path": "/data_nfs1",
            "nfs": {
                "path": "/",
                "readOnly": false,
                "server": "xxx.cn-shanghai.nas.aliyuncs.com"
            }
        },
        {
            "mount_path": "/data_nfs2",
            "nfs": {
                "path": "/",
                "readOnly": true,
                "server": "yyy.cn-shanghai.nas.aliyuncs.com"
            }
        },
        {
            "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"
        },
        {
            "mount_path": "/data_git",
            "git": {
                "repo": "https://codeup.aliyun.com/xxx/eas/aitest.git",
                "username": "username",
                "password": "password or access token"
            }
         }
    ],
    "metadata": {
        "cpu": 1,
        "instance": 1,
        "resource": "eas-r-xxx"
    }
}