Skip to content

Volumes service CLI reference

Reference · Updated Sep 2026

Coming from another cloud?

▸AWS·Amazon EBS volumes

Amazon EBS volumeshigh

  • Strictly bound to a single Availability Zone where created; cannot be moved without snapshot.
  • Multiple volume types (gp3, io2, st1) with different performance/billing characteristics; Cinder uses volume_types but backend-defined.
  • Billed per provisioned GB-month regardless of usage; OpenStack typically quota-based without standard usage billing.
  • API via EC2 CreateVolume; differs from Cinder create_volume.
AWS docs ↗
▸Azure·Managed Disks

Azure Managed Diskshigh

  • Azure Managed Disks are fully managed with automatic redundancy (3 replicas, 99.999% SLA); Cinder durability depends on backend.
  • Predefined disk types (Ultra Disk, Premium SSD v2, Premium SSD, Standard SSD, Standard HDD) with fixed performance tiers; Cinder uses volume types with configurable QoS.
  • Disks billed on provisioned size regardless of use; Cinder billing typically on provisioned size too but varies by provider.
Azure docs ↗
▸DigitalOcean·Volumes

Volumeshigh

  • Uses proprietary /v2/volumes API instead of OpenStack Cinder /v3/{project_id}/volumes; actions like attach/detach/resize via undocumented POST /volumes/{id}/actions rather than /os-volume-attach etc.
  • Enforces single-instance attachment only (one Droplet at a time); OpenStack supports multi-attach volumes.
  • Volume names must be globally unique per region; OpenStack uses IDs primarily with optional display names.
  • Size specified in GiB (binary) with 1 GiB to 16 TiB range; OpenStack typically GiB but flexible.
DigitalOcean docs ↗
▸Google Cloud·Persistent Disk

Persistent Diskhigh

  • Uses Google Compute Engine REST API instead of OpenStack Cinder API.
  • Offers multiple performance tiers (pd-standard HDD, pd-balanced SSD, pd-ssd, pd-extreme) with performance scaling linearly with provisioned size, unlike Cinder's backend-dependent performance.
  • Supports regional disks replicated synchronously across 2 zones for higher availability (better than 99.9999% durability), while Cinder volumes are typically zonal unless using replication features.
  • Online resize to increase size without detaching; no manual striping/RAID needed as GCP handles distribution automatically.
Google Cloud docs ↗
▸Hetzner·Cloud Volumes

Cloud Volumeshigh

  • Provisioned via Hetzner CSI driver (csi.hetzner.cloud), ReadWriteOnce only, min 10GB, NVMe-based.
  • Billed €0.044/GB/month until deleted, no pause; attach/detach via CSI, unlike Cinder's broader access modes (RWX via Manila).
  • Snapshots supported but no volume encryption at rest by default; location-specific (e.g., fsn1).
  • Proprietary REST API at https://api.hetzner.cloud/v1/volumes using Bearer token auth, not OpenStack Cinder API (v3 JSON over Keystone). Endpoints like POST /volumes/{id}/actions/attach, POST /volumes/{id}/actions/resize (upsize only). No /v3/{project_id}/volumes/{volume_id}/action os-extend.
Hetzner docs ↗

Volumes service CLI reference

The Block Storage CLI reference lists curated commands with Quake AI-specific context.

See the python-openstackclient Block Storage command reference for the full command set and option details.

The commands below create, inspect, delete, and manage volumes, snapshots, and volume types. Replace VOLUME_ID_OR_NAME, SNAPSHOT_ID_OR_NAME, VOLUME_TYPE_ID_OR_NAME, and SERVER_ID_OR_NAME with the corresponding resource IDs or names.

Volume commands#

List volumes#

bash
openstack volume list

Show volume details#

bash
openstack volume show VOLUME_ID_OR_NAME

Create a volume#

bash
openstack volume create --size SIZE_IN_GB VOLUME_NAME
  • SIZE_IN_GB: Volume size in gigabytes.

Delete a volume#

bash
openstack volume delete VOLUME_ID_OR_NAME

Extend a volume#

bash
openstack volume set --size NEW_SIZE_IN_GB VOLUME_ID_OR_NAME
  • NEW_SIZE_IN_GB: New volume size in gigabytes. The value must exceed the current size.

List volume snapshots#

bash
openstack volume snapshot list

Show snapshot details#

bash
openstack volume snapshot show SNAPSHOT_ID_OR_NAME

Create a volume snapshot#

bash
openstack volume snapshot create --volume VOLUME_ID_OR_NAME SNAPSHOT_NAME

Delete a volume snapshot#

bash
openstack volume snapshot delete SNAPSHOT_ID_OR_NAME

List volume types#

bash
openstack volume type list

Attach a volume to an instance#

bash
openstack server add volume SERVER_ID_OR_NAME VOLUME_ID_OR_NAME

Detach a volume from an instance#

bash
openstack server remove volume SERVER_ID_OR_NAME VOLUME_ID_OR_NAME

Output columns#

Select specific columns with --column COL1 --column COL2 or change the output format with -f json, -f csv, or -f table (default).

openstack volume list#

ColumnDescription
IDVolume UUID
NameVolume name
StatusCurrent state (available, in-use, creating, error, deleting)
SizeVolume size in GiB
Attached toInstance UUID and mount point (empty if unattached)

openstack volume list --long#

ColumnDescription
IDVolume UUID
NameVolume name
StatusCurrent state
SizeVolume size in GiB
TypeVolume type (for example, Flash_Premium)
BootableWhether the volume supports boot-disk use
Attached toInstance UUID and mount point
PropertiesVolume metadata key-value pairs

openstack volume type list#

ColumnDescription
IDVolume type UUID
NameVolume type name (for example, Flash_Premium)
Is PublicWhether the type is available to all projects

openstack volume snapshot list#

ColumnDescription
IDSnapshot UUID
NameSnapshot name
DescriptionUser-provided description
StatusCurrent state (available, creating, error, deleting)
SizeSnapshot size in GiB

openstack volume snapshot list --long#

ColumnDescription
IDSnapshot UUID
NameSnapshot name
DescriptionUser-provided description
StatusCurrent state
SizeSnapshot size in GiB
Created AtTimestamp of snapshot creation
VolumeUUID of the source volume
PropertiesSnapshot metadata key-value pairs
Was this page helpful?