[ovirt-devel] Feature review: Cluster parameters override

Itamar Heim iheim at redhat.com
Thu Dec 18 12:15:46 UTC 2014

On 12/18/2014 01:50 PM, Michal Skrivanek wrote:
> On Dec 18, 2014, at 12:34 , Itamar Heim <iheim at redhat.com> wrote:
>> On 12/18/2014 01:24 PM, Michal Skrivanek wrote:
>>> On Dec 18, 2014, at 11:54 , Itamar Heim <iheim at redhat.com> wrote:
>>>> On 12/18/2014 12:52 PM, Michal Skrivanek wrote:
>>>>>> - not clear if the "emulation levels" to user are based on compat levels (3.3, 3.4, 3.5, 3.6, etc.), or the actual string (-m rhel6.5, -m rhel7.1,e tc.)
>>>>>>> looking at the bugs, seems i had an opinion on this 2 years ago[1]
>>>>> the actual string of machine type. The changes for compat level are more complex than machine type. Also, only the machine type "guarantees" the hw stays the same.
>>>>> we can look at the compat level further, but so far the machine type is the only thing defining the supported features. From the scheduler perspective it seems to me it's better to create two clusters. Cluster is supposed to define the supported features.
>>>>> Is anything not covered?
>>>> how do you know which of the more advanced features in your current cluster level were not tested with the lower emulation level?
>>> well, you don't, and it's likely it wasn't. It never is tested on any other than the latest machine type (with exception of 3.6 on rhel 7 and 6.6)….we can warn on "anything else than the latest from 6.x and 7.x" .
>>>> also, why expose an internal arbitrary string to the user, which they have no way to understand/know what it means?
>>> assuming cluster as the definition of same features - because it is the only thing which have some meaning.
>>> For 3.5 cluster level you can define the hw. it's tested on 6.6 and 7.0 machine types. When you want to override later you can use any of these two without a warning; and everything else will warn. You can go lower (and potentially miss the features), you can go higher (say, 6.7 and 7.1 machine types) - then we should warn.
>> we never tested 3.5 on rhel7 machine type.
> sorry, right, only 6.6
>> we shouldn't let user create a situation we never tested for, hence we should limit to the cluster levels, with their implied emulation levels and set of supported features for that cluster level (derived from vm compatibility level)
> if warning is enough then let's do that. Or you think we should enforce blocking…we always end up relaxing hard constraints afterwards..so IMHO warning is enough
> currently, the only tested machine type is the one from the list per cluster level.
> for the upgrade flow…I may have misunderstood. So my thinking is:
> - 3.5 cluster level with 6.6 machine type
> - upgrade just the machine type to 7.x . This will include the warning that it wasn't tested
> - once everything ok you can change the cluster level to 3.6. (an option to change all the VMs to cluster's default might be helpful…just so I don't have to go one by one and remove the override)

my thinking is the VM has a "cluster compatibility level" field.
its the "reverse" from dc/cluster.
you can't upgrade the vm compat level until the cluster was upgraded.
you also can't upgrade the cluster compat level if there are VMs with 
unsupported modes (a 4.0 cluster will not support say a vm with 3.5 
compat level).

flow is:
- all VMs start with "VM Compat level: Cluster Default"
- you upgrade the cluster to 3.6, and either choose all VMs to be 
upgraded (no change) or to "keep current compat level", in which case 
all VMs.CompatLevel will be changed to 3.5.

More information about the Devel mailing list