Extending IBMNAS driver to support NAS based GPFS storage deployments

https://blueprints.launchpad.net/cinder/+spec/add-gpfs-nas-to-ibmnas

Currently, the ibmnas driver works for an nfs export from Storwize V7000 Unified and SONAS products. It does not have the capability to work with nfs exports provided from a gpfs server.

Problem description

Currently, the ibmnas driver does not have the capability to work with nfs exports provided from a gpfs server.

  • Lacking this capability will limit the end users from using remote gpfs NAS servers as a backend in OpenStack environment.

Use Cases

Proposed change

  • Add/Reuse functions in ibmnas.py to support all minimum features listed (github.com/openstack/cinder/blob/master/doc/source/devref/drivers.rst) for NAS based GPFS server backends.

Alternatives

The existing gpfs driver can be extended to support NAS based gpfs storage deployments. But this implementation requires many other new funtions to be introduced, which are already existing and can be reused in ibmnas driver. Apart from this in future, we have planned to support all NFS/GPFS related IBM products via ibmnas driver. Hence extending ibmnas driver is more advantageous than extending gpfs driver.

Data model impact

None

REST API impact

None

Security impact

No specific security issues needs to be considered. Insecure file permissions (OSSN-0014) is fixed in the driver and is addressed by https://review.openstack.org/#/c/101919/

Notifications impact

None

Other end user impact

None

Performance Impact

None

Other deployer impact

This requires an additional option to be configured while deploying OpenStack with IBMNAS products (sonas, v7ku, gpfs-nas).

  • New configuration option needs to be filled in cinder.conf ibmnas_platform_type = <sonas> | <v7ku> | <gpfs-nas>
  • This change needs to be explicitly enabled on IBMNAS driver CI certification

Developer impact

None

Implementation

Assignee(s)

Primary assignee:
sasikanth <sasikanth.eda@in.ibm.com>
Other contributors:
nilesh-bhosale <nilesh.bhosale@in.ibm.com>

Work Items

  • Add/Reuse functions in ibmnas.py to support NAS based GPFS storage deployments.

Dependencies

None

Testing

  • Unit tests - Existing test_ibmnas.py will be improved to handle the new code changes/functions.
  • Tempest tests - No additional testcases needs to be written, this feature can be tested with the existing tempest.
  • Cinder driver certification tests - Driver certification tests will be executed and results will be submitted to the community (as the changes will altogether enable a new storage platform).
  • CI tests - We are working towards 3rd party CI environment and will continuously run tests across the respective hardware platform.

Documentation Impact

ibmnas driver documentation needs to updated with this new configuration option.

ibmnas_platform_type = <sonas> | <v7ku> | <gpfs-nas>

This option is used for selecting the appropriate backend storage. Valid values are v7ku for using IBM Storwize V7000 Unified sonas for using IBM Scale Out NAS and gpfs-nas for using NAS based GPFS server deployment

References

None