yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #82051
[Bug 1868996] Re: Unable to swap between RBD volumes using virDomainBlockRebase
Reviewed: https://review.opendev.org/696834
Committed: https://git.openstack.org/cgit/openstack/nova/commit/?id=fafbc182f9179c16b89c45d02544d4582e0a1194
Submitter: Zuul
Branch: master
commit fafbc182f9179c16b89c45d02544d4582e0a1194
Author: Lee Yarwood <lyarwood@xxxxxxxxxx>
Date: Sun Dec 1 16:32:47 2019 +0000
libvirt: Use virDomainBlockCopy to swap volumes when using -blockdev
Previously virDomainBlockRebase [1] was used by swap_volume to switch
between volumes presented to the compute host as block devices or files.
As outlined in the virDomainBlockCopy [2] documentation this command is
actually a superset of virDomainBlockRebase in our case:
> This command is a superset of the older virDomainBlockRebase() when used
> with the VIR_DOMAIN_BLOCK_REBASE_COPY flag, and offers better control
> over the destination format, the ability to copy to a destination that
> is not a local file, and the possibility of additional tuning
> parameters.
As such we can switch to virDomainBlockCopy and expand support for
swap_volume outside of just host block devices and files.
To allow swap_volume to support RBD volumes we also need the domain to
use the recently introduced -blockdev support within libvirt >= 6.0.0
and QEMU >= 4.2.0. New MIN_LIBVIRT_BLOCKDEV and MIN_QEMU_BLOCKDEV
version constants are introduced and used to determine when to switch to
the virDomainBlockCopy method of moving between volumes.
[1] https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainBlockRebase
[2] https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainBlockCopy
Closes-Bug: #1868996
Change-Id: I8e8035dcf508f5215bba9b7575c5c6abfe41da31
** 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/1868996
Title:
Unable to swap between RBD volumes using virDomainBlockRebase
Status in OpenStack Compute (nova):
Fix Released
Bug description:
Description
===========
$subject, the use of libvirt's virDomainBlockRebase API [1] currently
means that we can't swap between volumes that do not present a block
device or file on the compute host.
This is additionally blocked by the following conditional in Nova's
libvirt driver:
https://github.com/openstack/nova/blob/f454e1dec9580abf4605e071bdd678a40f492a49/nova/virt/libvirt/driver.py#L1854-L1865
This is however possible with the virDomainBlockCopy API [2] when the
domain is using the new -blockdev framework for detailing how disks
are attached to the guest.
[1] https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainBlockRebase
[2] https://libvirt.org/html/libvirt-libvirt-domain.html#virDomainBlockCopy
Steps to reproduce
==================
* Launch an instance with a RBD volume attached.
* Try to swap to another volume.
Expected result
===============
Success using virDomainBlockCopy.
Actual result
=============
Failure using virDomainBlockRebase as no block device or file is
presented to the compute host.
Environment
===========
1. Exact version of OpenStack you are running. See the following
list for all releases: http://docs.openstack.org/releases/
master
2. Which hypervisor did you use?
(For example: Libvirt + KVM, Libvirt + XEN, Hyper-V, PowerKVM, ...)
What's the version of that?
libvirt + QEMU/KVM
2. Which storage type did you use?
(For example: Ceph, LVM, GPFS, ...)
What's the version of that?
Ceph
3. Which networking type did you use?
(For example: nova-network, Neutron with OpenVSwitch, ...)
N/A
To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/1868996/+subscriptions
References