cinder lvm #3

Supports: bionic focal groovy hirsute impish


Cinder is the block storage service for the Openstack project. . This charm provides an LVM backend for Cinder.


The cinder-lvm charm provides an LVM backend for Cinder, the core OpenStack block storage (volume) service. It is a subordinate charm that is used in conjunction with the cinder charm.

Note: The cinder-lvm charm is supported starting with OpenStack Queens.



This section covers common and/or important configuration options. See file config.yaml for the full list of options, along with their descriptions and default values. See the Juju documentation for details on configuring applications.


Refers to volume provisioning type. Values can be 'thin', 'thick', 'auto' (resolves to 'thin' if supported) , and 'default' (resolves to 'thick'). The default value is 'default'.


Specifies a space-separated list of devices to use for LVM physical volumes. This is a mandatory option. Value types include:

  • block devices (e.g. 'sdb' or '/dev/sdb')
  • a path to a local file with the size appended after a pipe (e.g. '/path/to/file|10G'). The file will be created if necessary and be mapped to a loopback device. This is intended for development and testing purposes. The default size is 5G.

To prevent potential data loss an already formatted device (or one containing LVM metadata) cannot be used unless the overwrite configuration option is set to 'true'.


Comma-separated list of key=value configuration flags. These will be added to Cinder's cinder.conf file and will only affect the LVM backend.


Permits (with a value of 'true') the charm to attempt to overwrite storage devices (specified by the block-devices option) if they contain pre-existing filesystems or LVM metadata. The default is 'false'. A device in use on the host will never be overwritten.


To deploy, add a relation to the cinder charm:

juju add-relation cinder-lvm:storage-backend cinder:storage-backend


The OpenStack Charms project maintains two documentation guides:


Please report bugs on Launchpad.


(string) An alias given to the storage pool. This alias will be used to derive the volume-group name and the backend name, and the idea is to differentiate volume groups and backend names if you deploy multiple instances of the charm on the same host. . If you are only deploying one instance, this name does not matter and "default" is probably ok. But if you are deploying multiple instances then change the name on each instance to a more meaningful name, like "pool1", "pool2", etc. or "fast", "slow" in case you want to name them after the kind of storage you have.
(string) Select between thin or thick models when allocating logical volumes in volume group. Options are 'default' for thick, 'thin' for thin or 'auto' for thin if supported otherwise thick.
(string) The backend name to provide to the cinder charm. If empty, the backend name will be constructed from the 'alias' parameter, and the unit's hostname, if the charm has the config option 'unique-backend' set to True.
(string) The block devices on which to create an LVM volume group. This is a mandatory option and leaving it blank will give you and error. . This can be a space-separated list of block devices to attempt to use in the cinder lvm volume group. Each block device detected will be added to the available physical volumes in the volume group. . Formatting as a physical volume will fail if the device is already formatted and may potentially have data, unless 'overwrite' is true. . May be set to the path and size of a local file (/path/to/file|$sizeG), which will be created and used as a loopback device (for testing only). $sizeG defaults to 5G.
(string) Comma-separated list of key=value config flags. These values will be added to standard options when injecting config into cinder.conf.
(string) Cloud instances provide ephemeral storage which is normally mounted on /mnt. . Providing this option will force an unmount of the ephemeral device so that it can be used as a Cinder storage device. This is useful for testing purposes (cloud deployment is not a typical use case). . You need to pass the mount point to be unmounted, if blank (or invalid) it will be ignored.
(string) Normally volumes are zeroed completelly before being released after deletion, thus making it slow. Set to a small number to zero only that amount of MB in the beginning of the volume (ex. 50). Values are in MB and 0 (the default) means all (the whole volume).
(boolean) If true, charm will attempt to overwrite block devices containing previous filesystems or LVM, assuming it is not in use.
(boolean) If True, charm will attempt to remove missing physical volumes from volume group, if logical volumes are not allocated on them.
(boolean) If True, charm will attempt to remove missing physical volumes from volume group, even when logical volumes are allocated on them. This option overrides 'remove-missing' when set.
(boolean) Normally all backends which this charm configures are going to register themselves with Cinder using the same backend name (the name of the volume group), therefore allowing Cinder to use them as a cluster and schedule volume creation to any of the nodes that pass cinder filter selection. Set this to True to make each host register with a unique name (volume-group name + hostname) so that each host can be individually addressable in cinder backend list.
(string) Volume group name to use within LVM. If empty, the volume group name will be constructed by concatenating the 'alias' config option to the prefix 'cinder-volumes-'.