For unknown reason the Infinidat Cinder driver prevent to backup attached volume.
This makes it impossible to backup for most use cases.
Steps to reproduce:
* Install an OpenStack environment: Queens or newer version
* Configure Infinidat iSCSI or FC backend
* Create a volume
* Boot a VM instance
* Attach the volume to the VM instance
* Try to backup the attached volume
Expected results:
Success
Actual results:
Traceback (most recent call last):
File "/usr/local/lib/python3.8/dist-packages/oslo_messaging/rpc/server.py", line 165, in _pro
cess_incoming
res = self.dispatcher.dispatch(message)
File "/usr/local/lib/python3.8/dist-packages/oslo_messaging/rpc/dispatcher.py", line 309, in
dispatch
return self._do_dispatch(endpoint, method, ctxt, args)
File "/usr/local/lib/python3.8/dist-packages/oslo_messaging/rpc/dispatcher.py", line 229, in
_do_dispatch
result = func(ctxt, **new_args)
File "/opt/stack/cinder/cinder/volume/manager.py", line 4745, in get_backup_device
self.driver.get_backup_device(ctxt, backup))
File "/opt/stack/cinder/cinder/volume/driver.py", line 1194, in get_backup_device
backup_device = self._get_backup_volume_temp_volume(
File "/opt/stack/cinder/cinder/volume/driver.py", line 1236, in _get_backup_volume_temp_volume
temp_vol_ref = self._create_temp_cloned_volume(
File "/opt/stack/cinder/cinder/volume/driver.py", line 1348, in _create_temp_cloned_volume
temp_vol_ref.destroy()
File "/usr/local/lib/python3.8/dist-packages/oslo_utils/excutils.py", line 227, in __exit__
self.force_reraise()
File "/usr/local/lib/python3.8/dist-packages/oslo_utils/excutils.py", line 200, in force_reraise
raise self.value
File "/opt/stack/cinder/cinder/volume/driver.py", line 1343, in _create_temp_cloned_volume
model_update = self.create_cloned_volume(temp_vol_ref, volume)
File "/opt/stack/cinder/cinder/volume/drivers/infinidat.py", line 96, in wrapper
return func(*args, **kwargs)
File "/opt/stack/cinder/cinder/volume/drivers/infinidat.py", line 727, in create_cloned_volume
self._asssert_volume_not_mapped(src_vref)
File "/opt/stack/cinder/cinder/volume/drivers/infinidat.py", line 713, in _asssert_volume_not_mapped
raise exception.VolumeBackendAPIException(data=msg)
cinder.exception.VolumeBackendAPIException: Bad or unexpected response from the storage volume backend API: INFINIDAT Cinder driver does not support clone of an attached volume. To get this done, create a snapshot from the attached volume and then create a volume from the snapshot.
For unknown reason the Infinidat Cinder driver prevent to backup attached volume.
This makes it impossible to backup for most use cases.
Steps to reproduce:
* Install an OpenStack environment: Queens or newer version
* Configure Infinidat iSCSI or FC backend
* Create a volume
* Boot a VM instance
* Attach the volume to the VM instance
* Try to backup the attached volume
Expected results:
Success
Actual results: lib/python3. 8/dist- packages/ oslo_messaging/ rpc/server. py", line 165, in _pro .dispatch( message) lib/python3. 8/dist- packages/ oslo_messaging/ rpc/dispatcher. py", line 309, in dispatch( endpoint, method, ctxt, args) lib/python3. 8/dist- packages/ oslo_messaging/ rpc/dispatcher. py", line 229, in cinder/ cinder/ volume/ manager. py", line 4745, in get_backup_device driver. get_backup_ device( ctxt, backup)) cinder/ cinder/ volume/ driver. py", line 1194, in get_backup_device backup_ volume_ temp_volume( cinder/ cinder/ volume/ driver. py", line 1236, in _get_backup_ volume_ temp_volume temp_cloned_ volume( cinder/ cinder/ volume/ driver. py", line 1348, in _create_ temp_cloned_ volume vol_ref. destroy( ) lib/python3. 8/dist- packages/ oslo_utils/ excutils. py", line 227, in __exit__ force_reraise( ) lib/python3. 8/dist- packages/ oslo_utils/ excutils. py", line 200, in force_reraise cinder/ cinder/ volume/ driver. py", line 1343, in _create_ temp_cloned_ volume cloned_ volume( temp_vol_ ref, volume) cinder/ cinder/ volume/ drivers/ infinidat. py", line 96, in wrapper cinder/ cinder/ volume/ drivers/ infinidat. py", line 727, in create_ cloned_ volume _asssert_ volume_ not_mapped( src_vref) cinder/ cinder/ volume/ drivers/ infinidat. py", line 713, in _asssert_ volume_ not_mapped VolumeBackendAP IException( data=msg) exception. VolumeBackendAP IException: Bad or unexpected response from the storage volume backend API: INFINIDAT Cinder driver does not support clone of an attached volume. To get this done, create a snapshot from the attached volume and then create a volume from the snapshot.
Traceback (most recent call last):
File "/usr/local/
cess_incoming
res = self.dispatcher
File "/usr/local/
dispatch
return self._do_
File "/usr/local/
_do_dispatch
result = func(ctxt, **new_args)
File "/opt/stack/
self.
File "/opt/stack/
backup_device = self._get_
File "/opt/stack/
temp_vol_ref = self._create_
File "/opt/stack/
temp_
File "/usr/local/
self.
File "/usr/local/
raise self.value
File "/opt/stack/
model_update = self.create_
File "/opt/stack/
return func(*args, **kwargs)
File "/opt/stack/
self.
File "/opt/stack/
raise exception.
cinder.