コンテンツにスキップ

ボリューム

ボリュームは、サンドボックス間でファイルを共有してアクセスできる、FUSE ベースのマウントです。これにより、サンドボックスは大容量ファイルを即座に読み取れ、各サンドボックスへ手動でアップロードする必要がありません。ボリュームのデータは S3 互換のオブジェクトストレージに保存されます。

  • 複数のボリュームを 1 つのサンドボックスにマウント可能
  • 1 つのボリュームを複数のサンドボックスにマウント可能

ボリュームの作成

サンドボックスにボリュームをマウントする前に、先に作成しておく必要があります。

ターミナルウィンドウ
volume = daytona.volume.get("my-volume", create=True)

ボリュームのマウント

ボリュームを作成したら、CreateSandboxFromSnapshotParams オブジェクトで指定してサンドボックスにマウントできます:

import os
from daytona import CreateSandboxFromSnapshotParams, Daytona, VolumeMount
daytona = Daytona()
# 新しいボリュームを作成するか、既存のボリュームを取得する
volume = daytona.volume.get("my-volume", create=True)
# ボリュームをサンドボックスにマウントする
mount_dir_1 = "/home/daytona/volume"
params = CreateSandboxFromSnapshotParams(
language="python",
volumes=[VolumeMount(volumeId=volume.id, mountPath=mount_dir_1)],
)
sandbox = daytona.create(params)
# サンドボックスの利用が終わったら、削除できます
# サンドボックスを削除しても、ボリュームは保持されます
sandbox.delete()

ボリュームの削除

ボリュームが不要になった場合は削除できます。

volume = daytona.volume.get("my-volume", create=True)
daytona.volume.delete(volume)

ボリュームの操作

マウントされると、サンドボックスのファイルシステム内の他のディレクトリと同様に、そのボリュームへの読み書きが行えます。ボリュームに書き込まれたファイルは、個々のサンドボックスのライフサイクルを超えて保持されます。

制限事項

ボリュームはFUSEベースのマウントであるため、ブロックストレージへのアクセスを必要とするアプリケーション(データベースのテーブルなど)では使用できません。 ボリュームは、ローカルのサンドボックスのファイルシステムと比べて、読み取り・書き込みの両方の操作が一般的に遅くなります。