Guides
Volumes
Block storage you attach to a server, grow while it runs, and keep when the server goes.
What a volume is
A volume is a block device on our Ceph cluster, from 10 GB to 16 TB. It lives on its own: create it, attach it to a server, detach it, attach it somewhere else, delete it when you are done. Deleting a server leaves its volumes in place, so put anything you want to keep across rebuilds on a volume rather than the server's own disk.
Volumes are charged per GB per month from the moment they exist, attached or not. The price is on the pricing page.
Create and attach
From the console open Volumes, give it a name and a size, and pick the server to attach it to. From the CLI:
prgd volumes create web-data --size 100 --server web-1
Or through the API:
POST /v1/volumes
{ "name": "web-data", "sizeGb": 100, "serverId": "srv_..." }
The call returns at once with status creating. Within a few seconds the volume becomes available, or attached when you named a server. A volume attaches to one server at a time, and both must be in the same region.
Use it in the guest
An attached volume appears in the server as a SCSI disk. Find it by its stable path under /dev/disk/by-id, which the API returns as device:
lsblk
sudo mkfs.ext4 /dev/disk/by-id/scsi-0QEMU_QEMU_HARDDISK_<serial>
sudo mkdir -p /mnt/data
sudo mount /dev/disk/by-id/scsi-0QEMU_QEMU_HARDDISK_<serial> /mnt/data
Add the same path to /etc/fstab with nofail so a detached volume does not block the next boot. The first attach needs a file system; later attaches do not.
Grow
Volumes only grow. Resize from the console, with prgd volumes resize ID --size 250, or POST /v1/volumes/{id}/resize. An attached volume grows live; then extend the file system in the guest:
sudo resize2fs /dev/disk/by-id/scsi-0QEMU_QEMU_HARDDISK_<serial> # ext4
sudo xfs_growfs /mnt/data # xfs
Detach and delete
Unmount the file system in the guest first, then detach from the console, with prgd volumes detach ID, or POST /v1/volumes/{id}/detach. A volume must be detached before you delete it, and deleting destroys the data with no undo.
Terraform, SDKs and agents
Terraform manages a volume with the prgd_volume resource; size_gb grows in place and server_id attaches, detaches or moves it. The TypeScript and Python SDKs expose volumes.create, attach, detach, resize, delete and a waitUntilSettled helper. Agent tokens need the volumes:read and volumes:write scopes; the MCP server exposes list_volumes, create_volume and volume_action.
Limits
| Limit | Value |
|---|---|
| Size | 10 GB to 16 TB |
| Volumes per server | 8 |
| Attached to | one server at a time, same region |
| Resize | grow only, live while attached |