linux-raid.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "H. Peter Anvin" <hpa@zytor.com>
To: Neil Brown <neilb@cse.unsw.edu.au>
Cc: Jim Paris <jim@jtan.com>, linux-raid@vger.kernel.org
Subject: Re: RAID-6: help wanted
Date: Tue, 26 Oct 2004 22:23:19 -0700	[thread overview]
Message-ID: <417F30C7.9050308@zytor.com> (raw)
In-Reply-To: <16767.6168.695527.234379@cse.unsw.edu.au>

Neil Brown wrote:
> 
> Ok, take-2.  I've tested this one myself and it does seem to fix it.
> 
> The problem is that it is sometimes using parity to reconstruct a
> block, when not all of the blocks have been read in.
> 
> In raid5, there are two choices for write - reconstruct-write or
> read-modify-write.
> 
> If there are any failed drives, it always chooses read-modify-write
> and so only has to read data from good drives.
> 
> raid6 only allows for reconstruct-write, so if it ever writes to an
> array with a failed drive, it must read all blocks and reconstruct the
> missing blocks before allowing the write.
> As this is something that raid5 didn't have to care about, and as the
> raid6 code was based on the raid5 code, it is easy to see how this
> case was missed.
> 
> The following patch added a bit of tracing to track other cases
> (hopefully non-existent) where calculations are done using
> non-existent data, and make sure the required blocks are pre-read.
> Possible this code (in handle_stripe) needs a substantial clean up...
> 
> I'll wait for comments and further testing before I forward it to
> Andrew.
> 

That makes sense (and definitely explains why I didn't find the problem.)

I tried it out, and it seems much better now.  It does, however, still 
seem to have a problem:

+ e2fsck -nf /dev/md6
e2fsck 1.35 (28-Feb-2004)
Pass 1: Checking inodes, blocks, and sizes
Inode 7 has illegal block(s).  Clear? no

Illegal block #-1 (33619968) in inode 7.  IGNORED.
Error while iterating over blocks in inode 7: Illegal indirect block found
e2fsck: aborted

Inode 7 is a special-use inode:
#define EXT3_RESIZE_INO          7      /* Reserved group descriptors 
inode */

This is running the version of the r6ext.sh script that I posted, with 
the same datafile, on a PowerMac.

	-hpa

  reply	other threads:[~2004-10-27  5:23 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-10-23 23:46 RAID-6: help wanted H. Peter Anvin
2004-10-24  5:26 ` Brad Campbell
2004-10-24  6:46   ` Jim Paris
     [not found]   ` <417B546C.3050706@zytor.com>
2004-10-24  7:09     ` H. Peter Anvin
2004-10-24  7:17       ` H. Peter Anvin
2004-10-24  7:18       ` Brad Campbell
2004-10-25  5:41 ` Neil Brown
2004-10-25  6:20   ` Jim Paris
2004-10-25  6:24     ` Neil Brown
2004-10-25  6:33       ` Jim Paris
2004-10-25 14:23       ` H. Peter Anvin
2004-10-27  3:38     ` Neil Brown
2004-10-27  5:23       ` H. Peter Anvin [this message]
2004-10-27  6:00         ` Jim Paris
2004-10-27  6:03           ` H. Peter Anvin
2004-10-28  1:17           ` H. Peter Anvin
2004-10-28 16:00             ` Jim Paris
2004-10-28 17:48               ` H. Peter Anvin
2004-10-28 17:49               ` H. Peter Anvin
2004-10-29  0:43                 ` Neil Brown
2004-10-29 11:48                   ` Jim Paris
2004-10-29 12:56                     ` Guy
2004-10-29 18:15                       ` Jim Paris
2004-10-29 19:04                         ` H. Peter Anvin
2004-10-29 19:21                           ` Jim Paris
2004-10-29 19:33                             ` H. Peter Anvin
2004-10-29 20:28                             ` Guy
2004-10-29 20:32                               ` H. Peter Anvin
2004-10-29 21:21                                 ` Guy
2004-10-29 21:33                                   ` H. Peter Anvin
2004-10-29 12:29                   ` Guy
2004-10-27  5:56       ` H. Peter Anvin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=417F30C7.9050308@zytor.com \
    --to=hpa@zytor.com \
    --cc=jim@jtan.com \
    --cc=linux-raid@vger.kernel.org \
    --cc=neilb@cse.unsw.edu.au \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).