Clone doesn't work for NFS driver

Bug #1614249 reported by Matt Riedemann
14
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Cinder
Fix Released
Medium
Erlon R. Cruz

Bug Description

According to the cinder volume driver support matrix, the NFS driver has supported the clone operation since Grizzly:

https://wiki.openstack.org/wiki/CinderSupportMatrix

However, clone tests fail in the NFS CI job:

http://logs.openstack.org/79/355679/1/experimental/gate-tempest-dsvm-full-devstack-plugin-nfs-nv/61652ac/logs/screen-c-vol.txt.gz#_2016-08-16_01_37_30_943

2016-08-16 01:37:30.943 ERROR oslo_messaging.rpc.server [req-03c93dd3-49ef-4b36-a6e4-a1a888e03f1e tempest-VolumesCloneTest-1411706804] Exception during message handling
2016-08-16 01:37:30.943 20676 ERROR oslo_messaging.rpc.server Traceback (most recent call last):
2016-08-16 01:37:30.943 20676 ERROR oslo_messaging.rpc.server File "/usr/local/lib/python2.7/dist-packages/oslo_messaging/rpc/server.py", line 133, in _process_incoming
2016-08-16 01:37:30.943 20676 ERROR oslo_messaging.rpc.server res = self.dispatcher.dispatch(message)
2016-08-16 01:37:30.943 20676 ERROR oslo_messaging.rpc.server File "/usr/local/lib/python2.7/dist-packages/oslo_messaging/rpc/dispatcher.py", line 150, in dispatch
2016-08-16 01:37:30.943 20676 ERROR oslo_messaging.rpc.server return self._do_dispatch(endpoint, method, ctxt, args)
2016-08-16 01:37:30.943 20676 ERROR oslo_messaging.rpc.server File "/usr/local/lib/python2.7/dist-packages/oslo_messaging/rpc/dispatcher.py", line 121, in _do_dispatch
2016-08-16 01:37:30.943 20676 ERROR oslo_messaging.rpc.server result = func(ctxt, **new_args)
2016-08-16 01:37:30.943 20676 ERROR oslo_messaging.rpc.server File "/opt/stack/new/cinder/cinder/volume/manager.py", line 599, in create_volume
2016-08-16 01:37:30.943 20676 ERROR oslo_messaging.rpc.server _run_flow()
2016-08-16 01:37:30.943 20676 ERROR oslo_messaging.rpc.server File "/opt/stack/new/cinder/cinder/volume/manager.py", line 587, in _run_flow
2016-08-16 01:37:30.943 20676 ERROR oslo_messaging.rpc.server flow_engine.run()
2016-08-16 01:37:30.943 20676 ERROR oslo_messaging.rpc.server File "/usr/local/lib/python2.7/dist-packages/taskflow/engines/action_engine/engine.py", line 247, in run
2016-08-16 01:37:30.943 20676 ERROR oslo_messaging.rpc.server for _state in self.run_iter(timeout=timeout):
2016-08-16 01:37:30.943 20676 ERROR oslo_messaging.rpc.server File "/usr/local/lib/python2.7/dist-packages/taskflow/engines/action_engine/engine.py", line 340, in run_iter
2016-08-16 01:37:30.943 20676 ERROR oslo_messaging.rpc.server failure.Failure.reraise_if_any(er_failures)
2016-08-16 01:37:30.943 20676 ERROR oslo_messaging.rpc.server File "/usr/local/lib/python2.7/dist-packages/taskflow/types/failure.py", line 336, in reraise_if_any
2016-08-16 01:37:30.943 20676 ERROR oslo_messaging.rpc.server failures[0].reraise()
2016-08-16 01:37:30.943 20676 ERROR oslo_messaging.rpc.server File "/usr/local/lib/python2.7/dist-packages/taskflow/types/failure.py", line 343, in reraise
2016-08-16 01:37:30.943 20676 ERROR oslo_messaging.rpc.server six.reraise(*self._exc_info)
2016-08-16 01:37:30.943 20676 ERROR oslo_messaging.rpc.server File "/usr/local/lib/python2.7/dist-packages/taskflow/engines/action_engine/executor.py", line 53, in _execute_task
2016-08-16 01:37:30.943 20676 ERROR oslo_messaging.rpc.server result = task.execute(**arguments)
2016-08-16 01:37:30.943 20676 ERROR oslo_messaging.rpc.server File "/opt/stack/new/cinder/cinder/volume/flows/manager/create_volume.py", line 821, in execute
2016-08-16 01:37:30.943 20676 ERROR oslo_messaging.rpc.server context, volume_ref=volume_ref, **volume_spec)
2016-08-16 01:37:30.943 20676 ERROR oslo_messaging.rpc.server File "/opt/stack/new/cinder/cinder/volume/flows/manager/create_volume.py", line 482, in _create_from_source_volume
2016-08-16 01:37:30.943 20676 ERROR oslo_messaging.rpc.server model_update = self.driver.create_cloned_volume(volume_ref, srcvol_ref)
2016-08-16 01:37:30.943 20676 ERROR oslo_messaging.rpc.server File "/opt/stack/new/cinder/cinder/volume/driver.py", line 1481, in create_cloned_volume
2016-08-16 01:37:30.943 20676 ERROR oslo_messaging.rpc.server raise NotImplementedError()
2016-08-16 01:37:30.943 20676 ERROR oslo_messaging.rpc.server NotImplementedError
2016-08-16 01:37:30.943 20676 ERROR oslo_messaging.rpc.server

