デフォルトでは、パブリックリソースグループおよび専用リソースグループ内の DSW インスタンスのデータストレージは限られており、データは一定期間後にクリアされます。インスタンスのストレージを拡張したり、データを永続化したり、データを共有したりするには、データセットまたはストレージパスをインスタンスに直接マウントできます。
パブリックリソースグループ内の DSW インスタンスの場合、データは無料の 100 GiB のクラウドディスクに保存されます。インスタンスを削除するか、15 日以上停止すると、システムはクラウドディスク上のデータをクリアします。
専用リソースグループ内の DSW インスタンスの場合、データはインスタンスのシステムディスクに保存されます。インスタンスが停止または削除されると、システムはこの一時ストレージをクリアします。
データセットのマウントとストレージパスの直接マウントの違い
長期的なストレージとチームでの共同作業が必要な場合は、データセットをマウントします。一時的なタスクのためのストレージのみが必要な場合や、ストレージ容量を迅速に拡張したい場合は、ストレージパスを直接マウントします。
機能 | データセットのマウント | ストレージパスの直接マウント |
サポートされているクラウドプロダクト | Object Storage Service (OSS)、File Storage NAS、Cloud Parallel File Storage (CPFS) | |
バージョン管理 | バージョン管理とデータアクセラレーションをサポート | バージョン管理をサポートしない |
データ共有 | 複数のインスタンス間での共有をサポート | 現在のインスタンスでのみ利用可能 |
操作の複雑さ | データセットの作成と構成が必要 | シンプル。パスを直接マウントするだけ |
シナリオ | 長期的なストレージ、チームでの共同作業、および高いセキュリティ要件 | 一時的なタスク、迅速なストレージ拡張 |
起動時マウントと動的マウントの違い
ストレージは、起動時マウントと動的マウントの 2 つの方法でマウントできます。
起動時マウント:インスタンスの作成時または構成変更時にこのオプションを構成できます。変更を有効にするには、インスタンスを再起動する必要があります。
動的マウント:実行中のインスタンス内で PAI SDK を使用してストレージをマウントできます。この方法ではインスタンスの再起動は不要です。
制限事項
一意のパス:各データセットのマウントパスは一意である必要があります。
書き込み制限:OSS マウントディレクトリでの頻繁な書き込み操作は避けてください。パフォーマンスの低下や操作の失敗を引き起こす可能性があります。
Git 制限:OSS マウントディレクトリでは Git 操作はサポートされていません。Git コマンドは、ローカルディレクトリまたはマウントされていない別のパスで実行してください。
動的マウントの制限
読み取り専用の制限: 動的マウントは読み取り専用です。高速なマウントや一時的な読み取り専用アクセスが必要なシナリオに適しています。
ストレージタイプの制限:動的マウントは OSS と NAS のマウントのみをサポートします。
リソースの制限:動的マウントは Lingjun リソースをサポートしません。
起動時マウント
起動時にストレージをマウントするには、インスタンス構成ページでDataset Mounting または Storage Path Mounting パラメーターを設定できます。構成を有効にするには、インスタンスを再起動する必要があります。
データセットのマウント
データセットの作成
PAI コンソールにログインします。AI Asset Management > Dataset ページで、カスタムデータセットまたはパブリックデータセットを作成します。詳細については、「データセットの作成と管理」をご参照ください。
データセットのマウント
新しい DSW インスタンスの構成ページで、Dataset 構成エリアを見つけます。既存のインスタンスを変更するには、Change Settings をクリックしてページを開きます。Custom をクリックし、作成したデータセットを選択して、Mount Path を入力します。
カスタムデータセットのマウントに関する注意:
CPFS データセット:CPFS データセットを構成する場合、DSW インスタンスの VPC は CPFS ファイルシステムの VPC と同じである必要があります。そうでない場合、インスタンスの作成に失敗します。
NAS データセット:NAS データセットを構成する場合、ネットワークを設定し、セキュリティグループを選択する必要があります。
専用リソースグループの使用:専用リソースグループを使用する場合、最初のデータセットは NAS タイプである必要があります。このデータセットは、指定したパスとデフォルトの DSW 作業ディレクトリである
/home/admin/workspaceの両方にマウントされます。
ストレージパスの直接マウント
このセクションでは、Object Storage Service (OSS) パスをマウントする例を使用します。
OSS バケットの作成
重要バケットのリージョンは PAI のリージョンと同じである必要があります。バケットのリージョンは作成後に変更できません。
OSS パスのマウント
インスタンスの作成時、または既存のインスタンスの Change Settings をクリックして開く DSW インスタンス構成ページで、Storage Path Mounting エリアを探します。OSS をクリックし、作成した OSS Bucket パスを選択して、Mount Path を入力します。Advanced Configurations フィールドは、デフォルトでは空です。必要に応じて設定できます。詳細については、「詳細なマウント構成」をご参照ください。
動的マウント
動的マウントを使用すると、DSW インスタンス内で PAI SDK を使用してコードを記述することで、データセットまたはストレージパスをマウントできます。インスタンスを再起動する必要はありません。
注:動的マウントは読み取り専用で、OSS と NAS のマウントのみをサポートし、Lingjun リソースはサポートしません。
準備
PAI Python SDK のインストール。DSW インスタンスのターミナルを開き、次のコマンドを実行して PAI Python SDK をインストールします。Python 3.8 以降が必要です。
python -m pip install pai>=0.4.11PAI の SDK アクセスキーを構成します。
方法 1:DSW インスタンスにデフォルトの PAI ロールまたはカスタム RAM ロールを構成します。インスタンス設定ページの下部にある Show More をクリックして、インスタンスの RAM ロールを選択します。詳細については、「DSW インスタンスの RAM ロールの設定」をご参照ください。
方法 2:PAI Python SDK が提供するコマンドラインインターフェイスを使用して、手動でアクセスキーを構成します。ターミナルで次のコマンドを実行して、アクセスパラメーターを構成します。例については、「初期化」をご参照ください。
python -m pai.toolkit.config
例
動的マウントを使用すると、DSW インスタンスを再構成したり再起動したりすることなく、ストレージをマウントできます。次の例は、この機能の使用方法を示しています。
デフォルトパスへのマウント
データは、インスタンス内のデフォルトのマウントパスにマウントされます。公式のビルド済みランタイムイメージの場合、デフォルトパスは
/mnt/dynamic/です。from pai.dsw import mount # OSS パスをマウントします mount_point = mount("oss://<YourBucketName>/Path/Data/Directory/") # データセットをマウントします。入力パラメーターはデータセット ID です。 # mount_point = mount("d-m7rsmu350********")
指定したパスへのマウント
動的マウントでは、データを特定のパスまたはコンテナー内のサブディレクトリにマウントする必要があります。SDK API を使用して動的マウントパスを取得できます。
from pai.dsw import mount, default_dynamic_mount_path # インスタンスのデフォルトのマウントパスを取得します default_path = default_dynamic_mount_path() mount_point = mount("oss://<YourBucketName>/Path/Data/Directory" , mount_point=default_path + "tmp/output/model")
NAS ファイルシステムの動的マウント
from pai.dsw import mount, default_dynamic_mount_path # インスタンスのデフォルトのマウントパスを取得します default_path = default_dynamic_mount_path() # NAS をマウントします。NAS エンドポイントとインスタンスは同じ VPC 内にある必要があります。<region> をリージョン ID (例:cn-hangzhou) に置き換えます。 mount("nas://06ba748***-xxx.<region>.nas.aliyuncs.com/", default_path+"mynas3/")インスタンス内のすべてのマウント構成を表示できます。
from pai.dsw import list_dataset_configs print(list_dataset_configs())マウントされたデータのアンマウント
from pai.dsw import mount, unmount mount_point = mount("oss://<YourBucketName>/Path/Data/Directory/") # 入力パラメーターはマウントパスで、これは list_dataset_configs によってクエリされた MountPath です。 # unmount コマンドを実行した後、変更が有効になるまで数秒かかります。 unmount(mount_point)
高度なマウント構成
マウントを構成する際に、高速な読み書き、増分書き込み、読み取り専用アクセスなど、さまざまな読み書きシナリオに対応し、読み書きパフォーマンスを最適化するための詳細パラメーターも設定できます。
マウント構成の表示
DSW インスタンスを開き、Terminal で次のコマンドを入力して、NAS および OSS データセットがマウントされていることを確認します。
# すべてのマウントを表示
mount
# NAS マウントパスをクエリ
mount | grep nas
# OSS マウントパスをクエリ
mount | grep oss次のような出力は、マウントが成功したことを示します。
NAS データセットは /mnt/data_nas、/mnt/workspace、および /home/admin/workspace ディレクトリにマウントされます。この例では、/mnt/data_nas は DSW インスタンスの作成時に指定されたマウントパスであり、他の 2 つのパスは最初の NAS データセットがマウントされるデフォルトの作業ディレクトリです。NAS ボリュームとサービスが正常に実行されている限り、データとコードは永続的に保存されます。
OSS データセットは、DSW インスタンスの /mnt/data_oss ディレクトリにマウントされます。
よくある質問
Q:マウントした OSS ファイルが JupyterLab のファイルブラウザに表示されないのはなぜですか?
この問題は、DSW のファイルブラウザにはデフォルトの作業ディレクトリ (/mnt/workspace) が表示されるのに対し、ご利用の OSS パスは /mnt/data のような別の場所にマウントされているために発生します。そのため、ファイルは左側のファイルリストに表示されません。
解決策:
コード経由でのアクセス:ファイルはすでにマウントされています。コード内で、
open('/mnt/data/my_file.csv')のように、完全なマウントパスを使用してアクセスする必要があります。マウントターゲットの変更:UI でファイルを表示するには、マウントを構成する際に、マウントパスを作業ディレクトリのサブディレクトリ (例:
/mnt/workspace/my_oss_data) に設定します。マウントが完了すると、ファイルブラウザのmy_oss_dataフォルダに OSS ファイルが表示されます。ターミナル経由でのアクセス:DSW ターミナルで、
cd /mnt/dataコマンドを使用してマウントディレクトリに移動できます。その後、lsなどのコマンドを使用してファイルを表示および管理できます。
Q:DSW でマウントされた OSS パスにアクセスすると、「Transport endpoint is not connected」または「Input/output error」というエラーが表示されるのはなぜですか?
このエラーは、DSW インスタンスと OSS マウント間の接続が失われたことを示します。考えられる原因とトラブルシューティング方法は次のとおりです。
RAM ロールの権限の問題:DSW インスタンスに構成されている RAM ロールに、OSS へのアクセス権限 (例:
AliyunPAIDLCAccessingOSSRole) が付与されているかどうかを確認します。権限が不十分な場合、OSS からの読み取りに失敗することがよくあります。マウントサービスのリソース不足:多数の小さなファイルに対する集中的なランダム読み書き操作中に、基盤となるマウントサービス (
ossfsまたはJindoFuse) がメモリ不足 (OOM) になり、クラッシュする可能性があります。この問題は、マウント設定の詳細設定でメタデータキャッシュを無効にするか、メモリ構成を増やすことで軽減できます。 詳細については、JindoFuse をご参照ください。接続の復元:
起動時マウントの場合、最も簡単な解決策は DSW インスタンスを再起動することです。システムは自動的にマウント接続を再確立します。
PAI SDK を使用して動的マウントコマンドを実行し、インスタンスを再起動せずにパスを再マウントすることもできます。
Q:DSW ではどのような種類のデータをマウントできますか?Alibaba Cloud Drive や MaxCompute テーブルを直接マウントできますか?
DSW は、データセットを作成するか、ストレージパスを直接マウントすることで、OSS、NAS、および CPFS からのストレージのマウントをサポートします。
Alibaba Cloud Drive:直接マウントはサポートされていません。推奨されるアプローチは、必要なデータを OSS バケットにアップロードし、そのバケットを DSW インスタンスにマウントすることです。
MaxCompute テーブル:MaxCompute (旧 ODPS) テーブルをディレクトリとしてマウントすることはできません。MaxCompute のデータにアクセスするには、DSW コード内で PyODPS などの適切な SDK を使用する必要があります。詳細については、「PyODPS を使用した MaxCompute テーブルの読み書き」をご参照ください。
Q:DSW インスタンスが停止または削除された場合、コードとデータは失われますか?データを永続化および移行するにはどうすればよいですか?
DSW インスタンスのシステムディスクは一時的なストレージしか提供しません。パブリックリソースグループ内のインスタンスの場合、インスタンスが 15 日以上停止するとデータはクリアされます。専用リソースグループ内のインスタンスの場合、インスタンスが停止または削除されるとすぐにデータはクリアされます。
データとコードを永続化し、インスタンス間で移行するには、外部マウントストレージサービスを使用する必要があります。
永続化ソリューション:コード、データセット、モデルなど、すべての重要なファイルをマウントされた OSS または NAS パスに保存します。個人の OSS または NAS に保存されたデータは永続的であり、DSW インスタンスのライフサイクルとは無関係です。
移行ソリューション:作業を新しい DSW インスタンスに移動するには、永続化されたデータを含む同じ OSS または NAS パスをマウントできます。これが、環境を移行する最も効率的な方法です。
リファレンス
その他のよくある質問については、「DSW FAQ」をご参照ください。