Re: Force parity resync on raid5?

2 messages, 2 authors, 2004-08-10 · open the first message on its own page

Re: Force parity resync on raid5?

From: Neil Brown <hidden>
Date: 2004-08-10 12:39:50

On Tuesday August 10, philip@corp.texas.net wrote:
Linux RAID *has* to have sort of way to force a parity resync.  If it
doesn't have one, it needs one.  That's a glaring omission to make.
Well, you get what you pay for.....

The easiest way to force a resync would be to re-create the array.

 - Note the exact order of the drives in the array, and the chunk size.
 - Stop the array.
 - Create the array with mdadm using --force.  That bit is important.

    mdadm --create /dev/mdX --level=5 --force --disks=whatever \
       --chunksize=64k  /dev/sda1 /dev/sdb1 .....

 Remember the --force.  If you don't have it, you will get a recovery
 cycle that rebuilds one drive against the others rather than a resync
 that checks and corrects parity.

 This will recreate the array (almost) exactly as it currently is, but
 it will not be marked 'clean', so a parity check-and-correct will
 happen.

 It should be fairly easy to add a --update=dirty option to
    "mdadm --assemble"
 to make that a bit easier.  I might do that in a  day or two (though
 I might not).

 Ofcourse, it would be really nice if you could just tell md to run a
 resync pass.  It's on my todo list, but it isn't the only thing.
 Clean, well-designed, small patches gladly accepted.

NeilBrown

(don't forget the --force)

Re: Force parity resync on raid5?

From: Philip Molter <hidden>
Date: 2004-08-10 14:30:18

Neil Brown wrote:
On Tuesday August 10, philip@corp.texas.net wrote:
quoted
Linux RAID *has* to have sort of way to force a parity resync.  If it
doesn't have one, it needs one.  That's a glaring omission to make.
Well, you get what you pay for.....
Tell me where to send the checks.  Seriously.  I know you guys work hard 
on this stuff and I will gladly donate to the fund to have important (to 
me) features implemented.
The easiest way to force a resync would be to re-create the array.

 - Note the exact order of the drives in the array, and the chunk size.
 - Stop the array.
 - Create the array with mdadm using --force.  That bit is important.
Do I need to note the parity algorithm, too?
    mdadm --create /dev/mdX --level=5 --force --disks=whatever \
       --chunksize=64k  /dev/sda1 /dev/sdb1 .....

 Remember the --force.  If you don't have it, you will get a recovery
 cycle that rebuilds one drive against the others rather than a resync
 that checks and corrects parity.

 This will recreate the array (almost) exactly as it currently is, but
 it will not be marked 'clean', so a parity check-and-correct will
 happen.
Does this destroy the data on the array?  I seem to remember getting 
this advice a while back when encountering a similar problem and seeing 
my data go up in smoke.  I could easily have done something wrong, though.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help