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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.