Storage configuration¶
Atmosphere uses a unified storage configuration variable atmosphere_storage
that serves as the single source of truth for all storage backends across
OpenStack services. This eliminates the need to configure storage settings in
multiple places.
Overview¶
The atmosphere_storage variable organizes storage by purpose:
imagesImage storage for Glance. Supports multiple backends.
volumesBlock storage for Cinder. Supports multiple backends.
backupBackup storage for Cinder backup.
ephemeralEphemeral disk storage for Nova and libvirt.
The system automatically derives per-service Helm values from this single variable for Cinder, Glance, Nova, libvirt, and Ceph Provisioners.
Default configuration¶
By default, Atmosphere configures image and volume storage to use the
integrated Ceph cluster, with local (qcow2) ephemeral disks for Nova.
The atmosphere_storage variable defaults to an empty dictionary
({}), and the built-in defaults provide sensible starting values.
You can override any part of the configuration by setting
atmosphere_storage in your inventory. Your overrides merge on top of
the built-in defaults using a recursive merge, so you only need to
specify the parts you want to change.
The built-in defaults are equivalent to:
images:
default: rbd1
backends:
rbd1:
type: rbd
pool: glance.images
replication: 3
crush_rule: replicated_rule
chunk_size: 8
user: glance
volumes:
default: rbd1
backends:
rbd1:
type: rbd
pool: cinder.volumes
replication: 3
crush_rule: replicated_rule
user: cinder
secret_uuid: 457eb676-33da-42ec-9a8c-9293d545c337
backup:
type: rbd
pool: cinder.backups
replication: 3
crush_rule: replicated_rule
user: cinderbackup
ephemeral:
type: local
The integrated Ceph cluster works without additional configuration.
Enabling RBD ephemeral storage¶
To use Ceph RBD for Nova ephemeral disks instead of local storage, set
the ephemeral section in your atmosphere_storage override:
atmosphere_storage:
ephemeral:
type: rbd
pool: vms
replication: 3
crush_rule: replicated_rule
user: cinder
secret_uuid: 457eb676-33da-42ec-9a8c-9293d545c337
Supported backend types¶
Ceph RBD (rbd)¶
Standard replicated Ceph RBD backend. Used for images, volumes, backups, and ephemeral storage.
type: rbd
pool: <pool_name>
replication: 3
crush_rule: replicated_rule
user: <username>
secret_uuid: <uuid> # required for volumes and ephemeral
Ceph RBD erasure-coded (rbd-ec)¶
Erasure-coded Ceph RBD backend for improved storage efficiency. Only supported for volume backends. EC pools provide better storage utilization compared to replicated pools, at the cost of slightly higher CPU overhead.
EC pools require two components:
A metadata pool (replicated) that stores metadata
A data pool (EC) that stores the actual volume data
type: rbd-ec
pool: cinder.volumes.ec
erasure_coded:
k: 4 # data chunks
m: 2 # coding (parity) chunks
failure_domain: host
device_class: hdd # optional
metadata_replication: 3
user: cinder-ec # must be unique per EC backend
secret_uuid: <unique-uuid>
The EC pool configuration parameters are:
kNumber of data chunks. Higher values provide better storage efficiency.
mNumber of coding (parity) chunks. Higher values provide better fault tolerance.
device_classTarget specific device types, for example
hdd,ssd, ornvme.failure_domainFailure domain for data placement, for example
host,rack, orroom.
Warning
Each erasure-coded backend requires a dedicated user and a
unique secret_uuid. Generate new UUID’s with uuidgen.
Dell PowerStore (powerstore)¶
Warning
Make sure that you set up the hosts inside of your storage array. They must not be inside a host group, or individual attachments won’t work.
type: powerstore
address: <management_ip_or_hostname>
username: <username>
password: <password>
protocol: iscsi # or fc
Pure storage (pure)¶
Pure Storage FlashArray integration. When using the NVMe protocol, you can
optionally set transport to roce or tcp.
For additional options, see the Cinder Pure Storage documentation.
type: pure
protocol: iscsi # or fc, nvme
address: <management_ip_or_hostname>
api_token: <token>
transport: roce # optional, only for nvme protocol
StorPool (storpool)¶
StorPool distributed storage backend. The system configures network settings and file system mounts automatically.
type: storpool
template: hybrid-2ssd
Cinder (cinder)¶
Cinder-backed Glance store. Only used for image backends.
type: cinder
Examples¶
Adding an erasure-coded volume backend¶
To add an EC pool alongside the default replicated backend, add a new entry
under atmosphere_storage.volumes.backends:
atmosphere_storage:
volumes:
backends:
rbd_ec:
type: rbd-ec
pool: cinder.volumes.ec
erasure_coded:
k: 4
m: 2
failure_domain: host
metadata_replication: 3
user: cinder-ec
secret_uuid: 808c5658-7c46-4818-8f26-82a217e3a57a
The system automatically configures all required services: Cinder backend configuration, Ceph pool creation, libvirt secret registration, and Ceph client data pool routing.
Using Dell PowerStore¶
atmosphere_storage:
volumes:
default: powerstore
backends:
powerstore:
type: powerstore
address: 10.0.0.1
username: admin
password: secret
protocol: iscsi
backup:
type: none
ephemeral:
type: local
Glance with multiple backends¶
atmosphere_storage:
images:
default: rbd1
backends:
rbd1:
type: rbd
pool: glance.images
replication: 3
user: glance
cinder_store:
type: cinder
Advanced overrides¶
The atmosphere_storage variable generates base Helm values. You can still
use per-service *_helm_values variables (such as cinder_helm_values or
glance_helm_values) to override specific settings. The per-service overrides
always take precedence.
Migrating from atmosphere_ceph_enabled¶
The atmosphere_ceph_enabled variable is no longer supported. Storage
configuration now uses the unified atmosphere_storage variable. If your
inventory sets atmosphere_ceph_enabled, remove it and configure
atmosphere_storage instead.
If you previously set atmosphere_ceph_enabled: true¶
No action beyond removing the variable is necessary. The built-in defaults already configure Ceph RBD for images and volumes, which matches the previous behavior.
# Remove this from your inventory:
# atmosphere_ceph_enabled: true
If you previously set atmosphere_ceph_enabled: false¶
Remove the variable and configure atmosphere_storage to match your
environment. For example, if you use Dell PowerStore for volumes and local
ephemeral storage:
# Remove this from your inventory:
# atmosphere_ceph_enabled: false
# Add this instead:
atmosphere_storage:
images:
default: cinder_store
backends:
cinder_store:
type: cinder
volumes:
default: powerstore
backends:
powerstore:
type: powerstore
address: 10.0.0.1
username: admin
password: secret
protocol: iscsi
backup:
type: none
ephemeral:
type: local