You can configure the Image service (glance) with multiple storage back ends.
Before you begin
- You have planned networking for storage to ensure connectivity between the storage back ends, the control plane, and the Compute nodes on the data plane. For more information, see Required data center networks.
About this task
To configure multiple back ends for a single Image service API (glanceAPI) instance, you set the enabled_backends parameter with key-value pairs. The key is the identifier for the store and the value is the type of store. The following values are valid:
-
file
-
http
-
rbd
-
swift
-
cinder
-
s3
Procedure
- Open your
OpenStackControlPlane CR file, openstack_control_plane.yaml, and add the parameters to the glance template to configure the back ends. In the following example, there are two Ceph RBD stores and one Object Storage service (swift) store:
...
spec:
glance:
template:
customServiceConfig: |
[DEFAULT]
debug=True
enabled_backends = ceph-0:rbd,ceph-1:rbd,swift-0:swift
...
- Specify the back end to use as the default back end. In the following example, the default back end is
ceph-1:
...
customServiceConfig: |
[DEFAULT]
debug=True
enabled_backends = ceph-0:rbd,ceph-1:rbd,swift-0:swift
[glance_store]
default_backend = ceph-1
...
- Add the configuration for each back end type you want to use:
- Add the configuration for the first Ceph RBD store,
ceph-0:
...
customServiceConfig: |
[DEFAULT]
...
[ceph-0]
rbd_store_ceph_conf = /etc/ceph/ceph-0.conf
store_description = "RBD backend"
rbd_store_pool = images
rbd_store_user = openstack
...
- Add the configuration for the second Ceph RBD store,
ceph-1:
...
customServiceConfig: |
[DEFAULT]
...
[ceph-0]
...
[ceph-1]
rbd_store_ceph_conf = /etc/ceph/ceph-1.conf
store_description = "RBD backend 1"
rbd_store_pool = images
rbd_store_user = openstack
...
- Add the configuration for the Object Storage service store,
swift-0:
...
customServiceConfig: |
[DEFAULT]
...
[ceph-0]
...
[ceph-1]
...
[swift-0]
swift_store_create_container_on_put = True
swift_store_auth_version = 3
swift_store_auth_address = {{ .KeystoneInternalURL }}
swift_store_key = {{ .ServicePassword }}
swift_store_user = service:glance
swift_store_endpoint_type = internalURL
...
- Update the control plane:
$ oc apply -f openstack_control_plane.yaml -n openstack
- Wait until RHOCP creates the resources related to the
OpenStackControlPlane CR. Run the following command to check the status:
$ oc get openstackcontrolplane -n openstack
The OpenStackControlPlane resources are created when the status is "Setup complete".
Tip
Append the -w option to the end of the get command to track deployment progress.