Skip to main content
ボリュームとは、サンドボックスが選択したパスにマウントするストレージです。サンドボックスでは 2 種類のボリュームをサポートしています。スクラッチボリューム は単一のサンドボックスに属し、サンドボックスとともに消滅します。登録済み Volume は組織が一度登録するボリュームで、その後任意の数のサンドボックスがマウントできます。 このページは、コンテナーファイルシステムの容量を超えて書き込みを行うサンドボックスが必要な開発者、または複数のサンドボックスで同じデータセットを読み取りたい開発者向けです。終了時には、両方の種類のボリュームをアタッチし、登録済み Volume のライフサイクルを管理できるようになります。

認証方法を選択する

以下の例は、セクション内で CoreWeave Kubernetes Service (CKS) を指定している場合を除き、サーバーレスキャパシティ上で実行されます。サンドボックスを所有するアカウントの認証情報を選択してください。キーまたはトークンの取得方法については、認証情報の選択と取得を参照してください。 使用する言語に対応した設定ファイルを、このページのスクリプトを実行する場所と同じディレクトリに保存してください。Python の例では sandbox_auth.py から AUTH をインポートします。TypeScript の例では sandbox-client.mts から client をインポートします。これらのファイルは認証情報そのものを保存せず、認証方法の選択のみを行います。Python の場合は、有効化した仮想環境を使用してください。TypeScript の場合は、まず npm install @coreweave/cwsandbox@1.0.0 でクライアントをインストールしてください。
SDK の wandb インテグレーションで Forge API キーを使用します。[WANDB-API-KEY] をご自身の APIキーに置き換えてください。
sandbox_auth.py
CKS に配置する場合は、CoreWeave トークンを選択し、ランナーを有効化したうえで、サンドボックスの作成時または SandboxDefaults で placement_mode="cks" を設定します。TypeScript で CKS を選択するには、CoreWeave トークンを選択し、空でない runnerIds 配列を設定します。auth=AUTH を指定して Python のセッションを作成すると、そのセッションが所有するサンドボックスも認証されます。サンドボックスへの再接続、一覧表示、クリーンアップを行う際も、同じ認証情報を使用してください。

ボリュームタイプを選択する

1 つの run 内の作業スペースにはスクラッチボリュームを使用します。サンドボックスを越えて存続するデータや、複数のサンドボックスが同時に読み取るデータ (共有データセットやモデルの重みなど) には登録済み Volume を使用します。

スクラッチボリューム

スクラッチボリュームはサンドボックスとともに作成され、サンドボックスとともに破棄されます。volumes リスト内で ScratchVolumeOptions を使用して宣言します。
ScratchVolumeOptions は以下のフィールドを受け入れます:

ストレージ媒体を選択する

StorageMedium.DISK はボリュームをローカルディスクでバックアップします。StorageMedium.MEMORY は tmpfs でバックアップします。これは高速ですが、マウントするコンテナーのメモリリクエストとポリシーのメモリ上限にカウントされます。 無制限の RAM バックアップボリュームはノードを枯渇させる可能性があるため、MEMORY ボリュームは size を宣言する必要があります。絶対量として、またはサンドボックスの解決済みメモリリクエストの整数パーセンテージ (例: "50%") として指定できます。パーセンテージ形式は MEMORY の場合のみ有効です。DISK ボリュームは絶対サイズを使用する必要があります。

複数のコンテナーにスクラッチボリュームをマウントする

mount_path は、ボリュームをプライマリコンテナーにマウントするための便利な機能です。マルチコンテナーのサンドボックスでは、mount_path を省略し、代わりに各コンテナーでマウントを宣言してください。これにより、複数のコンテナーが同じボリュームにアクセスできるようになります。

登録済み ボリューム

