revert resize removes rbd shared image
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Compute (nova) |
Fix Released
|
High
|
Nicolas Simonds |
Bug Description
We run multi-host nova-compute with
libvirt_
libvirt_
Resize-confirm function works just fine.
Resize-revert removes shared rbd for both instances image during reverting.
Options nova.conf i've tried to change with no luck :
allow_resize_
resize_
block_migration
live_migration_
Errors you can find at the bottom of the page.
1. first error was fixed by adding image_cache_
2. 2nd error still active.
During revert process for both types of migration there is driver.destroy() at destination that removes original image from rbd storage.
https:/
_____________
def revert_resize(self, context, instance, migration, reservations):
...
...
_____________
that calls
https:/
_____________
def destroy(self, context, instance, network_info, block_device_
self.
self.
_____________
that calls
https:/
_____________
def cleanup(self, context, instance, network_info, block_device_
....
if destroy_disks:
if CONF.libvirt.
....
_____________
revert_resize runs destroy function without destory_disk variable which makes cleanup function to delete SHARED image.
Here is approximate solution (not a developer)
https:/
change from :
_____________
self.driver.
_____________
to:
_____________
destroy_disks = not (self._
_____________
ERROR1#
<179>Apr 28 14:14:00 [compute] node-39 <U+FEFF>
nova/instances/
Traceback (most recent call last):
File "/usr/lib/
read_
File "/usr/lib/
raise make_ex(ret, 'error opening image %s at snapshot %s' % (name, snapshot))
ImageNotFound: error opening image /var/lib/
<179>Apr 28 14:14:00 [compute] node-39 <U+FEFF>
Traceback (most recent call last):
File "/usr/lib/
disk_info, image)
File "/usr/lib/
block_
File "/usr/lib/
block_
File "/usr/lib/
project_
File "/usr/lib/
*args, **kwargs)
File "/usr/lib/
self.
File "/usr/lib/
base_size = self.get_
File "/usr/lib/
with RBDVolumeProxy(
File "/usr/lib/
read_
File "/usr/lib/
raise make_ex(ret, 'error opening image %s at snapshot %s' % (name, snapshot))
ERROR2#
<179>Apr 29 08:34:13 [compute] node-39 <U+FEFF>
h a defined domain with xml ...
<179>Apr 29 08:34:13 [compute] node-39 <U+FEFF>
Traceback (most recent call last):
File "/usr/lib/
yield
File "/usr/lib/
block_
File "/usr/lib/
block_
File "/usr/lib/
domain = self._create_
File "/usr/lib/
domain.
File "/usr/lib/
domain.
File "/usr/lib/
result = proxy_call(
File "/usr/lib/
rv = execute(
File "/usr/lib/
rv = meth(*args,
File "/usr/lib/
if ret == -1: raise libvirtError ('virDomainCrea
libvirtError: internal error process exited while connecting to monitor: char device redirected to /dev/pts/4
kvm: -drive file=rbd:.... hiden... No such file or directory
#######
description: | updated |
description: | updated |
tags: | added: libvirt |
Changed in nova: | |
status: | New → Triaged |
importance: | Undecided → High |
Changed in nova: | |
status: | Triaged → In Progress |
Changed in nova: | |
milestone: | none → juno-2 |
status: | Fix Committed → Fix Released |
Changed in nova: | |
milestone: | juno-2 → none |
Changed in nova: | |
assignee: | nobody → Dan Smith (danms) |
status: | Confirmed → In Progress |
Changed in nova: | |
assignee: | Dan Smith (danms) → Nicolas Simonds (nicolas.simonds) |
tags: | added: ceph |
This is related to: /bugs.launchpad .net/nova/ +bug/1250751
https:/
A fix that should address both problems is proposed here: /review. openstack. org/91722
https:/