yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #58784
[Bug 1605720] Re: backing store missing for ephemeral disk on cold migration
Reviewed: https://review.openstack.org/346263
Committed: https://git.openstack.org/cgit/openstack/nova/commit/?id=d7b831e38cbc029b7975d1059ed212762a5f6a5e
Submitter: Jenkins
Branch: master
commit d7b831e38cbc029b7975d1059ed212762a5f6a5e
Author: Chris Friesen <chris.friesen@xxxxxxxxxxxxx>
Date: Fri Jul 22 16:33:43 2016 -0600
Fix cold migration with qcow2 ephemeral disks
If we have qcow2 ephemeral disks we need to ensure that the
backing file gets created on a cold migration.
This requires passing in the block_device_info when calling
_create_image() so that we can loop over the ephemeral disks.
Closes-Bug: #1605720
Co-Authored-By: Feodor Tersin <ftersin@xxxxxxxxxxx>
Change-Id: Ie278bb10e1675ba1d903aaa3c0249be0d1cf147b
** Changed in: nova
Status: In Progress => Fix Released
--
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Compute (nova).
https://bugs.launchpad.net/bugs/1605720
Title:
backing store missing for ephemeral disk on cold migration
Status in OpenStack Compute (nova):
Fix Released
Bug description:
I'm on stable/mitaka, but the master code looks similar.
I have compute nodes configured to use qcow2 and libvirt. The flavor
has an ephemeral disk and a swap disk, with root disk size of "0" for
auto-size. I boot an instance with this flavor.
When I try to cold-migrate the instance, I get an error:
2016-07-21 23:33:48.561 46340 ERROR nova.compute.manager [instance: 4e52bfd8-0c71-48dc-89fb-6f6b31dc06bb] libvirtError: Cannot access backing file '/etc/nova/instances/_base/ephemeral_1_0706d66' of storage file '/etc/nova/instances/4e52bfd8-0c71-48dc-89fb-6f6b31dc06bb/disk.eph0' (as uid:0, gid:0): No such file or directory
The problem seems to be that in
nova.virt.libvirt.driver.LibvirtDriver.finish_migration() we call
self._create_image(...block_device_info=None...)
Down in _create_image() we handle the case of a "disk.local" ephemeral
device, but that doesn't help because the device is actually named
"disk.eph0". It looks like we then try to loop over any ephemerals
in block_device_info, but that's None so we don't handle any of those
(which is too bad since it looks like they would be named correctly).
The end result is that we have a qcow2 "disk.eph0" image, but with
potentially no backing store in <instances_path>/_base. When we tell
libvirt to start the instance, this results in the above error.
To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/1605720/+subscriptions
References