[dm-devel] [PATCH] dm-raid: check events in super_validate

Brassow Jonathan jbrassow at redhat.com
Tue Feb 25 22:13:04 UTC 2014


On Feb 24, 2014, at 11:30 PM, NeilBrown wrote:

> On Sat, 1 Feb 2014 09:35:20 -0500 Nate Dailey <nate.dailey at stratus.com> wrote:
> 
>> If an LVM raid1 recovery is interrupted by deactivating the LV, when the 
>> LV is reactivated it comes up with both members in sync--the recovery 
>> never completes.
>> 
>> I've been trying to figure out how to fix this. Does this approach look 
>> okay? I'm not sure what else to use to determine that a member disk is 
>> out of sync. It looks like if disk_recovery_offset in the superblock 
>> were updated during the recovery, that would also cause it to resume 
>> after interruption--but MD skips the recovery target disk when writing 
>> superblocks, so this doesn't work.
>> 
>> Comments?
> 
> I know it is confusing, but this should really have gone to dm-devel rather
> than linux-raid, to make sure Jon Brassow see it (hi Jon!).
> 
> Setting recovery_offset to 0 certainly looks wrong, it should be set to
>  sb->disk_recovery_offset
> like the code just above your change.
> Why does the code there not meet your need.
> 
> Jon: can you help?

Sure, thanks for forwarding.

Could you describe first how you are creating the problem?

When I create a RAID1 LV, deactivate it, and reactivate it; I don't see it skip the sync.  Also, if I replace a single drive and cycle the LV, I don't see it skip the sync.  What steps am I missing?

 brassow





More information about the dm-devel mailing list