Skip to main content
IMHCloud Logo
Back to support home

Creating and Managing Volumes in OpenStack Horizon

Volumes in OpenStack are persistent block storage devices managed by the Cinder service. Unlike ephemeral instance storage that disappears when an instance is terminated, Cinder volumes retain your data independently of any instance lifecycle. You can attach them to instances, detach and reattach them elsewhere, and resize them as your workload grows.

This guide walks through every core volume operation in the Horizon dashboard: creating a volume with the right configuration, interpreting volume states, resizing a volume that has grown beyond its original allocation, and safely deleting volumes without leaving orphaned dependencies.

Creating a Volume in Horizon

When creating a volume, you control four key parameters: size, volume type, availability zone, and source. Getting these right upfront avoids having to delete and recreate volumes later.

  1. Log into the Horizon dashboard.
  2. Navigate to Project > Volumes > Volumes.
  3. Click Create Volume in the upper right.
  4. In the Create Volume dialog, configure the following fields:

Volume Name: Give the volume a descriptive name. This is how it will appear in Horizon and in CLI output. Use names that reflect the intended workload (for example, db-data-primary rather than vol1).

Description (optional): A brief note about the volume's purpose. Useful in shared environments.

Volume Source: Select how the volume should be initialized:

  • No source, empty volume: Creates a blank, unformatted volume. You will need to partition and format it after attaching to an instance.
  • Image: Bootstraps the volume from a Glance image. Useful for bootable volumes.
  • Snapshot: Creates the volume from an existing volume snapshot, restoring data to that point in time.
  • Volume: Clones an existing volume.

Type: Select the appropriate volume type for your workload. Volume types map to different storage backends or performance tiers configured by the operator. On InMotion Cloud, available types reflect the underlying storage policies. If you are unsure which type to select, leave it at the default for general-purpose use, or consult the storage tier documentation for your region.

Size (GiB): Enter the size in gibibytes. Once created, volumes can only be extended (increased), not reduced. Plan for near-term growth but avoid over-provisioning, since storage quota applies to allocated size regardless of actual usage.

Availability Zone: Select the availability zone where the volume will reside. A volume can only be attached to instances in the same availability zone. If you place a volume in Zone A and your instance is in Zone B, attachment will fail. When in doubt, match the availability zone of the target instance.

  1. Click Create Volume.

The volume will enter the Creating state briefly before transitioning to Available. It is ready to attach once it shows Available.

Viewing Volume Details and Properties

To inspect a volume's full configuration after creation:

  1. Navigate to Project > Volumes > Volumes.
  2. Click the volume name to open its detail page.

The detail view shows:

  • ID: The unique UUID for this volume. You will need this for CLI operations or when troubleshooting with support.
  • Status: Current state of the volume.
  • Size: Allocated size in GiB.
  • Type: The volume type assigned at creation.
  • Bootable: Whether this volume has been flagged as a bootable volume (set automatically when created from an image).
  • Encrypted: Whether volume encryption is active. This is determined at creation time by the volume type and cannot be changed afterward.
  • Availability Zone: The zone where the volume resides.
  • Attachments: Lists any instances this volume is currently attached to, including the device path on the instance (for example, /dev/vdb).
  • Metadata: Key-value pairs you can add for tagging and automation purposes.
  • Created At: Timestamp of volume creation.

The Attachments section is particularly useful for confirming that a volume attached successfully before proceeding with filesystem operations inside the instance.

Extending a Volume

You can increase a volume's size at any time. OpenStack supports extending volumes both while they are attached (In-use) and while they are detached (Available), depending on the storage backend. On InMotion Cloud, extending an Available volume is the safest approach.

Important: Extending the volume at the OpenStack layer only increases the block device size. You must separately expand the partition and filesystem inside the instance to make use of the additional space. OpenStack does not handle this automatically.

How to Extend a Volume in Horizon Dashboard

  1. Navigate to Project > Volumes > Volumes.
  2. Locate the volume you want to resize.
  3. If the volume is attached to a running instance, consider whether you need to detach it first. For a live extend (while In-use), the backend must support it. Check with InMotion Cloud support if you are unsure.
  4. Click the dropdown arrow next to the volume and select Extend Volume.
  5. In the Extend Volume dialog, enter the New Size in GiB. This value must be greater than the current size. OpenStack does not permit shrinking a volume.
  6. Click Extend Volume.

