Thread (2 messages) 2 messages, 2 authors, 2011-11-09

Re: mini change of raid5.c

From: NeilBrown <hidden>
Date: 2011-11-09 22:15:47

On Wed, 09 Nov 2011 11:05:01 +0100 "Hardy Flor" [off-list ref] wrote:
Hello Mr Brown,

can you please transmit this small change to the file raid5.c? There is
thus a rapid repair of a raid6 possible, using only the defective areas
must be checked. This change writes only the error position in the log
during the function "check".

Kind regards

Hardy Flor
Hi Hardy,
 thanks for suggesting that change.

There a couple of problems with it that would need to be fixed though.

Firstly, it print the 'Q' block for RAID5.  However there is no Q block for
RAID5 so that is just distracting noise which is easy to remove.

Secondly - and more significantly - if you create a new RAID6 array with this
patch, you can expect every stripe to have incorrect parity, so you will get
a message for every single stripe which would not be good.

I don't really think that printk is the best way to get useful data from the
kernel.  I would prefer that raid5 kept a list of sectors internally and made
them available through a file in sysfs. e.g. ..../md/mismatch_list.
You could then enhance raid6check.c (part of 'mdadm') to read that file and
explain exactly what is happening at each offset.

We would need to limit the number of addresses reported.  If we just
allocated one page and treated it as an array of 256 64bit numbers that would
probably be sufficient.

Would you like to try coding that approach?

Thanks,
NeilBrown

Attachments

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help