2016-09-21 19:07:01 |
Paul Carlton |
bug |
|
|
added bug |
2016-09-22 09:49:40 |
Paul Carlton |
nova: assignee |
|
Paul Carlton (paul-carlton2) |
|
2016-09-22 09:51:09 |
Paul Carlton |
nova: status |
New |
In Progress |
|
2016-09-22 17:05:00 |
Paul Carlton |
summary |
evacuate leaves instance on target compute node if it fails to spawn |
instance artefacts are not removed by libvirt driver if it fails to spawn |
|
2016-09-22 17:10:10 |
Paul Carlton |
description |
When an instance is evacuated an attempt to rebuild it on a different host is made. If the instance spawn method in the libvirt driver (probably true for other drivers too) fails and raises and exception then the instance is placed in an error state. However the instance is still recorded a being on the source node but depending on how far through the spawn instance related files will be present and the instance may be running on the target.
In the case where compute nodes do not use shared storage a subsequent attempt to evacuate the instance to the same target will fail because the instance directory is already present.
The use of reset-state and then evacuate to another node will enable the successful evacuation of the instance. However the 'orphaned' files and running instance on the original target will need to be cleaned up manually.
I'd recommend we update the instance's host once the claim is complete on the target. In this case in the event of a failure to spawn it will effectively have evacuated so the files on the original host will be cleaned up when that node is restored. |
When an instance is evacuated an attempt to rebuild it on a different host is made. If the instance spawn method in the driver fails and raises and exception then the instance is placed in an error state. However the instance is still recorded a being on the source node but depending on how far through the spawn instance related files will be present and the instance may be running on the target.
The xenAPI driver cleans up the instance artefact's if spawn fails but not
so the libvirt driver.
In the case where compute nodes do not use shared storage a subsequent attempt to evacuate the instance to the same target will fail because the instance directory is already present.
The use of reset-state and then evacuate to another node will enable the successful evacuation of the instance. However the 'orphaned' files and running instance on the original target will need to be cleaned up manually.
We could update the instance's host once the claim is complete on the target. In this case in the event of a failure to spawn it will effectively have evacuated so the files on the original host will be cleaned up when that node is restored.
However maybe we should address this by bring the libvirt driver into line
with the XenAPI driver and getting it to clean up resources associated with
an instance that fails to spawn? Will raise a blueprint for this. |
|
2016-09-23 10:06:39 |
Sylvain Bauza |
nova: status |
In Progress |
Opinion |
|
2016-09-23 17:02:21 |
OpenStack Infra |
nova: status |
Opinion |
In Progress |
|
2016-09-29 09:22:14 |
Sylvain Bauza |
nova: importance |
Undecided |
Low |
|
2016-09-29 09:23:09 |
Sylvain Bauza |
tags |
|
libvirt rebuild |
|
2016-10-17 10:19:11 |
Paul Carlton |
tags |
libvirt rebuild |
libvirt live-migration rebuild |
|
2016-10-17 10:20:17 |
Paul Carlton |
tags |
libvirt live-migration rebuild |
libvirt rebuild |
|
2018-09-25 09:34:33 |
OpenStack Infra |
nova: assignee |
Paul Carlton (paul-carlton2) |
Vladyslav Drok (vdrok) |
|