If we set the back up ends to NFS,then we could use a path which have symbolic link path as NFS server path.cinder can't mount a path including symbolic link in backup nor recovery.
Here is my NFS config, vi /etc/exports
/slink/NfsVolumeStorage *(rw,sync,no_root_squash,subtree_check)
Here is the real path , exportfs -u
/NfsVolumeStorage
If we use backup_share = 192.168.2.207:/slink/NfsVolumeStorage,then it would be wrong.
The log is below:
2017-01-16 01:45:41.138 27648 INFO cinder.backup.manager [req-d230d05c-28c7-43fb-8850-e99c2f52db43 6f840773ce774fb7802b6b25a34f341e 0005b874180744a7b577856b6c00b34c - default default] Delete backup started, backup: 2adec860-bc06-4da4-9989-048496114fae.
2017-01-16 01:45:41.325 27648 ERROR oslo_messaging.rpc.server [req-d230d05c-28c7-43fb-8850-e99c2f52db43 6f840773ce774fb7802b6b25a34f341e 0005b874180744a7b577856b6c00b34c - default default] Exception during message handling
2017-01-16 01:45:41.325 27648 ERROR oslo_messaging.rpc.server Traceback (most recent call last):
2017-01-16 01:45:41.325 27648 ERROR oslo_messaging.rpc.server File "/usr/lib/python2.7/site-packages/oslo_messaging/rpc/server.py", line 133, in _process_incoming
2017-01-16 01:45:41.325 27648 ERROR oslo_messaging.rpc.server res = self.dispatcher.dispatch(message)
2017-01-16 01:45:41.325 27648 ERROR oslo_messaging.rpc.server File "/usr/lib/python2.7/site-packages/oslo_messaging/rpc/dispatcher.py", line 150, in dispatch
2017-01-16 01:45:41.325 27648 ERROR oslo_messaging.rpc.server return self._do_dispatch(endpoint, method, ctxt, args)
2017-01-16 01:45:41.325 27648 ERROR oslo_messaging.rpc.server File "/usr/lib/python2.7/site-packages/oslo_messaging/rpc/dispatcher.py", line 121, in _do_dispatch
2017-01-16 01:45:41.325 27648 ERROR oslo_messaging.rpc.server result = func(ctxt, **new_args)
2017-01-16 01:45:41.325 27648 ERROR oslo_messaging.rpc.server File "/usr/lib/python2.7/site-packages/cinder/backup/manager.py", line 594, in delete_backup
2017-01-16 01:45:41.325 27648 ERROR oslo_messaging.rpc.server self._update_backup_error(backup, six.text_type(err))
2017-01-16 01:45:41.325 27648 ERROR oslo_messaging.rpc.server File "/usr/lib/python2.7/site-packages/oslo_utils/excutils.py", line 220, in __exit__
2017-01-16 01:45:41.325 27648 ERROR oslo_messaging.rpc.server self.force_reraise()
2017-01-16 01:45:41.325 27648 ERROR oslo_messaging.rpc.server File "/usr/lib/python2.7/site-packages/oslo_utils/excutils.py", line 196, in force_reraise
2017-01-16 01:45:41.325 27648 ERROR oslo_messaging.rpc.server six.reraise(self.type_, self.value, self.tb)
2017-01-16 01:45:41.325 27648 ERROR oslo_messaging.rpc.server File "/usr/lib/python2.7/site-packages/cinder/backup/manager.py", line 590, in delete_backup
2017-01-16 01:45:41.325 27648 ERROR oslo_messaging.rpc.server backup_service = self.service.get_backup_driver(context)
2017-01-16 01:45:41.325 27648 ERROR oslo_messaging.rpc.server File "/usr/lib/python2.7/site-packages/cinder/backup/drivers/nfs.py", line 82, in get_backup_driver
2017-01-16 01:45:41.325 27648 ERROR oslo_messaging.rpc.server return NFSBackupDriver(context)
2017-01-16 01:45:41.325 27648 ERROR oslo_messaging.rpc.server File "/usr/lib/python2.7/site-packages/cinder/backup/drivers/nfs.py", line 57, in __init__
2017-01-16 01:45:41.325 27648 ERROR oslo_messaging.rpc.server backup_path = self._init_backup_repo_path()
2017-01-16 01:45:41.325 27648 ERROR oslo_messaging.rpc.server File "/usr/lib/python2.7/site-packages/cinder/backup/drivers/nfs.py", line 77, in _init_backup_repo_path
2017-01-16 01:45:41.325 27648 ERROR oslo_messaging.rpc.server remotefsclient.mount(self.backup_share)
2017-01-16 01:45:41.325 27648 ERROR oslo_messaging.rpc.server File "/usr/lib/python2.7/site-packages/os_brick/remotefs/remotefs.py", line 107, in mount
2017-01-16 01:45:41.325 27648 ERROR oslo_messaging.rpc.server self._mount_nfs(share, mount_path, flags)
2017-01-16 01:45:41.325 27648 ERROR oslo_messaging.rpc.server File "/usr/lib/python2.7/site-packages/os_brick/remotefs/remotefs.py", line 147, in _mount_nfs
2017-01-16 01:45:41.325 27648 ERROR oslo_messaging.rpc.server 'error': mnt_errors})
2017-01-16 01:45:41.325 27648 ERROR oslo_messaging.rpc.server BrickException: NFS mount failed for share 192.168.2.207:/slink/NfsVolumeStorage. Error - {'pnfs': u"Unexpected error while running command.\nCommand: mount -t nfs -o vers=4,minorversion=1 192.168.2.207:/slink/NfsVolumeStorage /rhome/08fb67895aa79188d7881d76293f4a0d\nExit code: 32\nStdout: u''\nStderr: u'mount.nfs: mounting 192.168.2.207:/slink/NfsVolumeStorage failed, reason given by server: No such file or directory\\n'", 'nfs': u"Unexpected error while running command.\nCommand: mount -t nfs -o {} 192.168.2.207:/slink/NfsVolumeStorage /rhome/08fb67895aa79188d7881d76293f4a0d\nExit code: 32\nStdout: u''\nStderr: u'mount.nfs: an incorrect mount option was specified\\n'"}
2017-01-16 01:45:41.325 27648 ERROR oslo_messaging.rpc.server
The actual error seems to be in the parameters passed to mount.nfs, not the fact that a symlink is involved:
Unexpected error while running command.\nCommand: mount -t nfs -o {}
Can you include the cinder.conf relevant to your NFS backend?