[lvm-devel] [PATCH 2 of 2] [RFC] handle a temporary secondary mirror device failure

Takahiro Yasui tyasui at redhat.com
Thu Dec 3 00:00:21 UTC 2009


On 11/30/09 05:22, Malahal Naineni wrote:
> If "retry" policy is selected, then the mirror DSO uses "dmsetup"
> command to restart a resync. Right now, it is done immediately but we
> should do it after a configured time. Also, this is done endlessly but
> should be done only few configured times.

It sounds good to me. This feature would work in a variety of
environments by adding configurable parameter as you mentioned.

> Calling 'lvchange --refresh' to re-integrate the secondary mirror upon a
> leg failure works if there are no device failures while the "lvchange"
> is running.  Otherwise, the failed device is replaced with "error"
> target which is not what we want. For now, this patch calls "dmsetup",
> but should be replaced with a suitable "LVM" command.

> +	snprintf(cmd_str, CMD_SIZE, "dmsetup suspend %s-%s", vg, lv);
> +	syslog(LOG_ERR, "Running command: %s", cmd_str);

We need to re-queue blocked I/Os instead of finishing them by -EIO.
I think that "--noflush" option is necessary for "dmsetup suspend."

Thanks,
Taka




More information about the lvm-devel mailing list