[DRBD-user] local-io-error for I/O error handling strategies and handlers

Florian Haas florian.haas at linbit.com
Tue Jul 21 12:16:59 CEST 2009

Note: "permalinks" may not be as permanent as we would like,
direct links of old sources may well be a few messages off.

On 2009-07-21 11:38, Gianluca Cecchi wrote:
> Some questions:
> 1)   In sample drbd.conf there is the line
>  local-io-error "/usr/lib/drbd/notify-local-io-error.sh;
> /usr/lib/drbd/notify-emergency-shutdown.sh; echo o >
> /proc/sysrq-trigger ; halt -f";
> but with drbd 8.3.2 I don't have /usr/lib/drbd/notify-local-io-error.sh
> is this intended?

Sorry. That's a documentation bug; the Makefile in fact installs this
symlink as /usr/lib/drbd/notify-io-error.sh. Fixed in git. For now,
please update your drbd.conf manually. Thanks for reporting this.

> What does it happen in that case if I set inside the disk section
> on-io-error call-local-io-error  ?

Well, if your DRBD device encounters an I/O error from lower layers, it
executes the local-io-error handler you specify in the handlers section.

> Are the scripts/commands referred executed in sequence or does an
> incorrect exit code (example first script doesn't exist) cause
> anything strange?
> Also in general if I concatenate "script1 ; script2; script3" inside
> an action...

The handler is executed with "/bin/sh -c". Thus ";", "&&", and "||" are
interpreted by your default shell.

> 2) the doc page says
> (http://www.drbd.org/users-guide/s-configure-io-error-behavior.html)
> "You may reconfigure a running resource's I/O error handling strategy
> by following this process:
> ..."
> and then describes actions to be done on the secondary, switch
> resource and action on the other node (now secondary0
> What is the correct work flow in case of two primaries, instead?

That is another doc bug; this resource role switch is no longer
necessary as of 8.3.1. Thanks for pointing that out too.

> 3) at the link
> http://sourceware.org/cluster/wiki/DRBD_Cookbook
> I found the statement
>         handlers {
>                 outdate-peer "/sbin/obliterate-peer.sh"; # We'll get
> back to this.
>         }
> Does this has to be read as
>          handlers {
>                 fence-peer "/sbin/obliterate-peer.sh"; # We'll get back to this.
>         }

fence-peer is correct. outdate-peer is legacy syntax which will still
work as a compatibility alias.


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 260 bytes
Desc: OpenPGP digital signature
URL: <http://lists.linbit.com/pipermail/drbd-user/attachments/20090721/8d75665e/attachment.pgp>

More information about the drbd-user mailing list