Tags: clone drivers nfs
Changed in cinder:
assignee: nobody → Erlon R. Cruz (sombrafam)
status: New → In Progress
Changed in cinder:
importance: Undecided → Medium
Changed in cinder:
assignee: Erlon R. Cruz (sombrafam) → Eric Harney (eharney)
Eric Harney (eharney)
Changed in cinder:
assignee: Eric Harney (eharney) → Erlon R. Cruz (sombrafam)
Changed in cinder:
assignee: Erlon R. Cruz (sombrafam) → Eric Harney (eharney)
Eric Harney (eharney)
Changed in cinder:
assignee: Eric Harney (eharney) → Erlon R. Cruz (sombrafam)
tags: added: drivers
Changed in cinder:
milestone: none → ocata-3
Changed in cinder:
assignee: Erlon R. Cruz (sombrafam) → Eric Harney (eharney)
Eric Harney (eharney)
Changed in cinder:
assignee: Eric Harney (eharney) → Erlon R. Cruz (sombrafam)
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to cinder (master)

Reviewed: https://review.openstack.org/147186
Committed: https://git.openstack.org/cgit/openstack/cinder/commit/?id=2d77a7a87d625f47deab4955298dad9d21a93f26
Submitter: Jenkins
Branch: master

commit 2d77a7a87d625f47deab4955298dad9d21a93f26
Author: Eric Harney <email address hidden>
Date: Mon Dec 15 18:01:50 2014 -0500

    NFS snapshots

    This patch adds support for snapshots to the NFS driver.

    This functionality is only enabled if
    "nfs_snapshot_support" is set to True in cinder.conf
    and nas_secure_file_operations is disabled.

    This is because compute nodes running libvirt <1.2.7 will
    encounter problems with snapshot deletion, which includes
    Ubuntu 14.04 and requires write access to the volumes
    created by a different user. Therefore, deployers must
    opt-in to this functionality if their environment is known
    to support it.

    Due libvirt limitations[1], apparmor must be disabled in the
    compute nodes or the volume export location be added to
    libvirt's default profile template[3].

    Clonning volumes is only supported if the source volume
    is not attached.

    [1] https://bugzilla.redhat.com/show_bug.cgi?id=1361592
    [2] http://paste.openstack.org/show/570296/
    [3] http://paste.openstack.org/show/570297/

    Co-Authored-By: Ankit Agrawal <email address hidden>
    Co-Authored-By: Jay S. Bryant <email address hidden>
    Co-Authored-By: Erlon R. Cruz <email address hidden>
    Implements: blueprint nfs-snapshots

    DocImpact: A new parameter is added and the clonning
    limitation must be documented.

    Closes-bug: #1614249
    Change-Id: Iae35c722eb4b6b7d02a95690abbc07a63da77ce7

Changed in cinder:
status: In Progress → Fix Released
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix included in openstack/cinder 10.0.0.0b3

This issue was fixed in the openstack/cinder 10.0.0.0b3 development milestone.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.