- Red Hat OpenStack Platform 16.2 Deployment Guide
- Red Hat OpenStack Platform 16.2 Overcloud Parameters
- Red Hat OpenStack Platform 16.2 Multipath Configuration
- OpenStack Configuration For Infinidat Cinder Driver
- Linux Man Page for multipath.conf(5)
This page provides detailed steps on how to enable the containerized Infinidat Cinder driver for Red Hat OpenStack Platform. It also contains steps to deploy and configure Infinidat InfiniBox backends for Red Hat OpenStack Platform 16.2.
The custom Cinder container image contains the following additional packages:
python3-api-object-schema
python3-arrow
python3-capacity
python3-click
python3-colorama
python3-confetti
python3-flux
python3-gossip
python3-infi-dtypes-iqn
python3-infi-dtypes-wwn
python3-infinisdk
python3-logbook
python3-mitba
python3-munch
python3-pact
python3-sentinels
python3-storage-interfaces
python3-urlobject
python3-vintage
python3-waiting
- Red Hat OpenStack Platform 16.2 with Red Hat Enterprise Linux 8.2.
- Infinidat InfiniBox storage 4.0 or above.
To use Infinidat InfiniBox as a block storage backend, a cinder-volume
container must be deployed.
Generate a default environment file that prepares images using your Satellite server as a source. Refer to the Red Hat OpenStack 16.2 deployment guide, chapter 3.16. Preparing a Satellite server for container images, step 9.
Edit the containers-prepare-parameter.yaml
file. Add an exclude parameter to the strategy for the main Red Hat OpenStack Platform 16.2 Cinder container image:
parameter_defaults:
ContainerImagePrepare:
- push_destination: true
excludes:
- cinder-volume
set:
namespace: registry.redhat.io/rhosp-rhel8
name_prefix: openstack-
name_suffix: ''
tag: 16.2
...
tag_from_label: "{version}-{release}"
Refer to the Infinidat's sample containers-prepare-parameter.yaml
file in our repository.
Add a new strategy to the ContainerImagePrepare
parameter that includes the replacement container image for the Infinidat InfiniBox Cinder plugin:
parameter_defaults:
ContainerImagePrepare:
...
- push_destination: true
includes:
- cinder-volume
set:
namespace: registry.connect.redhat.com/infinidat
name_prefix: openstack-
name_suffix: -infinidat-plugin
tag: latest
...
Refer to the Infinidat's sample containers-prepare-parameter.yaml
file in our repository.
Configure authentication for the Red Hat registries in the ContainerImageRegistryCredentials
parameter. Refer to Red Hat OpenStack 16.2 deployment guide, chapter 3.9. Obtaining container images from private registries.
Use the containers-prepare-parameter.yaml
file with all deployment commands, such as openstack overcloud deploy
:
openstack overcloud deploy --templates \
...
-e containers-prepare-parameter.yaml \
...
When the director deploys the overcloud, the overcloud uses the Infinidat Cinder container image instead of the standard Cinder container image.
The Infinidat InfiniBox environment file for Red Hat OpenStack Platform contains settings for each backend you might want to define.
Create the environment file cinder-infinidat-config.yaml
with the following parameters and other backend details:
parameter_defaults:
CinderEnableIscsiBackend: false
CinderEnableRbdBackend: false
CinderEnableNfsBackend: false
NovaEnableRbdBackend: false
CinderDefaultVolumeType: infinidat-iscsi1
CinderRpcResponseTimeout: 180
NovaLibvirtVolumeUseMultipath: true
MultipathdEnable: true
MultipathdCustomConfigFile: /var/lib/mistral/multipath.conf
ControllerExtraConfig:
cinder::config::cinder_config:
infinidat-iscsi1/volume_driver:
value: cinder.volume.drivers.infinidat.InfiniboxVolumeDriver
infinidat-iscsi1/volume_backend_name:
value: infinidat-iscsi1
infinidat-iscsi1/san_ip:
value: infinibox.domain.com
infinidat-iscsi1/san_login:
value: your_san_login
infinidat-iscsi1/san_password:
value: your_san_password
infinidat-iscsi1/san_thin_provision:
value: true
infinidat-iscsi1/driver_use_ssl:
value: true
infinidat-iscsi1/suppress_requests_ssl_warnings:
value: true
infinidat-iscsi1/infinidat_pool_name:
value: rhsop_cinder_pool1
infinidat-iscsi1/infinidat_storage_protocol:
value: iscsi
infinidat-iscsi1/infinidat_iscsi_netspaces:
value: default_iscsi_space
infinidat-iscsi1/san_thin_provision:
value: true
infinidat-iscsi1/use_multipath_for_image_xfer:
value: true
infinidat-iscsi1/image_volume_cache_enabled:
value: false
Refer to the Infinidat's sample cinder-infinidat-config-iscsi.yaml
file in our repository.
For further details of the Infinidat InfiniBox storage Cinder driver configuration, refer to OpenStack documentation, chapter INFINIDAT InfiniBox Block Storage driver.
Note: Infinidat recommends that you use an Infinidat-specific
multipath.conf
instead of generic one.
Note: Red Hat OpenStack Platform 16.2 supports configuring only a limited set of options for multipath.conf.
Note: For further details, refer to Red Hat OpenStack Platform 16.2 Storage Guide, chapter 2.12.1.1. Multipath heat template parameters.
Note: Refer to Red Hat OpenStack Platform 16.2 Storage Guide, chapter 2.12 Multipath configuration to specify and deploy a custom
multipath.conf
.
Note: To view all the options available in
multipath.conf
, refer to Linux Man Page For multipath.conf(5).
After creating the cinder-infinidat-config.yaml
environment file with appropriate backends, deploy the backend configuration by running the openstack overcloud deploy
command using the templates option:
openstack overcloud deploy --templates \
...
-e cinder-infinidat-config.yaml \
...
The order of the environment files (.yaml) is important becasue the parameters and resources defined in subsequent environment files take precedence:
openstack overcloud deploy --templates \
...
-e /home/stack/templates/cinder-infinidat-config.yaml \
-e /home/stack/containers-prepare-parameter.yaml \
...
--stack overcloud \
--log-file overcloud_hl_$(date +%d%m%Y%H%M%S).log | tee -a overcloud_deployment_$(date +%d%m%Y%H%M%S).log
3.1. SSH to the controller node from the undercloud, and check the process for the cinder-volume
container:
(overcloud) [heat-admin@overcloud-controller-0 ~]$ sudo podman ps | grep cinder
e7192ba6663c rhosp-director-ng.ctlplane.localdomain:8787/rhosp-rhel8/openstack-cinder-api:16.2 kolla_start 3 weeks ago Up 27 hours ago cinder_api
4b2b34c038c0 rhosp-director-ng.ctlplane.localdomain:8787/rhosp-rhel8/openstack-cinder-api:16.2 kolla_start 3 weeks ago Up 27 hours ago cinder_api_cron
b8e45cae61fb rhosp-director-ng.ctlplane.localdomain:8787/rhosp-rhel8/openstack-cinder-scheduler:16.2 kolla_start 3 weeks ago Up 27 hours ago cinder_scheduler
54cc3b7449fa rhosp-director-ng.ctlplane.localdomain:8787/rhosp-rhel8/openstack-cinder-backup:16.2 kolla_start 3 weeks ago Up 27 hours ago cinder_backup
dc20a77daeee cluster.common.tag/openstack-cinder-volume-infinidat-plugin:pcmklatest /bin/bash /usr/lo... 26 hours ago Up 26 hours ago openstack-cinder-volume-podman-0
3.2. Verify that the infinisdk
Python library is present in the cinder-volume
container:
(overcloud) [heat-admin@overcloud-controller-0 ~]$ sudo podman exec -it openstack-cinder-volume-podman-0 pip freeze | grep -i infinisdk
infinisdk==206.1.2
3.3. Verify that the backend details are visible in /etc/cinder/cinder.conf
in the cinder-volume
container (the following is an example of iSCSI backend details):
(overcloud) [heat-admin@overcloud-controller-0 ~]$ sudo podman exec -it openstack-cinder-volume-podman-0 tail -20 /etc/cinder/cinder.conf
...
[infinidat-iscsi1]
driver_use_ssl=True
image_volume_cache_enabled=False
infinidat_iscsi_netspaces=default_iscsi_space
infinidat_pool_name=rhsop_cinder_pool1
infinidat_storage_protocol=iscsi
san_ip=infinibox.domain.com
san_login=your_san_login
san_password=your_san_password
san_thin_provision=True
suppress_requests_ssl_warnings=True
use_multipath_for_image_xfer=True
volume_backend_name=infinidat-iscsi1
volume_driver=cinder.volume.drivers.infinidat.InfiniboxVolumeDriver
backend_host=hostgroup