Some thoughts on enhancing High Availability in oVirt
Adam Litke
agl at us.ibm.com
Tue Feb 14 16:31:11 UTC 2012
On Thu, Feb 09, 2012 at 11:45:09AM -0500, Perry Myers wrote:
> warning: tl;dr
>
> Right now, HA in oVirt is limited to VM level granularity. Each VM
> provides a heartbeat through vdsm back to the oVirt Engine. If that
> heartbeat is lost, the VM is terminated and (if the user has configured
> it) the VM is relaunched. If the host running that VM has lost its
> heartbeat, the host is fenced (via a remote power operation) and all HA
> VMs are restarted on an alternate host.
>
Has anyone considered how live snapshots and live block copy will intersect HA
to provide a better end-user experience? For example, will we be able to handle
a storage connection failure without power-cycling VMs by migrating storage to a
failover storage domain and/or live-migrating the VM to a host with functioning
storage connections?
> Also, the policies for controlling if/when a VM should be restarted are
> somewhat limited and hardcoded.
>
> So there are two things that we can improve here:
>
> 1. Provide introspection into VMs so that we can monitor the health of
> individual services and not just the VM
>
> 2. Provide a more configurable way of expressing policy for when a VM
> (and its services) should trigger remediation by the HA subsystem
>
> We can tackle these two things in isolation, or we can try to combine
> and solve them at the same time.
>
> Some possible paths (not the only ones) might be:
>
I also want to mention Memory Overcommitment Manager. It hasn't been included
in vdsm yet, but the patches will be hitting gerrit within the next couple of
days. MOM will contribute a single-host policy which is useful for making
decisions about the condition of a host and applying remediation policies:
ballooning, ksm, cgroups, vm ejection (migrating to another host). It is
lightweight and will integrate seamlessly with vdsm from an oVirt-engine
perspective.
> * Leverage Pacemaker Cloud (http://pacemaker-cloud.org/)
>
> Pacemaker Cloud works by providing a generic (read: virt mgmt system
> agnostic) way of managing HA for virtual machines and their services.
> At a high level the concept is that you define 1 or more virtual
> machines to be in a application group, and pcmk-cloud spawns a process
> to monitor that application group using either Matahari/QMF or direct
> SSH access.
>
> pcmk-cloud is not meant to be a user facing component, so integration
> work would need to be done here to have oVirt consume the pcmk-cloud
> REST API for specifying what the application groups (sets of VMs) are
> and exposing that through the oVirt web UI.
>
> pcmk-cloud at a high level has the following functions:
> + monitoring of services through Matahari/QMF/SSH
> + monitoring of VMs through Matahari/QMF/SSH/Deltacloud
> + control of services through Matahari/QMF/SSH
> + control of VMs through Deltacloud or the native provider (in this
> case oVirt Engine REST API)
> + policy engine/model (per application group) to make decisions about
> when to control services/VMs based on the monitoring input
>
> Integration decisions:
> + pcmk-cloud to use existing transports for monitoring/control
> (QMF/SSH) or do we leverage a new transport via vdsm/ovirt-guest-
> agent?
> + pcmk-cloud could act as the core policy engine to determine VM
> placement in the oVirt datacenter/clusters or it could be used
> solely for the monitoring/remediation aspect
>
>
> * Leverage guest monitoring agents w/ ovirt-guest-agent
>
> This would be taking the Services Agent from Matahari (which is just a C
> library) and utilizing it from the ovirt-guest-agent. So oga would
> setup recurring monitoring of services using this lib and use its
> existing communication path with vdsm->oVirt Engine to report back
> service events. In turn, oVirt Engine would need to interpret these
> events and then issue service control actions back to oga
>
> Conceptually this is very similar to using pcmk-cloud in the case where
> pcmk-cloud utilizes information obtained through oga/vdsm through oVirt
> Engine instead of communicating directly to Guests via QMF/SSH. In
> fact, taking this route would probably end up duplicating some effort
> because effectively you'd need the pcmk-cloud concept of the Cloud
> Application Policy Engine (formerly called DPE/Deployable Policy Engine)
> built directly into oVirt Engine anyhow.
>
> So part of looking at this is determining how much reuse/integration of
> existing components makes sense vs. just re-implementing similar concepts.
>
> I've cc'd folks from the HA community/pcmk-cloud and hopefully we can
> have a bit of a discussion to determine the best path forward here.
>
> Perry
> _______________________________________________
> Arch mailing list
> Arch at ovirt.org
> http://lists.ovirt.org/mailman/listinfo/arch
>
--
Adam Litke <agl at us.ibm.com>
IBM Linux Technology Center
More information about the Arch
mailing list