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/