Live migration of volume backed instances broken after upgrade to Juno
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Compute (nova) |
Fix Released
|
Critical
|
Dan Genin | ||
Juno |
Fix Released
|
Critical
|
Matthew Booth |
Bug Description
I'm running nova in a virtualenv with a checkout of stable/juno:
root@compute1:
stable/icehouse
* stable/juno
root@compute1:
54330ce33ee31bb
Since upgrading from icehouse, our iscsi backed instances are no longer able to live migrate, throwing exceptions like:
Traceback (most recent call last):
File "/opt/openstack
incoming.
File "/opt/openstack
return self._do_
File "/opt/openstack
result = getattr(endpoint, method)(ctxt, **new_args)
File "/opt/openstack
payload)
File "/opt/openstack
six.
File "/opt/openstack
return f(self, context, *args, **kw)
File "/opt/openstack
kwargs[
File "/opt/openstack
six.
File "/opt/openstack
return function(self, context, *args, **kwargs)
File "/opt/openstack
dest_
File "/opt/openstack
raise exception.
InvalidSharedSt
Looking back through the code, given dest_check_data like this:
{u'disk_
In Icehouse the code to validate the request skipped this[0]:
elif not shared and (not is_volume_backed or has_local_disks):
In Juno, it matches this[1]:
if (dest_check_
not bool(jsonutils.
self.
In Juno at least, get_instance_
[{u'disk_size': 10737418240, u'type': u'raw', u'virt_disk_size': 10737418240, u'path': u'/dev/
I wonder if that was previously an empty return value in Icehouse, I'm unable to test right now, but if it returned the same then I'm not sure how it ever worked before.
This is a lab environment, the volume storage is an LVM+ISCSI cinder service. nova.conf and cinder.conf here[2]
[0]: https:/
[1]: https:/
[2]: https:/
Changed in nova: | |
status: | New → Confirmed |
importance: | Undecided → High |
tags: | added: juno-backport-potential |
Changed in nova: | |
importance: | High → Critical |
Changed in nova: | |
milestone: | none → kilo-1 |
status: | Fix Committed → Fix Released |
Changed in nova: | |
status: | Fix Committed → Fix Released |
Changed in nova: | |
milestone: | kilo-1 → 2015.1.0 |
tags: | added: live-migrate |
Ok, I rolled the whole thing back to icehouse, and confirmed that get_instance_ disk_info returns an empty list for a volume backed image, whereas in Juno it does not.