"nova evacuate" always fails if an instance has one or more iSCSI multipath cinder-volumes

Solution Verified - Updated -

Issue

  • "nova evacuate" always fails if an instance has one or more iSCSI multipath cinder-volumes.

    Sample log is below

    File "/usr/lib/python2.7/site-packages/nova/compute/manager.py", line 6391, in _error_out_instance_on_exception
      yield
    File "/usr/lib/python2.7/site-packages/nova/compute/manager.py", line 2700, in rebuild_instance
      bdms, recreate, on_shared_storage, preserve_ephemeral)
    File "/usr/lib/python2.7/site-packages/nova/compute/manager.py", line 2739, in _do_rebuild_instance_with_claim
      self._do_rebuild_instance(*args, **kwargs)
    File "/usr/lib/python2.7/site-packages/nova/compute/manager.py", line 2847, in _do_rebuild_instance
      self._rebuild_default_impl(**kwargs)
    File "/usr/lib/python2.7/site-packages/nova/compute/manager.py", line 2600, in _rebuild_default_impl
      detach_block_devices(context, bdms)
    File "/usr/lib/python2.7/site-packages/nova/compute/manager.py", line 2824, in detach_block_devices
      destroy_bdm=False)
    File "/usr/lib/python2.7/site-packages/nova/compute/manager.py", line 4734, in _detach_volume
      connection_info = self._driver_detach_volume(context, instance, bdm)
    File "/usr/lib/python2.7/site-packages/nova/compute/manager.py", line 4687, in _driver_detach_volume
      self.volume_api.roll_detaching(context, volume_id)
    File "/usr/lib/python2.7/site-packages/oslo_utils/excutils.py", line 204, in __exit__
      six.reraise(self.type_, self.value, self.tb)
    File "/usr/lib/python2.7/site-packages/nova/compute/manager.py", line 4675, in _driver_detach_volume
      encryption=encryption)
    File "/usr/lib/python2.7/site-packages/nova/virt/libvirt/driver.py", line 1272, in detach_volume
      self._disconnect_volume(connection_info, disk_dev)
    File "/usr/lib/python2.7/site-packages/nova/virt/libvirt/driver.py", line 1069, in _disconnect_volume
      driver.disconnect_volume(connection_info, disk_dev)
    File "/usr/lib/python2.7/site-packages/nova/virt/libvirt/volume/iscsi.py", line 93, in disconnect_volume
      self.connector.disconnect_volume(connection_info['data'], None)
    File "/usr/lib/python2.7/site-packages/oslo_concurrency/lockutils.py", line 254, in inner
      return f(*args, **kwargs)
    File "/usr/lib/python2.7/site-packages/os_brick/initiator/connector.py", line 565, in disconnect_volume
      raise exception.VolumeDeviceNotFound(device=host_devices)
    

Environment

  • Red Hat Openstack Platform (RHOSP) 7 and earlier
  • Red Hat Openstack Platform (RHOSP) 8 prior to openstack-nova-12.0.4-7.el7ost
  • openstack-nova
  • Any cinder backend

Subscriber exclusive content

A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.

Current Customers and Partners

Log in for full access

Log In

New to Red Hat?

Learn more about Red Hat subscriptions

Using a Red Hat product through a public cloud?

How to access this content