Persistent storage
Understand ownership, attachment, expansion, deletion, and charges.
Two ownership modes
| Behavior | Service-owned | Independent |
|---|---|---|
| Created with a service | Yes | Optional |
| Created without compute | No | Yes |
| Retained when compute sleeps | Yes | Yes |
| Retained when service is deleted | No | Yes |
| Reusable by another service | Not as independent storage | Yes, after detachment and in the original placement |
The persistent mount is /workspace. Keep datasets, models, outputs, and checkpoints there. Files in the container's other directories do not have the same persistence contract.
Create and attach
Independent volumes can be provisioned without launching compute. The size range is 10–4,096 GB. Pass volumeId in a service specification to attach a retained independent volume. Its original placement determines compute affinity; selecting Automatic does not move the files.
An independent volume can have one service attachment. Do not assume a shared multi-service filesystem.
Rename and grow
Volume updates require the current revision. Renaming does not move data. Expansion is increase-only; shrinking is not supported. Pause an attached service before expansion. Wait for storage to become ready, then start the service again.
Check requestedSizeGb, state, and error information during expansion. The requested size is not proof that the backing storage has finished growing.
Understand billing state
ready and provisioned are separate fields. A declaration can exist before backing space has been allocated. Storage charges begin only after backing allocation is confirmed. Once provisioned, retained storage remains billable while compute is paused.
Delete carefully
Deleting a service removes a service-owned workspace. An independent volume survives service deletion and must be deleted separately after it is detached. Deleting storage removes its files; maintain your own backup of valuable data.