[Libvirt]Evacuate fail may cause disk image be deleted
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Compute (nova) |
Fix Released
|
Medium
|
Lee Yarwood | ||
Queens |
Fix Released
|
Medium
|
Lee Yarwood | ||
Rocky |
Fix Released
|
Medium
|
Lee Yarwood | ||
Stein |
Fix Released
|
Medium
|
Lee Yarwood | ||
Train |
Fix Released
|
Medium
|
Lee Yarwood | ||
Ussuri |
Fix Released
|
Medium
|
Lee Yarwood |
Bug Description
I checked latest source of nova on master branch, this problem is still exists.
When we are doing evacuate, eventually _do_rebuild_
As rebuild is not implemented in libvirt driver, in fact _rebuild_
try:
with instance.
except NotImplementedE
# NOTE(rpodolyaka): driver doesn't provide specialized version
# of rebuild, fall back to the default implementation
_rebuild_
when VirtualInterfac
except exception.
# Neutron reported failure and we didn't swallow it, so
# bail here
with excutils.
if guest:
except eventlet.
# We never heard from Neutron
if CONF.vif_
if guest:
Because default value for parameter destroy_disks is True
def cleanup(self, context, instance, network_info, block_device_
So if error occur when doing evacuate during wait neutron's event, instance's disk file will be deleted unexpectedly
Changed in nova: | |
assignee: | nobody → leehom (feli5) |
tags: | added: evacuate libvirt rebuild |
Changed in nova: | |
status: | New → Triaged |
importance: | Undecided → Medium |
Changed in nova: | |
assignee: | Matt Riedemann (mriedem) → nobody |
status: | In Progress → New |
Changed in nova: | |
assignee: | Matthew Booth (mbooth-9) → Lee Yarwood (lyarwood) |
Are you using shared storage or local disks? In the case of evacuate/rebuild, we're completely rebuilding the instance from the old image ref, flavor, network information and attached volumes (if any). So I'm not sure there is any guarantee (or point) that if nova fails to spawn the rebuilt instance it should keep the disk it created as part of the rebuild.