On 2008-12-02T17:06:46, Florian Haas <[EMAIL PROTECTED]> wrote:

> - Any script listed in OCF_RESKEY_monitor_scripts must provide
> OCF-compliant exit codes by itself (unlike the present implementation in
> the Xen RA which just maps any nonzero exit code to $OCF_ERR_GENERIC).

Nope.

The "master" RA is responsible for determining whether or not the
instance is active. The external monitor scripts just get a chance to
fail it, but they can't suddenly claim its not running or anything.

So the external scripts only need "true" or "false".

> - If OCF_RESKEY_monitor_scripts contains multiple entries, they are
> iterated over (just like in the Xen RA).
> - The first nonzero exit code encountered from a monitor script stops the
> iteration (just like in the Xen RA), and its exit code propagates as the
> return value, and hence exit code, of the monitor operation (unlike the
> Xen RA).
> - The external monitor operation must never time out by itself, it must
> keep trying indefinitely until killed by the LRM.

The last one is an implementation detail which is left for the external
script to handle.

> The last one is due to an additional pitfall with respect to implementing
> migrate_from/migrate_to (which eventually should work, of course). We can
> set start_delay on the monitor op so we make sure we start monitoring only
> after the domain has booted completely. So that is fine. 

start_delay should never be needed. It was one of the biggest mistakes
to add it. I keep thinking about just making it a no-op; anything which
requires it points to a broken RA.

The resource must be fully operational after start (or migrate_from)
have completed.  Monitor must immediately be OK.

> But suppose we have a brief interruption in machine availability
> during migration. We can't temporarily disable the external monitor
> operation then, so we at least need to make sure that it doesn't time
> out before the LRM says it does. I realize no such interruption is
> supposed to happen during Xen live migration, but I don't know about
> KVM, OpenVZ, lxc etc.

If that's what you think you need, have the migrate_from/start op loop
until "monitor" succeeds.

while ! monitor_function ; do sleep 1 ; done


Regards,
    Lars

-- 
Teamlead Kernel, SuSE Labs, Research and Development
SUSE LINUX Products GmbH, GF: Markus Rex, HRB 16746 (AG Nürnberg)
"Experience is the name everyone gives to their mistakes." -- Oscar Wilde

_______________________________________________________
Linux-HA-Dev: [email protected]
http://lists.linux-ha.org/mailman/listinfo/linux-ha-dev
Home Page: http://linux-ha.org/

Reply via email to