Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.

Bug 2291181

Summary: openstack-cinder-volume-podman-0 mounts NFS shares with version 4.1 when 4.2 is available
Product: Red Hat OpenStack Reporter: Eric Nothen <enothen>
Component: openstack-cinderAssignee: Eric Harney <eharney>
Status: CLOSED MIGRATED QA Contact: Yosi Ben Shimon <ybenshim>
Severity: medium Docs Contact:
Priority: low    
Version: 17.1 (Wallaby)CC: eharney
Target Milestone: ---Keywords: Triaged
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2025-01-09 21:52:44 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Eric Nothen 2024-06-10 15:14:51 UTC
Description of problem:

NFS shares are available to be mounted using v4.2, but Cinder mounts them using 4.1

Version-Release number of selected component (if applicable):
openstack-cinder-volume 17.1.3-6

How reproducible:
Always reproducible

Steps to Reproduce:
1. Configure Cinder to use NFS as backend:
~~~
(overcloud) [stack.lab ~]$ cat templates/cinder.yaml
parameter_defaults:
  CinderEnableIscsiBackend: false
  CinderEnableRbdBackend: false
  CinderEnableNfsBackend: false
  NovaEnableRbdBackend: false
  GlanceBackend: file
  GlanceNfsEnabled: true
  GlanceNfsShare: '192.168.24.1:/opt/shared'
  GlanceNfsOptions: 'defaults'
  ControllerExtraConfig:
    cinder::config::cinder_config:
        backend_defaults/max_over_subscription_ratio:
            value: 2.5
        cinder-test/volume_driver:
            value: cinder.volume.drivers.nfs.NfsDriver
        cinder-test/nfs_shares_config:
            value: /etc/cinder/nfs_shares_test
        cinder-test/volume_backend_name:
            value: NFS_test
        cinder-test/nfs_oversub_ratio:
            value: 1.0
        cinder-test/nfs_snapshot_support:
            value: true
        cinder-test/nas_secure_file_operations:
            value: false
        cinder-test/nas_secure_file_permissions:
            value: false
    cinder_user_enabled_backends: ['cinder-test']
    cinder::allow_availability_zone_fallback: 'true'
~~~

2. Provide NFS share definition to controllers, eg:
~~~
[tripleo-admin@overcloud-controller-0 ~]$ cat /var/lib/config-data/puppet-generated/cinder/etc/cinder/nfs_shares_test 
192.168.24.1:/opt/shared
[tripleo-admin@overcloud-controller-0 ~]$ 
~~~

3. Run overcloud deploy including templates/cinder.yaml

Actual results:

The NFS share is mounted on openstack-cinder-volume-podman-0, but using v4.1:
~~~
[root@overcloud-controller-0 ~]# podman exec -ti openstack-cinder-volume-podman-0 bash
[root@overcloud-controller-0 /]# mount | grep nfs
192.168.24.1:/opt/shared on /var/lib/cinder/mnt/c7275b6e392c1d7e3af2a66d5695c3cc type nfs4 (rw,relatime,vers=4.1,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=192.168.24.16,local_lock=none,addr=192.168.24.1)
[root@overcloud-controller-0 /]# 
~~~

Expected results:

The container should use the latest version available, which in this case is 4.2, confirmed with a manual umount/mount inside the container:
~~~
[root@overcloud-controller-0 /]# umount /var/lib/cinder/mnt/c7275b6e392c1d7e3af2a66d5695c3cc
[root@overcloud-controller-0 /]# mount 192.168.24.1:/opt/shared /var/lib/cinder/mnt/c7275b6e392c1d7e3af2a66d5695c3cc
[root@overcloud-controller-0 /]# mount | grep nfs
192.168.24.1:/opt/shared on /var/lib/cinder/mnt/c7275b6e392c1d7e3af2a66d5695c3cc type nfs4 (rw,relatime,vers=4.2,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=192.168.24.16,local_lock=none,addr=192.168.24.1)
[root@overcloud-controller-0 /]# 
~~~

Additional info:

Comment 1 Eric Nothen 2024-06-10 16:31:52 UTC
For the sake of completeness, specifying the nfs version in the environment file successfully works the issue around:

~~~
parameter_defaults:
  ControllerExtraConfig:
    cinder::config::cinder_config:
...
        cinder-test/nfs_mount_options:
            value: nfsvers=4.2
...
~~~

Comment 3 Eric Nothen 2025-01-09 08:32:22 UTC
Changed BZ from private to public. There's no customer data here, so I might have created it as private my mistake.