[clug] raid question

steve jenkin sjenkin at canb.auug.org.au
Wed Feb 19 23:13:47 MST 2014


On 20/02/2014, at 1:08 PM, Eyal Lebedinsky wrote:

> sdi sector 261696 is sdi1 sector 259648 and in a 7 part raid6 it is 259648*5=1298240
> sectors into the fs, or 162280 4k blocks. The blocks in this area are my focus.

If the read-error is on a parity block, it won't be read, so a read error event won't be triggered..

Would you be better computing this in full 'chunks' and testing reads of them on the raw device?

Are chunks 64Kb or 512Kb or larger on your md device?

My assumption is that mdadm does its first parity block as RAID-5, for chunk-N data = {disk[0,N], disk[1,N], ..., disk[4,N]} + parity ={disk[5,N]} (with parity drive rotating) and a more complex algorithm for second parity block, potentially including blocks from other chunks (quick search didn't show the algorithm).

The drive talks about sectors and 'logical blocks' (0.5Kb and 4Kb), I'd test the drive at 4Kb level, not 512b sectors.
I understood that drive vendors moved to native 4Kb sectors some time back...

> [768141.748586] end_request: I/O error, dev sdi, sector 261696
> [768141.816217] Buffer I/O error on device sdi, logical block 32712


32712 * 8 = 261696

If you hadn't seen it already, 'md' has 'check' and 'repair' options:

<http://www.thomas-krenn.com/en/wiki/Mdadm_checkarray>

--
Steve Jenkin, IT Systems and Design 
0412 786 915 (+61 412 786 915)
PO Box 48, Kippax ACT 2615, AUSTRALIA

mailto:sjenkin at canb.auug.org.au http://members.tip.net.au/~sjenkin









More information about the linux mailing list