このガイドで扱う PVC-backed の登録済み ボリューム を使用するには、CoreWeave API アクセストークンと、組織で登録済み ボリューム が有効になっていることが必要です。認証方法を選択するの Forge API キー タブの内容は、スクラッチボリュームに適用されます。以下の例では、CKS クラスター内の PVC と、CWSANDBOX_API_KEY に設定した CoreWeave API アクセストークンを使用します。PVC-backed ボリューム を登録またはマウントする前に、独自のコンピュートを使用するの手順を完了してください。 登録済み ボリューム は、いずれかのクラスターに既に存在する PersistentVolumeClaim (PVC) を参照します。登録すると、サンドボックスにクラスター自体へのアクセス権を付与せずに、そのクレームをマウントできるようになります。ボリューム はメタデータ上の参照です。CoreWeave がデータをコピーすることはなく、ボリューム を削除してもクレームには影響しません。 どのマウントも同じクレームを直接参照するため、あるサンドボックスから書き込んだ内容は、それをマウントしている他のすべてのサンドボックスから確認できます。 TypeScript クライアントには、ボリューム の登録や管理を行う API はなく、create() や run() で登録済み ボリューム のマウントオプションを指定することもできません。これらの操作には Python クライアントを使用してください。 TypeScript クライアントのバージョン 1.0.0 では、runFromTemplate() を使用して、サンドボックステンプレートから登録済み ボリューム とそのマウントを継承できます。テンプレートのコンテナーとマウントをそのまま使用するには、containerImage を省略します。containerImage を設定すると、コンテナーが置き換えられ、それらのマウントも破棄されます。マウントのない登録済み ボリューム が残る場合、リクエストは拒否されます。

Volume を登録

Volume の登録、更新、削除には Sandbox Admin が必要です。Sandbox User は、登録済み Volume の一覧表示、読み取り、検証、マウントを実行できます。Sandbox Admin には Sandbox User の権限が含まれます。Sandbox ロールを参照してください。 Volume.create() は、Volume を VALIDATING 状態で即座に返します。その後、コントロールプレーンがクレームが存在し、使用可能であることを確認します。マウントする前に wait_until_ready() でポーリングしてください。
Volume ID はご自身で選択します。組織内で一意である必要があり、作成後は不変です。
ソースと read_only フラグも作成後は不変です。description のみ後で変更できます。
PvcVolumeSource は以下のフィールドを取ります。 Volume.create() で read_only=True を設定すると、Volume 自体のプロパティとして読み取り専用になります。この設定は下限であり、デフォルトではありません。書き込み可能な Volume ではマウントを読み取り専用にできますが、読み取り専用の Volume に書き込むマウントはできません。

登録済み Volume をマウントする

ID で RegisteredVolumeOptions を使用して Volume をマウントします。開始時に Volume が READY でない場合、サンドボックスは CWSANDBOX_VOLUME_NOT_READY で失敗します。
RegisteredVolumeOptions には name、volume_id、および / 以外の絶対 mount_path が必要です。また、sub_path を受け入れ、登録時に設定された sub_path と組み合わせることができ、read_only も指定できます。 サンドボックスは、マウントした Volumes を attached_volume_ids に反映します。

ローカリティと配置

Volume の locality は配置を制約するかどうかを report します:
  • cluster_local: Volume は 1 つのクラスターに存在するため、それをマウントするサンドボックスはそのクラスターのランナーにスケジュールされます。PVC-backed の Volume は cluster-local です。
  • global: Volume は任意のクラスターから到達可能で、配置を制約しません。
1 つのサンドボックスで異なるクラスターからの 2 つの cluster-local Volume をマウントすることは不可能であり、開始は CWSANDBOX_VOLUME_PLACEMENT_CONFLICT で失敗します。

登録済み Volume の管理

組織内の Volume を一覧表示、検査、更新、登録解除するには、以下のオペレーションを使用します。
Volume.list() は自動的にページネーションを行い、states と runner_ids のフィルターを受け入れます。delete() は allow_missing=True を受け入れ、これによりすでに削除された Volume の削除が成功し、例外を送出する代わりに成功します。 非ターミナル状態のサンドボックスがまだマウントしている Volume を削除しようとすると CWSANDBOX_VOLUME_IN_USE で失敗し、Python クライアントはこれを VolumeInUseError として送出します。まず関連付けたサンドボックスを停止してください。

Volume の状態

登録済み Volume は、そのライフサイクルを通じて次の状態に遷移します。 wait_until_ready() は READY になるまで繰り返し確認します。Volume が ERROR または DELETING に達した場合は VolumeError、先にタイムアウトした場合は VolumeWaitTimeoutError が送出されます。

失敗の理由

この表を使用して、サンドボックスとVolumeの操作が返す可能性のある失敗の理由を解釈してください。 サンドボックスの関連機能の詳細については、以下のリソースを参照してください:
最終更新日 2026年11月4日