[PATCH] qemuDomainChangeDiskLive: Modify 'startupPolicy' before changing source

Peter Krempa pkrempa at redhat.com
Mon Sep 13 11:55:34 UTC 2021


On Mon, Sep 13, 2021 at 14:30:45 +0300, Nir Soffer wrote:
> On Mon, Sep 13, 2021 at 11:04 AM Peter Krempa <pkrempa at redhat.com> wrote:
> >
> > On Fri, Sep 10, 2021 at 22:04:01 +0300, Nir Soffer wrote:
> > > On Fri, Sep 10, 2021 at 4:35 PM Peter Krempa <pkrempa at redhat.com> wrote:

[...]

> > > Do we have a way to switch from file to block with current libvirt
> > > (centos 8 stream, rhel 8.4) without this patch, or do we need to wait
> > > until this fix is available? (rhel 8.5?)
> >
> > You can issue two separate update calls. One updating the startup policy
> > first and then the second one updating the source.
> 
> If the second call fails, this leave us with half of the change.

Based on what you write below, where you state that you actually make
sure that the image exists it seems that it should not be a problem at
all.

Specifically just removing startupPolicy has no guest visible change so
it's allowed on migration and other cases.

Just removing it from an empty drive has no effect other than recording
it in the libvirt metadata.

Removing it from a full cdrom could have semantic effects on migration
but they are removed by oVirt actually checking before. Same for start
of a new VM where you always re-define the XML anyways.

> > On another note, I don't quite understand though why oVirt actually even
> > uses startup policy in the first place. Since oVirt is already doing a
> > pretty complicated storage management, checking whether the image file
> > exists is a trivial operation.
> 
> In oVirt we know that the image exists since we prepare it before
> starting the VM
> (e.g. activate logical volume), and we will fail the operation if the
> disk does not
> exists, so I think this attribute is not needed for our use case and
> it should be
> removed.
> 
> > Similarly, when migrating you can use the destination XML (which can be
> > optionally used with the migration API) allows you to update storage
> > source and even provide empty storage for a cdrom. This can be used to
> > update paths to storage too. This allows superior flexibility when
> > compared to startup policy.
> 
> Even if we remove startupPolicy in new oVirt version, we have to
> support migration
> from an older version using startupPolicy in the xml.

Speaking of live migration you can remove it from the destination XML,
since startup policy is exempt from the ABI stability check ... well
technically it's not even ABI.

The only case where it could be a problem is when upgrading existing
host as the running VMs would still have it.




More information about the libvir-list mailing list