The volume will enter the Extending state briefly. Once the operation completes, the status returns to Available (or In-use if it was attached).

How to Extend a Volume Using OpenStack CLI

  1. List your volumes to find the volume ID or name:
1 openstack volume list
  1. Extend the volume to the new size (in GiB):
1 openstack volume set --size NEW_SIZE_GIB VOLUME_NAME_OR_ID

For example, to extend a volume named db-data-primary to 100GiB:

1 openstack volume set --size 100 db-data-primary
  1. Confirm the new size:
1 openstack volume show db-data-primary

Expanding the Filesystem After Extending

After the OpenStack volume has been extended, log into the attached instance and resize the partition and filesystem. The exact commands depend on your operating system and filesystem type. For a Linux instance with an ext4 filesystem on /dev/vdb:

1# Verify the block device now shows the new size
2lsblk
3
4# Resize the partition (if using a partition table)
5growpart /dev/vdb 1
6
7# Resize the filesystem
8resize2fs /dev/vdb1

For XFS filesystems, use xfs_growfs with the mount point instead of resize2fs. For volumes used as raw block devices without a partition table, only resize2fs or the equivalent is needed.

Deleting a Volume

Volumes can only be deleted when they are in the Available state. You cannot delete a volume that is currently attached to an instance (In-use) or has snapshots depending on it.

Dependency Checks Before Deleting

Before deleting a volume, confirm:

  1. No active attachments: The volume must be in Available state. If it is In-use, detach it from all instances first.
  2. No child snapshots: If you have taken snapshots of this volume, deleting the volume may fail or leave orphaned snapshots depending on the backend configuration. Delete or transfer any snapshots first.
  3. No dependent volumes: If another volume was cloned from this one, check whether the backend enforces parent-child dependencies.

How to Delete a Volume in Horizon Dashboard

  1. Navigate to Project > Volumes > Volumes.
  2. Verify the volume shows Available status. If it shows In-use, navigate to the instance it is attached to and detach the volume first:
  • Go to Project > Compute > Instances.
  • Click the instance name.
  • Select the Volumes tab.
  • Click Detach Volume next to the appropriate device.
  1. Return to Project > Volumes > Volumes.
  2. Click the dropdown arrow next to the volume and select Delete Volume.
  3. Confirm the deletion in the dialog that appears.

The volume will enter the Deleting state. Once removed, it will no longer appear in the list. This action is permanent and unrecoverable. If you need to preserve the data, create a snapshot before deleting.

How to Delete a Volume Using OpenStack CLI

  1. Verify the volume is in available state:
1 openstack volume show VOLUME_NAME_OR_ID
  1. If attached, detach it first:
1 openstack server remove volume INSTANCE_NAME_OR_ID VOLUME_NAME_OR_ID
  1. Delete the volume:
1 openstack volume delete VOLUME_NAME_OR_ID
  1. Confirm deletion by listing volumes:
1 openstack volume list

What to Do When a Volume Enters Error State

A volume stuck in Error state will not be attachable or operable. Common causes include:

  • Storage backend unavailability at the time of creation or operation
  • Quota exhaustion (project has exceeded its volume count or total GiB limit)
  • A failed live migration that left volume state inconsistent

To recover, try resetting the volume state via CLI:

1openstack volume set --state available VOLUME_NAME_OR_ID

This forces the volume state back to Available so you can retry the original operation or delete the volume. Use this with care: if the backend truly failed, forcing state may result in a volume that appears available but cannot actually serve data. Contact InMotion Cloud support if a volume repeatedly returns to Error after a state reset.

Next Steps

With volume management in hand, the logical next steps are configuring volume backups through Cinder snapshots, attaching bootable volumes to instances for flexible instance deployments, and setting up volume metadata for cost tracking and automation. If your workload requires shared storage across multiple instances, review the documentation on shared file systems available through Manila in your InMotion Cloud VPC.