On Wed, 09 Nov 2011 11:05:01 +0100 "Hardy Flor" <Flor@xxxxxxxxxxxx> 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
Attachment:
signature.asc
Description: PGP signature