Storage types
Container disk
Temporary storage that exists only while a worker is running. Data is lost when the worker stops or scales down. Fast read/write speeds since storage is locally attached. Cost is included in the worker’s running cost. All data saved by a worker’s handler function is stored in the container disk by default. To persist data beyond the current worker session, use one of the following:- A network volume.
- A global volume.
- S3-compatible storage.
Network volume
Persistent storage that can be attached to multiple workers. Ideal for sharing datasets, storing large models, and preserving data beyond individual worker sessions. Available in Standard and High-Performance tiers. See Network volumes for Serverless.Global volume
Persistent, region-independent storage backed by object storage. Unlike a network volume, a global volume isn’t tied to a data center, so attaching one doesn’t restrict where your workers run. Best for read-heavy workloads such as loading model weights at startup. Available on GPU endpoints, and mutually exclusive with a network volume on the same endpoint. See Global volumes for Serverless.S3-compatible storage
Connect to external object storage (AWS S3, MinIO, Backblaze B2, DigitalOcean Spaces, etc.) using your own credentials. Useful for large files exceeding API payload limits. Storage exists outside Runpod infrastructure with billing based on your provider. See S3-compatible storage.Comparison
Behavior notes
- Data isolation: Workers don’t share data unless you attach a network volume or a global volume.
- Mount path: Network volumes and global volumes both mount at
/runpod-volume. - Caching: Docker images cache locally on container disk, but loading large models into GPU memory still impacts cold start times. See Reducing worker startup times.
- Location constraints: Network volumes constrain deployments to the volume’s data center, which may impact GPU availability. Global volumes have no data center, so they don’t restrict where workers run.