Global volumes are in beta. Features and behavior may change before general availability.
Create a global volume
- In the left nav, go to Storage.
- Click + New volume.
- Under Storage type, select Global volume.
- Enter a Name for the volume.
- Click Create global volume.
Attach a global volume to a Pod
You can attach a global volume when deploying a new Pod using either of the following methods.- From Storage: Click your global volume, then click Configure Pod with volume. This opens the Pod deployment page with the volume already attached.
- During Pod deployment:
- Go to Pods and click + Deploy.
- Select a template and GPU. You must select a GPU before you can attach storage.
- Scroll to the Storage section.
- Under Persistent storage, click + Add volume.
- Select your volume from the list. Global volumes appear first with a Global badge, followed by network volumes labeled with their data center. To create a new global volume here instead, click + Create volume.
- Click Deploy Pod.
Access your files
The mount path is set at deploy time and does not change while the Pod is running. A global volume defaults to/workspace. If you add a network volume during deployment without changing the global volume’s mount path, the deploy flow automatically shifts the global volume to /workspace-global so both volumes can be mounted without conflict. The network volume then mounts at /workspace.
If you edit the global volume’s mount path field during deployment (rather than leaving the default), the network volume is assigned /workspace-2 instead.
You can verify the volume is mounted by running ls on the mount path from the Pod’s Console tab. For example, if your global volume is at /workspace-global:
Migrate data from a network volume
If you have data on a network volume that you want to move to a global volume, you can usersync. When both volumes are attached without a custom mount path, the network volume is at /workspace and the global volume is at /workspace-global. Verify your paths in the Pod’s Console tab before running the command.
- Deploy a Pod with both your network volume and global volume attached (see Attach a global volume to a Pod).
- Run the following command from the Pod’s Console tab:
- Once the data is copied, delete the Pod.
- You can now delete the network volume from the Storage page.
You cannot delete a network volume while it is attached to a running Pod.
Recommended workloads
Global volumes work best for workloads that primarily read large files and do not require high-throughput concurrent writes.- Model serving and inference: Load model weights, tokenizer files, and configuration from a shared volume at Pod startup, without baking large files into your Docker image.
- Shared assets across Pods: Serve LoRA adapters, embedding indices, or prompt templates that multiple Pods need to read from a central location.
- Read-only configuration: Distribute scripts, config files, or small datasets consistently across a fleet of Pods.
Limitations
Global volumes use object-backed storage, not a fully POSIX compliant file system. Review the following before using global volumes in production.- One volume of each type per Pod: Each Pod currently supports a maximum of one global volume and one network volume at a time.
- Not suitable for training writes: Writing large volumes of data to a global volume during training is not recommended. Use a network volume for workloads that write frequently.
- Limited POSIX semantics: Global volumes do not support file locking, atomic rename, or hard links. Applications that depend on POSIX behavior may fail or produce unexpected results.
- No permission bits: Global volumes cannot set file permission bits. This may produce warnings when downloading models from sources such as Hugging Face.
- Concurrent writes to the same file: Multiple Pods can write to a global volume concurrently, but when two Pods write to the same file at the same time, the last write wins. For workloads that require file locking or high-concurrency writes, use a network volume instead.
- Eventual consistency: Global volumes use object storage, which means updates made to the volume after the Pod starts may not be immediately visible inside the container. Plan your workload around the state of the volume at mount time.