Skip to content

Block Volumes

A volume is a network block device backed by Ceph. You attach it to an instance where it appears as an additional disk you can partition, format, and mount — ideal for data that must outlive the instance's root disk.

Create a volume

Under Storage → Volumes → Create, choose a name, a size (in GiB), a volume type, an availability zone, and optionally encryption at rest:

TypeFor
ssdGeneral-purpose SSD (the default)
nvmeHigh-performance NVMe
hddCapacity / archival
bash
fm storage volume create --name data-1 --size 100 --type ssd --zone sweden-a --encrypted
hcl
resource "frostmoln_volume" "data" {
  name        = "data-1"
  size_gb     = 100
  volume_type = "ssd"
  zone        = "sweden-a"
  encrypted   = true
}

Attach and mount

Attach a volume to an instance from the volume detail page, the instance's Storage tab, or the CLI. A volume attaches to one instance at a time (an instance can have many volumes):

bash
fm storage volume attach data-1 web-1            # optional: --device /dev/vdb

With Terraform the attachment is its own resource, not an argument on the volume:

hcl
resource "frostmoln_volume_attachment" "data" {
  volume_id   = frostmoln_volume.data.id
  instance_id = frostmoln_instance.web.id
  device_path = "/dev/vdb" # optional
}

Then log in and mount it:

bash
sudo mkfs.ext4 /dev/vdb
sudo mkdir -p /mnt/data && sudo mount /dev/vdb /mnt/data

Add it to /etc/fstab to mount on boot. Detach with fm storage volume detach data-1 (use --force only if necessary).

Resize

Volumes can grow (not shrink):

bash
fm storage volume resize data-1 200

After expanding the volume, grow the filesystem inside the instance (resize2fs / xfs_growfs).

Snapshots

Capture a point-in-time snapshot of a volume, and create new volumes from a snapshot:

bash
fm storage snapshot create --name data-1-snap --volume data-1
fm storage snapshot list --volume data-1
# Restore = create a NEW volume from the snapshot (snapshot_id at create time)

There is no in-place "restore over" an existing volume — you create a fresh volume from the snapshot and attach it.

Notes and limits

  • Single-attach — one instance at a time.
  • Resize is grow-only; the availability zone is fixed at creation.
  • Volumes are billed by provisioned size (per type) for as long as they exist, attached or not.