Some thoughts on enhancing High Availability in oVirt
Livnat Peer
lpeer at redhat.com
Wed Feb 15 11:12:44 UTC 2012
On 15/02/12 09:03, Ayal Baron wrote:
>
>
> ----- Original Message -----
>> On 02/15/2012 01:11 AM, Ayal Baron wrote:
>>>
>>>
>>> ----- Original Message -----
>>>>> I think we first need to look at the larger question of policy
>>>>> engine at
>>>>> ovirt-engine. the two main candidates are pacemaker and drools
>>>>> (jboss
>>>>> rules).
>>>>> pacemaker for having logic in the area.
>>>>> drools for having easier java integration and integrated UI to
>>>>> create
>>>>> policies by users.
>>>>
>>>> Agreed, as I mentioned in my email they're interrelated
>>>
>>> I'm not sure I agree.
>>> This entire thread assumes that the way to do this is to have the
>>> engine continuously monitor all services on all (HA) guests and
>>> according to varying policies reschedule VMs (services within
>>> VMs?)
>>> I don't think this is scalable (and wrt drools/pacemaker, assuming
>>> what Andrew says is correct, drools doesn't even remotely come
>>> close to supporting even relatively small scales)
>>>
>>> Engine should decide on policy, the hosts should enforce it.
>>> What this would translate to is a more distributed way of
>>> monitoring and moving around of VMs/services. E.g. for each
>>> service, engine would run the VM on host A and let host B know
>>> that it is the failover node for this service. Node B would be
>>> monitoring the heartbeats for the services it is in charge of and
>>> take over when needed. In case host B crashes, engine would choose
>>> a different host to be the failover node (note that there can be
>>> more than 2 nodes with a predefined order of priority).
>>
>> HA is a simple use case of policy.
>
> *Today* HA is simply 'if VM is down restart it' but what Perry was suggesting was to improve this to something more robust.
I think that the main concept of what Perry suggested (leaving the
implementation details aside :)) is to add HA of services.
I like this idea and I would like to extend it a little bit.
How about services that are spread on more than a single VM.
I would like to be able to define a service and specify which VM/s
provides this service and add HA flag on the service.
Then i would like to manage policies around it - I define a service
with 3 VMs providing this service and I want to have at least 2 VM
running it at any given time. (now the VMs are not highly available only
the service is.)
>
>> load balancing/power saving is something more continuous which
>> requires
>> constant global view of workload, could be schedule based, etc.
>
> power saving is a specific load balancing policy. Once policy changes (either manually or automatically) then it is engine's job to reshuffle the deck (move VMs around, designate new failover nodes, etc).
> There is no question that the engine should periodically get the state of all the VMs / services it is managing (where it is running etc), but HA decisions need to consider a lot more data and are of finer granularity than general VM placement (health check frequency, intra-vm services monitoring, etc).
>
>>
>>
>>>
>>>>
>>>> i.e. if you're going to use Pacemaker's policy engine then it
>>>> absolutely
>>>> makes sense to just go with Pacemaker Cloud, since that's
>>>> precisely
>>>> what
>>>> it does (uses the core Pacemaker PE)
>>>>
>>>> OTOH, if you decide to use drools, then it may make more sense to
>>>> integrate the HA concepts directly into the drools PE and then the
>>>> only
>>>> other thing you can leverage would be the library that does the
>>>> monitoring of services at the end points.
>>>> _______________________________________________
>>>> Arch mailing list
>>>> Arch at ovirt.org
>>>> http://lists.ovirt.org/mailman/listinfo/arch
>>>>
>>
>>
> _______________________________________________
> Arch mailing list
> Arch at ovirt.org
> http://lists.ovirt.org/mailman/listinfo/arch
More information about the Arch
mailing list