Configure the Block Storage volume service
The Block Storage service (cinder) has a volume service (cinderVolumes section) that is responsible for managing operations related to volumes, snapshots, and groups. These operations include creating, deleting, and cloning volumes and making snapshots.
About this task Copy linkLink copied!
This service requires access to the storage back end (storage) and storage management (storageMgmt) networks in the networkAttachments of the OpenStackControlPlane CR. Some operations, such as creating an empty volume or a snapshot, does not require any data movement between the volume service and the storage back end. Other operations though, such as migrating data from one storage back end to another, that requires the data to pass through the volume service to do require access.
Volume service configuration is performed in the cinderVolumes section with parameters set in the customServiceConfig, customServiceConfigSecrets, networkAttachments, replicas, and the nodeSelector sections.
The volume service cannot have multiple replicas.
Procedure Copy linkLink copied!
Volume service parameters Copy linkLink copied!
Use volume service parameters to configure the cinderVolumes component, including back end names, drivers, and image conversion settings.
| Parameter | Description |
|---|---|
|
|
Provides a setting for the availability zone of the back end. This is set in the |
|
|
Provides a setting for the back end name for a given driver implementation. There is no default value. |
|
|
Provides a setting for the driver to use for volume creation. It is provided in the form of Python namespace for the specific class. There is no default value. |
|
|
Provides a setting for a list of back end names to use. These back end names should be backed by a unique [CONFIG] group with its options. This is a comma-seperated list of values. The default value is the name of the section with a |
|
|
Provides a setting for a directory used for temporary storage during image conversion. The default value is |
|
|
Provides a setting for the number of seconds between the volume requests for usage statistics from the storage back end. The default is |
Block Storage back ends Copy linkLink copied!
Configure each Block Storage service back end in its own section within cinderVolumes so that each back end runs in a dedicated pod with independent lifecycle management.
Running each back end in a dedicated pod provides the following benefits:
- Increased isolation.
- Adding and removing back ends is fast and does not affect other running back ends.
- Configuration changes do not affect other running back ends.
- Automatically spreads the Volume pods into different nodes.
Each Block Storage service back end uses a storage transport protocol to access data in the volumes. Each storage transport protocol has individual requirements, as described in "Configuring transport protocols". Storage protocol information should also be provided in individual vendor installation guides.
Configure each back end with an independent pod. In director-based releases of RHOSP, all back ends run in a single cinder-volume container. This is no longer the best practice.
No back end is deployed by default. The Block Storage service volume service will not run unless at least one back end is configured during deployment.
All storage vendors provide an installation guide with best practices, deployment configuration, and configuration options for vendor drivers. These installation guides provide the specific configuration information required to properly configure the volume service for deployment. Installation guides are available in the Red Hat Ecosystem Catalog.
For information about the following topics, see the Additional resources section: * Integrating and certifying vendor drivers * Red Hat Ceph Storage back ends * Configuring a generic (non-vendor specific) NFS back end
Use a certified storage back end and driver. If you use NFS storage that comes from the generic NFS back end, its capabilities are limited compared to a certified storage back end and driver.
Multiple Block Storage back ends Copy linkLink copied!
Multiple Block Storage service back ends are deployed by adding multiple, independent entries in the cinderVolumes configuration section. Each back end runs in an independent pod.
The following configuration example, deploys two independent back ends; one for iSCSI and another for NFS:
apiVersion: core.openstack.org/v1beta1
kind: OpenStackControlPlane
metadata:
name: openstack
spec:
cinder:
template:
cinderVolumes:
nfs:
networkAttachments:
- storage
customServiceConfigSecrets:
- cinder-volume-nfs-secrets
customServiceConfig: |
[nfs]
volume_backend_name=nfs
iSCSI:
networkAttachments:
- storage
- storageMgmt
customServiceConfig: |
[iscsi]
volume_backend_name=iscsi