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
next prev parent 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).