Bug 1237145 - Need support for NFS for cinder
Summary: Need support for NFS for cinder
Alias: None
Product: Red Hat OpenStack
Classification: Red Hat
Component: rhosp-director
Version: Director
Hardware: Unspecified
OS: Unspecified
Target Milestone: ga
: Director
Assignee: Jiri Stransky
QA Contact: Yogev Rabl
Depends On: 1248374
TreeView+ depends on / blocked
Reported: 2015-06-30 13:26 UTC by Mike Burns
Modified: 2015-08-05 13:57 UTC (History)
6 users (show)

Fixed In Version: openstack-tripleo-puppet-elements-0.0.1-4.el7ost openstack-tripleo-heat-templates-0.8.6-31.el7ost
Doc Type: Enhancement
Doc Text:
With this release, a new enhancement adds NFS backend for the Block Storage service to provide a greater variety of possible Block Storage backends. As a result, Overcloud Block Storage service can be configured with a NFS backend with the following parameters: * CinderEnableNfsBackend * CinderNfsMountOptions * CinderNfsServers
Clone Of:
Last Closed: 2015-08-05 13:57:49 UTC
Target Upstream Version:

Attachments (Terms of Use)

System ID Priority Status Summary Last Updated
OpenStack gerrit 197934 None None None Never
OpenStack gerrit 197944 None None None Never
Red Hat Product Errata RHEA-2015:1549 normal SHIPPED_LIVE Red Hat Enterprise Linux OpenStack Platform director Release 2015-08-05 17:49:10 UTC

Description Mike Burns 2015-06-30 13:26:34 UTC
Description of problem:
Currently, with director, we can only deploy Cinder with support for lvm and/or ceph

We need to support at least NFS for cinder as well.

Version-Release number of selected component (if applicable):

How reproducible:

Additional info:
The result of no NFS is multi-fold.  

* We essentially lock out the larger storage vendors who support NFS but are not already integrated.
* We basically say no HA without Ceph (lvm doesn't scale without manual work to make it a clustered FS which is not currently done)
* We hurt POC cases where setting up a random NFS server is easy, but Ceph deployment is more complicated/resource intensive/time consuming

Comment 1 Jiri Stransky 2015-07-02 16:00:32 UTC
Progress info:

Patch to tripleo-puppet-elements to install nfs-utils in the compute element (if we always build a common image for all roles, we won't need to backport it because nfs-utils is pulled in by the controller element already):

Patch to tripleo-heat-templates:

^ Just wrote it but didn't test it yet as there's some HW problem with my lab machine (eng-ops will investigate). Meanwhile i'm rebuilding a dev env on a different machine, hoping to test Cinder with NFS tomorrow.

Comment 2 Jiri Stransky 2015-07-03 14:03:12 UTC
Sorry i posted the same link twice above. The link for tripleo-puppet-elements patch is:



I updated the tripleo-heat-template patch and successfully tested the NFS backend with patchset 4. Here's how to test:

Create a NFS export reachable from the overcloud. I'm using virtual
setup, so i'm exporting from the bare metal host.

yum -y install nfs-utils
systemctl start rpcbind
systemctl start nfs-server
setsebool -P nfs_export_all_rw 1

mkdir -p /export/cinder
chown -R nfsnobody:nfsnobody /export
echo "/export/cinder *(rw,sync,no_root_squash)" > /etc/exports
exportfs -rav

showmount -e

Set these parameters on the overcloud heat stack (i used an extra
environment file, but the workflow with Tuskar might be different):

  CinderEnableIscsiBackend: false
  CinderEnableNfsBackend: true
  CinderNfsMountOptions: 'retry=1'

Then after deploying and sourcing overcloudrc you can create a cinder

cinder create 1 --display-name test

And verify that on the bare metal the volume appeared in the exported

ls /export/cinder
# ^ output: volume-854f84c4-f46b-43a8-bfc0-b704f10f517f

Mounting a volume into an instance worked too (that's been automatically tested by devtest script when creating a demo instance in nova).

Comment 3 Jiri Stransky 2015-07-09 11:42:57 UTC
Typo in the testing steps above -- use all_squash instead of no_root_squash when exporting the directory on NFS host:

echo "/export/cinder *(rw,sync,all_squash)" > /etc/exports

Comment 5 Jiri Stransky 2015-07-31 16:29:21 UTC
This is probably not fully blocked by bug 1247585 (removing it from depends-on list). <- That bug would probably just cause iSCSI backend to stay switched on, so both would get deployed.

Comment 6 Alexander Chuzhoy 2015-07-31 18:12:33 UTC


Added the following under parameters section in yaml file:
  CinderEnableIscsiBackend: false                                     
  CinderEnableNfsBackend: true                                        
  CinderNfsMountOptions: 'retry=1'                                    
  CinderNfsServers: [IP:/share]

Deployed with:

openstack overcloud deploy --templates --control-scale 3  --compute-scale 1  --ceph-storage-scale 0 --block-storage-scale 0 --swift-storage-scale 0 -e [path to yaml].

Created the cinder image with:
cinder create 1 --display-name test
Verified it was added under the share name.

Was able to attach the volume to a launched instance.

Comment 8 errata-xmlrpc 2015-08-05 13:57:49 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.


Note You need to log in before you can comment on or make changes to this bug.