The Block Storage service (cinder) can be configured with a generic NFS back end to provide an alternative storage solution for volumes and backups.
About this task
- Limitations
-
- 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. For example, the generic NFS back end does not support features such as volume encryption and volume multi-attach. For information about supported drivers, see the Red Hat Ecosystem Catalog.
- For Block Storage (cinder) and Compute (nova) services, you must use NFS version 4.0 or later. RHOSO does not support earlier versions of NFS.
- RHOSO does not support the NetApp NAS secure feature. It interferes with normal volume operations. This feature must be disabled in the
customServiceConfig in the specific back-end configuration with the following parameters:
nas_secure_file_operation=false
nas_secure_file_permissions=false
- Do not configure the
nfs_mount_options option. The default value is the best NFS option for RHOSO environments. If you experience issues when you configure multiple services to share the same NFS server, contact Red Hat Support.
Procedure
-
Create a
Secret CR to store the volume connection information.
The following is an example of a Secret CR:
apiVersion: v1
kind: Secret
metadata:
name: cinder-volume-nfs-secrets
type: Opaque
stringData:
cinder-volume-nfs-secrets: |
[nfs]
nas_host=192.168.130.1
nas_share_path=/var/nfs/cinder
where:
-
name
- Is the name used when including it in the
cinderVolumes back end configuration.
-
Save the file.
-
Update the control plane:
$ oc apply -f <secret_file_name> -n openstack
- Replace
<secret_file_name> with the name of the file that contains your Secret CR.
-
Open your
OpenStackControlPlane CR file, openstack_control_plane.yaml.
-
Edit the CR file and add the configuration for the generic NFS back end.
The following example demonstrates this configuration:
apiVersion: core.openstack.org/v1beta1
kind: OpenStackControlPlane
metadata:
name: openstack
spec:
cinder:
template:
cinderVolumes:
nfs:
networkAttachments:
- storage
customServiceConfig: |
[nfs]
volume_backend_name=nfs
volume_driver=cinder.volume.drivers.nfs.NfsDriver
nfs_snapshot_support=true
nas_secure_file_operations=false
nas_secure_file_permissions=false
customServiceConfigSecrets:
- cinder-volume-nfs-secrets
- The
storageMgmt network is not listed because generic NFS does not have a management interface.
cinder-volume-nfs-secret: The name from the Secret CR.
- If you are configuring multiple generic NFS back ends, ensure that each back end is in an individual configuration section so that one pod is dedicated to each back end.
-
Save the file.
-
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.