Revert resize does not delete instance directory with Ceph
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Compute (nova) |
In Progress
|
Undecided
|
Feodor Tersin |
Bug Description
Resize revertion leaves instance directory on the second host with Ceph image backend. As the result the second attempt to resize the instance to the same host fails with n-cpu.log:
Traceback (most recent call last):
File "/opt/stack/
disk_info, image_meta)
File "/opt/stack/
old_
File "/usr/lib/
self.
File "/usr/lib/
six.
File "/opt/stack/
block_
File "/opt/stack/
self.
File "/opt/stack/
libvirt_
File "/opt/stack/
return open(*args, **kwargs)
IOError: [Errno 13] Permission denied: '/opt/stack/
$ ll ~/data/
total 24
-rw-rw-r--. 1 qemu qemu 19342 Oct 7 21:23 console.log
-rw-rw-r--. 1 stack libvirtd 2762 Oct 7 21:22 libvirt.xml
Steps to reproduce:
1 Run 2-nodes devstack with Ceph image backend
2 Run an instance
$ nova boot --image cirros-
3 Disable the instance host
$ nova service-disable 172.16.1.10 nova-compute
4 Resize the instance to another host
$ nova migrate inst-1
5 Revert resize
$ nova resize-revert inst-1
6 Resize the instance again
$ nova migrate inst-1
7 Check the instance state
Actual result - the instance is in error state.
Expected result - the instance is in verify_resize state.
Check n-cpu.log on the second node, where the instance was migrated.
This has been reproduced on master
commit 9c89e07d17b5eb4
Merge: 870a77f 453e71d
Author: Jenkins <email address hidden>
Date: Wed Oct 5 01:35:48 2016 +0000
description: | updated |
Changed in nova: | |
assignee: | nobody → Feodor Tersin (ftersin) |
compute manater revert_resize calls driver.destroy on a target host with destroy_disks=False (due to shared block storage flag of Ceph image backend), because that driver.destroy does not instance directory. driver.destroy could delete it with appropriate migrate_data, but no such data exists for revert_resize operation.