Create and Attach Storage
Persistent Storage, powered by Backblaze, is in Beta. Account owners and admins can join under Settings → Profile, or by ticking Join the beta program at signup. They can leave it the same way, under Settings → Profile. See Overview.
Create storage
- Open Storage in the sidebar.
- Click Create Storage.
- Enter a Name.
- If you can manage more than one instance group, pick a Group.
- Click Create.
You can also create storage from the Persistent Storage picker on Deploy. Click Create storage at the bottom of the list. The new storage is selected for you.
You need the Manage persistent storage permission to create storage. See Sharing and Permissions.
The first storage on an account can take a minute while storage is set up. If you see "Storage is still being set up for this account", wait a minute and try again.
Name rules
- Lowercase letters (
a-z), digits (0-9) and hyphens (-) only. - 1 to 22 characters.
- Can't start or end with a hyphen.
- Must be unique among the storage on your account. The name of deleted storage can be used again once the delete has finished.
The name is the folder the storage mounts at. Storage named datasets mounts at /persistent/datasets.
| Name | Allowed? |
|---|---|
datasets | Yes |
llama-weights-v2 | Yes |
Datasets | No: uppercase |
my_data | No: underscore |
-scratch | No: starts with a hyphen |
my-training-datasets-v2 | No: 23 characters |
Attach at deploy
- Go to Deploy, or the Docker deploy page.
- Open the Persistent Storage picker.
- Tick the storage you want, up to 8.
- Deploy as usual.
Each one mounts at /persistent/<name> when the instance boots.
The picker lists only storage that is Active and in an instance group you can manage. Storage that is being created or deleted is grayed out.
Attach to an existing instance
You can attach storage to an instance you already have, or detach it. The change takes effect the next time you stop the instance and start it again. Restarting the instance doesn't apply it.
- Open My Instances.
- On the instance, click Storage.
- Under Attach more, tick the storage you want.
- Click Attach.
- If the instance is running, stop it. Then start it.
After the start, each one is at /persistent/<name>.
- You can attach to a running or a stopped instance. An instance that is still initializing has no Storage button yet.
- An instance can have up to 8 storage mounts, counting storage attached at deploy. The window shows how many are attached, for example Attached (2 of 8).
- Only Active storage can be attached.
- Until you stop and start it, a running instance keeps exactly the storage it booted with.
You need the Manage persistent storage permission, and you must manage both the storage's instance group and the instance's group. Without the permission, or without manage access to the instance's group, the instance has no Storage button. See Sharing and Permissions.
Detach storage
The instance must be stopped to detach storage. On a running instance the Detach button is grayed out, and hovering it shows "Stop the instance before detaching storage." It is also grayed out if you don't manage the storage's group ("You don't manage this storage's group.").
- Stop the instance.
- Open My Instances.
- On the instance, click Storage.
- Click Detach next to the storage.
At the next start the instance unmounts the storage and can no longer reach it. The files stay in the storage. An empty /persistent/<name> folder can be left behind: anything you write into it is on the instance's local disk, not in the storage. If the storage is still mounted after the start, see Detached storage is still mounted.
Once the storage is detached from every instance, you can delete it.
With the REST API
Create storage:
curl -X POST https://vm.massedcompute.com/api/v1/storage-volumes \
-H "Authorization: Bearer $API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"name": "datasets"}'
Launch an instance with it attached. Pass the storage id values in volumeIds:
curl -X POST https://vm.massedcompute.com/api/v1/instance/launch \
-H "Authorization: Bearer $API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"imageId": 1, "productName": "gpu_1x_l40", "regionName": "any", "volumeIds": ["<storage-id>"]}'
- The field is
volumeIds. A request that sendsvolume_idsis refused. - If storage doesn't attach, the launch still succeeds and the response includes a
warning. The instance is running and billing without that storage. Terminate it and launch again, or contact support. - Attaching to or detaching from an existing instance isn't on the REST API yet. Use My Instances on the website.
See the API reference for every field and error. Storage isn't available over MCP.
