Thread (9 messages) 9 messages, 3 authors, 2014-03-01

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

From: Brassow Jonathan <hidden>
Date: 2014-02-25 22:13:04
Also in: dm-devel

On Feb 24, 2014, at 11:30 PM, NeilBrown wrote:
On Sat, 1 Feb 2014 09:35:20 -0500 Nate Dailey [off-list ref] wrote:
quoted
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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help