[Engine-devel] oVirt upstream meeting : VM Version

Livnat Peer lpeer at redhat.com
Sun Feb 5 08:45:36 UTC 2012


On 05/02/12 10:34, Yaniv Kaul wrote:
> ----- Original Message -----
>> On 03/02/12 17:00, Itamar Heim wrote:
>>> On 02/02/2012 12:15 PM, Ayal Baron wrote:
>>>>
>>>>
>>>> ----- Original Message -----
>>>>> On 02/02/2012 08:46 AM, Itamar Heim wrote:
>>>>>> On 02/02/2012 02:56 AM, Eli Mesika wrote:
>>>>>>> Hi
>>>>>>>
>>>>>>> We had discussed today the Stable Device Addresses feature
>>>>>>> One of the questions arose from the meeting (and actually
>>>>>>> defined
>>>>>>> as
>>>>>>> an open issue in the feature wiki) is:
>>>>>>> What happens to a 3.1 VM running on 3.1 Cluster when it is
>>>>>>> moved
>>>>>>> to a
>>>>>>> 3.0 cluster.
>>>>>>> We encountered that VM may lose some configuration data but
>>>>>>> also
>>>>>>> may
>>>>>>> be corrupted.
>>>>>>>  From that point we got to the conclusion that we have somehow
>>>>>>>  to
>>>>>>> maintain a VM Version that will allow us to
>>>>>
>>>>> What do you mean by VM version?
>>>>> Is that the guest hardware abstraction version (which is the kvm
>>>>> hypervisor release + the '-M' flag for compatibility)?
>>>>>
>>>>> I think its the above + the meta data /devices you keep for it.
>>>>
>>>> Correct.
>>>> There are several issues here:
>>>> 1. you loose the stable device addresses (no point in keeping the
>>>> data
>>>> in the db as the next time the VM is run the devices can get
>>>> different
>>>> addresses)
>>>> 2. If you move the VM to an older cluster where the hosts don't
>>>> support the VM's compatibility mode (-M) then the VM would be
>>>> started
>>>> with different virtual hardware which might cause problems
>>>> 3. Once we support s4 then running the VM again with different
>>>> hardware might be even more problematic than just running it from
>>>> shutdown (e.g. once we have a balloon device with memory assigned
>>>> to
>>>> it which suddenly disappears, what would happen to the VM?)
>>>> 4. Same applies for migrate to file, but this can be dealt with by
>>>> not
>>>> allowing to move a VM between incompatible clusters in case it has
>>>> a
>>>> migrate to file state (or delete the file).
>>>
>>> same would apply for a direct lun on the vm, custom properties
>>> defined
>>> to it, multiple monitors for spice for linux guests, etc.
>>> I think we should add validations for things we know are not
>>> supported,
>>> but otherwise allow it.
>>>
>>
>> IIUC you suggest to use features granularity for setting on which
>> cluster (version) the VM can be started. Note that *all* VMs that
>> were
>> started on a 3.1 cluster will loose functionality when running on 3.0
>> cluster (stable device addressed will be lost).
>>
>> I would go with a simple approach here.
>> Derive the VM version from the cluster version, VM can be executed on
>> all hosts in the cluster without loosing any functionality, when we
>> change the VM cluster we practically change the VM version.
>> I would require a force flag to execute the VM on a lower cluster
>> version.
> 
> Isn't the VM version derived from the version of the cluster on which it was last edited?
> For example: you've created a VM on a cluster v3.0. When it is running on a v3.2 cluster, is there any reason to change its version?
> When it is edited, then perhaps yes - because it may have changed/added properties/features that are only applicable to v3.2.
> But until then - let it stay in the same version as it was created.
> (btw, how does this map, if at all, to the '-m' qemu command line switch?)
> Y.
> 

Currently we do not persist the VM version at all, it is derived from
the cluster version the VM belongs to (that's why I suggested to save it
as part of the OVF so we can be aware of the VM version when
exporting/importing a VM etc.).

The VM does not have to be edited to be influenced by the cluster
version. For example if you start a VM on 3.1 cluster you get the stable
device address feature with no manual editing.

Livnat

>>
>> What we are missing today is saving this version as part of the OVF
>> to
>> support version compatibility functionality during import/export VM
>> flows and snapshots of VM configuration.
>>
>>>> A side note - I'm not sure if exporting a VM also exports the
>>>> state
>>>> file after migrate to file? if not then probably it should...
>>>>
>>>> I'm sure there are additional scenarios we're not thinking of.
>>> _______________________________________________
>>> Engine-devel mailing list
>>> Engine-devel at ovirt.org
>>> http://lists.ovirt.org/mailman/listinfo/engine-devel
>>
>> _______________________________________________
>> Engine-devel mailing list
>> Engine-devel at ovirt.org
>> http://lists.ovirt.org/mailman/listinfo/engine-devel
>>




More information about the Engine-devel mailing list