デフォルトでは、パブリックおよび専用リソースグループの DSW インスタンスはデータストレージが限られており、データは一定期間後にクリアされます。インスタンスのストレージを拡張したり、データを永続化したり、共有したりするには、データセットまたはストレージパスをインスタンスに直接マウントできます。
パブリックリソースグループの DSW インスタンスの場合、データは限られたスペース (100 GiB) の無料のクラウドディスクに保存されます。インスタンスを削除した後、または 15 日以上停止している場合、システムはクラウドディスク上のデータをクリアします。
専用リソースグループの DSW インスタンスの場合、データはインスタンスのシステムディスクに保存されます。インスタンスが停止または削除されると、システムはこの一時ストレージをクリアします。
データセットのマウントとストレージパスの直接マウントの違い
長期的なストレージとチームでの共同作業が必要な場合は、データセットのマウントを選択します。一時的なタスクのためのストレージや、ストレージ容量を迅速に拡張する必要があるだけの場合は、ストレージパスを直接マウントします。
機能 | データセットのマウント | ストレージパスのマウント |
サポートされているクラウドプロダクト | Object Storage Service (OSS)、File Storage NAS、Cloud Parallel File Storage (CPFS) | |
バージョン管理 | バージョン管理とデータアクセラレーションをサポート | バージョン管理をサポートしない |
データ共有 | 複数のインスタンス間での共有をサポート | 現在のインスタンスでのみ利用可能 |
操作の複雑さ | データセットの作成と構成が必要 | シンプル。パスを提供するだけです。 |
シナリオ | 長期的なストレージ、チームでの共同作業、および高いセキュリティ要件 | 一時的なタスク、迅速なストレージ拡張 |
起動時のマウントと動的マウントの違い
ストレージをマウントするには、起動時のマウントと動的マウントの 2 つの方法があります。
起動時のマウント: このオプションは、インスタンスを作成するか、その構成を変更するときに構成します。変更を適用するには、インスタンスを再起動する必要があります。
動的マウント: 実行中のインスタンスで PAI SDK (ソフトウェア開発キット) を使用してストレージをマウントします。このメソッドでは、インスタンスを再起動する必要はありません。
制限事項
一意のパス: 各データセットのマウントパスは一意である必要があります。
書き込み制限: OSS マウントディレクトリでの頻繁な書き込み操作は避けてください。これにより、パフォーマンスの低下や操作の失敗につながる可能性があります。
Git の制限: Git 操作は OSS マウントディレクトリではサポートされていません。Git コマンドは、ローカルディレクトリまたはマウントされていない別のパスで実行してください。
動的マウントの制限
読み取り専用の制限: 動的マウントは読み取り専用です。高速なマウントや一時的な読み取り専用アクセスが必要なシナリオに適しています。
ストレージタイプの制限: 動的マウントは OSS と NAS のみをサポートします。
リソースの制限: 動的マウントは Lingjun リソースをサポートしていません。
起動時マウント
起動時にストレージをマウントするには、インスタンス構成ページで [データセットのマウント] または [ストレージパスのマウント] パラメーターを構成します。構成を適用するには、インスタンスを再起動する必要があります。
データセットのマウント
データセットの作成
PAI コンソールにログインします。[AI アセット管理] > [データセット] ページに移動し、カスタムまたはパブリックデータセットを作成します。詳細については、「データセットの作成と管理」をご参照ください。
データセットのマウント
新しい DSW インスタンスを作成するときに表示される構成ページで、[データセットのマウント] セクションを見つけます。既存のインスタンスの場合は、[構成の変更] をクリックしてページを開きます。[カスタムデータセット] をクリックし、作成したデータセットを選択して、[マウントパス] を入力します。
カスタムデータセットのマウントに関する注意:
CPFS データセット: CPFS データセットを構成する場合、DSW インスタンスの Virtual Private Cloud (VPC) は CPFS ファイルシステムの VPC と同じである必要があります。そうでない場合、インスタンスの作成は失敗します。
NAS データセット: NAS データセットを構成する場合、ネットワークをセットアップし、セキュリティグループを選択します。
専用リソースグループの使用: 専用リソースグループを使用する場合、最初のデータセットは NAS タイプである必要があります。このデータセットは、指定したパスと、
/home/admin/workspaceにあるデフォルトの DSW 作業ディレクトリの両方にマウントされます。
ストレージパスの直接マウント
このセクションでは、Object Storage Service (OSS) パスをマウントする例を使用します。
OSS バケットの作成
重要バケットのリージョンは PAI のリージョンと同じである必要があります。バケットのリージョンは作成後に変更できません。
OSS パスのマウント
DSW インスタンスの構成ページ (インスタンス作成時に開くか、既存のインスタンスの [構成の変更] をクリックして開く) で、[ストレージパスのマウント] を見つけます。[OSS] をクリックし、作成した OSS バケットパスを選択して、[マウントパス] を入力します。[詳細設定] はデフォルトで空です。必要に応じて構成してください。詳細については、「高度なマウント構成」をご参照ください。
動的マウント
動的マウントを使用すると、インスタンスを再起動することなく、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 ロールで構成します。インスタンス構成ページを開き、下部にある [その他の構成を表示] をクリックしてインスタンスの 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(mount_point)
高度なマウント構成
高速な読み取り/書き込み、増分書き込み、読み取り専用アクセスなど、さまざまな読み取り/書き込みシナリオに適応し、読み取りおよび書き込みパフォーマンスを最適化するために、マウントを構成する際に高度なパラメーターを設定できます。
マウント構成の表示
DSW インスタンスを開き、[ターミナル] で次のコマンドを入力して、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 ファイルブラウザに表示されないのはなぜですか?
これは、JupyterLab ファイルブラウザがデフォルトの作業ディレクトリ (/home/admin/workspace) を表示するのに対し、OSS パスが別の場所 (例: /mnt/data) にマウントされている可能性が高いためです。
ファイルにアクセスするには、次の 3 つの方法があります:
コードで絶対パスを使用する: ファイルはすでに正常にマウントされています。コード内でファイルにアクセスするには、完全なマウントパスを使用する必要があります。例:
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) が正しく割り当てられ、ターゲットバケットに対する読み取り/書き込み権限があることを確認してください。マウントサービスのクラッシュ (OOM): 集中的な I/O 操作 (例: 多数の小さなファイルの読み取り) 中に、基盤となるマウントサービス (
ossfsまたはJindoFuse) がメモリ不足でクラッシュする可能性があります。マウント設定の [詳細設定] でメモリ制限を調整するか、メタデータキャッシュを無効にすることで、これを軽減できます。 詳細については、「JindoFuse」をご参照ください。接続を復元する方法:
起動時のマウントの場合: 最も簡単な解決策は、DSW インスタンスを再起動することです。システムは自動的にマウント接続を再確立します。
動的マウントの場合: インスタンスを再起動することなく、ノートブックまたはターミナルで PAI SDK を使用して再マウントコマンドを実行できます。
Q: DSW にはどのストレージをマウントできますか?また、Alibaba Cloud Drive や MaxCompute テーブルをマウントすることは可能ですか?
データセットを作成するか、ストレージパスを直接マウントすることで、OSS、NAS、および CPFS からストレージをマウントできます。ただし、一部のサービスはファイルシステムのようにマウントできません:
Alibaba Cloud Drive: 直接マウントはサポートされていません。推奨されるアプローチは、まず必要なデータを OSS バケットにアップロードし、そのバケットを DSW インスタンスにマウントすることです。
MaxCompute テーブル: MaxCompute テーブルをディレクトリとしてマウントすることはできません。MaxCompute のデータにアクセスするには、DSW コード内で PyODPS などの適切な SDK を使用する必要があります。詳細については、「PyODPS を使用して MaxCompute テーブルを読み書きする」をご参照ください。
Q: DSW インスタンスが停止または削除された場合、コードとデータは失われますか?DSW インスタンスが停止または削除された後、データとコードを永続化するにはどうすればよいですか?
はい、DSW インスタンスのローカルシステムディスクに保存されているデータは一時的なものであり、削除されます。
パブリックリソースグループのインスタンスの場合、インスタンスが 15 日以上停止するとデータはクリアされます。
専用リソースグループのインスタンスの場合、インスタンスが停止または削除されるとすぐにデータはクリアされます。
作業が失われないようにするには、外部にマウントされたストレージサービスを使用する必要があります。
永続化ソリューション: コード、データセット、モデルなど、すべての重要なファイルをマウントされた OSS または NAS パスに保存します。個人の OSS または NAS に保存されたデータは永続的であり、DSW インスタンスのライフサイクルとは無関係です。
移行ソリューション: 作業を新しい DSW インスタンスに移動するには、永続化されたデータが含まれている同じ OSS または NAS パスをマウントするだけです。これが、環境を移行する最も効率的な方法です。
リファレンス
詳細については、「DSW よくある質問」をご参照ください。