[libvirt] [PATCH v2 06/11] conf: Add VM Generation ID parse/format support
Daniel P. Berrangé
berrange at redhat.com
Wed Apr 25 12:25:57 UTC 2018
On Wed, Apr 25, 2018 at 08:02:35AM -0400, John Ferlan wrote:
>
>
> On 04/25/2018 04:46 AM, Peter Krempa wrote:
> > On Wed, Apr 25, 2018 at 09:39:49 +0100, Daniel Berrange wrote:
> >> On Wed, Apr 25, 2018 at 10:32:05AM +0200, Peter Krempa wrote:
> >>>
> >>> Well, that depends. I did not read the docs for this thoroughly enough.
> >>> If it is okay for us to generate a new GUID upon every boot of a VM then
> >>> this will be for a rather simple implementation, since we have a very
> >>> limited set of situations when we are starting a new qemu process which
> >>> should NOT change the GUID and we will change it in all other scenarios.
> >>
> >> AFAIK, we *must* change GUID on every cold boot
> >
> > Good, that makes things rather simple.
> >
>
> This one is not really 100% clear to me. The "spec" is like 6 pages -
> it's a pretty quick read...
>
> http://go.microsoft.com/fwlink/?LinkId=260709
>
> The last 2 pages describe "when" the GUID should change and specifically
> calling out cold boot is not one of those. What leads me to believe
> otherwise is the two boot scenarios and the unspecified VM config
> changes have this "undertone" that using the same GUID for those
> scenarios is fine/expected.
Yeah the table at the very end is the key bit and it seems I was actually
wrong
Scenario GenID changed
-----------------------------------------------------------------------
Virtual machine is paused or resumed No
Virtual machine reboots No
Virtual machine host reboots No
Virtual machine starts executing a snapshot Yes
Virtual machine is recovered from backup Yes
Virtual machine is failed over in a disaster recovery env Yes
Virtual machine is live migrated No
Virtual machine is imported, copied, or cloned Yes
Virtual machine is failed over in a clustered environment No
Virtual machine's configuration changes Unspecified
My reading of "Virtual machine reboots" and "Virtual machine host reboots"
rows in particular is that we can *NOT* change GUID on every boot up
operation. The spec literally only wants it to be changed when there is
the possibility that the VM is potentially re-executing something that
has already been executed before.
The transient VM feature is the real killer for libvirt - we have no
way of knowing when virDomainCreateXML launches a transient VM whether
that is starting up after a revert to backup/snapshot, or whether it
is a normal boot. Only the mgmt app like oVirt / OpenStack has enough
info to decide that. So we must allow the mgmt app to provide a GUID
in the XML document themselves, and then change it in places where we
know it is needed to change.
Regards,
Daniel
--
|: https://berrange.com -o- https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org -o- https://fstop138.berrange.com :|
|: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
More information about the libvir-list
mailing list