Skip to main content

Overview

(BDM) gives precise control over how storage is presented to an instance at creation time. Use BDM to boot from a persistent volume, attach pre-existing data volumes, or configure the ephemeral scratch disk included in certain flavors.
Prerequisites
  • An active Xloud project with member or admin role
  • Xloud Block Storage volumes (for volume-backed launches) or images (for image-backed launches)
  • CLI users: Xloud CLI configured and credentials sourced

BDM Attributes Reference

AttributeDescriptionValues
source_typeOrigin of the block deviceimage, volume, snapshot, blank
destination_typeWhere the device is storedvolume (persistent) or local (ephemeral)
boot_indexBoot priority (0 = primary boot device)Integer; -1 for non-bootable
uuidID of the source image, volume, or snapshotUUID string
volume_sizeSize of the created volume in GBInteger
delete_on_terminationWhether to delete the volume when the instance is deletedtrue or false

Boot from Volume

Booting from a persistent volume is recommended for production workloads. The root disk survives instance termination when delete_on_termination is set to false, enabling instance snapshots, backups, and re-attachment to replacement instances.

Open the Launch Instance dialog

Navigate to Project → Compute → Instances and click Launch Instance.

Configure the boot source

On the Source tab:
  1. Set Select Boot Source to Image.
  2. Set Create New Volume to Yes.
  3. Set the Volume Size to at least the image’s minimum disk requirement.
  4. Set Delete Volume on Instance Delete based on your retention policy.
SettingRecommendation
Create New VolumeYes — creates a persistent boot volume
Volume Size≥ image minimum disk size (shown in image metadata)
Delete Volume on Instance DeleteNo for production; Yes for ephemeral workloads

Complete and launch

Complete the remaining tabs (Flavor, Networks, Security Groups, Key Pair) and click Launch Instance.
After launch, navigate to Project → Volumes → Volumes to confirm the boot volume was created and is in In-use status.

Attach Additional Volumes at Launch

Attach pre-existing data volumes when creating an instance to have formatted storage available immediately after boot.
The Dashboard does not expose the full BDM --block-device API at launch time for additional volumes. Attach pre-existing volumes after launch:Navigate to Project → Volumes → Volumes, find the target volume, and select Manage Attachments → Attach to Instance.
For complex BDM configurations (multiple volumes at launch, specific boot index control), use the CLI which provides full --block-device parameter support.

Ephemeral Disk Configuration

Ephemeral disks are temporary storage included in certain flavors. They exist only for the lifetime of the instance and are reset or removed on rebuild, resize, or termination.
PropertyValue
Device path/dev/vdb (first ephemeral); /dev/vdc if a persistent volume is also attached
PersistenceDeleted when the instance is terminated or rebuilt
Use caseScratch space, temporary build artifacts, swap
Flavor controlEphemeral disk size is defined by the flavor, not configurable at launch
Do not store persistent data on ephemeral disks. Use Xloud Block Storage volumes or Xloud Object Storage for durable workloads that must survive instance termination.

BDM Scenarios Summary

Recommended configuration: Boot from volume with delete_on_termination=false. The root disk survives instance deletion, enabling backup, snapshot, and re-attachment workflows.
CLI: launch with persistent boot volume
openstack server create \
  --volume <BOOTABLE_VOLUME_ID> \
  --flavor <FLAVOR> \
  --network <NETWORK> \
  my-prod-instance
Recommended configuration: Boot from image with delete_on_termination=true. Suitable for auto-scaling groups, CI runners, or stateless app tiers where instances are disposable.
CLI: launch with ephemeral root (deleted on terminate)
openstack server create \
  --image <IMAGE> \
  --flavor <FLAVOR> \
  --network <NETWORK> \
  --block-device source_type=image,uuid=<IMAGE_ID>,destination_type=local,boot_index=0,delete_on_termination=true \
  my-stateless-instance
Recommended configuration: Boot from volume (OS) + separate data volume (database files). This separates the OS lifecycle from the data lifecycle — terminate and rebuild the OS volume while the data volume persists.
CLI: launch with separate data volume
openstack server create \
  --volume <OS_VOLUME_ID> \
  --flavor <FLAVOR> \
  --network <NETWORK> \
  --block-device source_type=volume,uuid=<DATA_VOLUME_ID>,destination_type=volume,boot_index=1 \
  my-db-instance

Next Steps

Xloud Block Storage

Create, manage, and snapshot persistent block storage volumes

Launch an Instance

Full instance launch walkthrough including boot source and volume configuration

Rescue an Instance

Mount and repair volumes when an instance fails to boot

Compute User Guide

Overview of all compute operations and instance lifecycle management