From: Neil Brown <neilb@suse.de>
To: Michael Sallaway <michael@sallaway.com>
Cc: linux-raid@vger.kernel.org
Subject: Re: 3-way mirrors
Date: Wed, 8 Sep 2010 16:02:07 +1000 [thread overview]
Message-ID: <20100908160207.1075c60d@notabene> (raw)
In-Reply-To: <20100908054541.3760.qmail@s217.sureserver.com>
On Wed, 08 Sep 2010 05:45:41 +0000
"Michael Sallaway" <michael@sallaway.com> wrote:
>
> > -------Original Message-------
> > From: Neil Brown <neilb@suse.de>
> > To: Michael Sallaway <michael@sallaway.com>
> > Cc: linux-raid@vger.kernel.org
> > Subject: Re: 3-way mirrors
> > Sent: 08 Sep '10 04:16
>
> > > Interesting... will this also work for a rebuild/recovery? If so, how do I start a rebuild from a particular location? (do I just write the sync_min sector before adding the replacement drive to the array, and it will start from there when I add it?)
> >
> > Why would you want to?
>
> (My apologies for hijacking the email thread, I only meant it as a side question!)
>
> The reason relates to my question I posted yesterday -- I have a 12-drive raid 6 array, with 3 drives that have some bad sectors at varying locations. I planned to swap out one drive with a new one, and let it rebuild that one, then do the same for the other 2. However, when I replace and rebuild drive A, drive B gets read errors and falls out of the array (at about 50% through), but recovery continues. At the 60% mark, however, drive C gets read errors, and also falls out of the array, which now only has 9 working devices, so abandons recovery. (even though drive B has vaild data at that location, so it could be rebuilt).
Hmm.... Drive B shouldn't be ejected from the array for a read error. md
should calculate the data for both A and B from the other devices and then
write that to A and B.
If the write fails, only then should it kick B from the array. Is that what
is happening?
i.e. do you see messages like:
read error corrected
read error not correctable
read error NOT corrected
in the kernel logs??
If the write is failing, then you want my bad-block-log patches - only they
aren't really finished yet and certainly aren't tested very well. I really
should get back to those.
NeilBrown
>
> One solution I thought of (and please, suggest others!) was to recover 55% of the array onto the new drive (A), and then stop recovery somehow. Then forcibly add drive B back into the array, and keep recovering, so that when it hits the 60% mark, even though drive C fails, it can still get parity data and recover using drive B.
>
> It sounds crazy, I know, but can't think of a better solution. If you have one, please suggest it! :-)
>
>
> > You can add a new device entirely by writing to sysfs files. In this case
> > you can set the 'recovery_start' for that device. This tells md that it has
> > already recovered some of the array.
>
> Interesting, I think this is exactly what I'm after. Is this documented somewhere, or can you give me some pointers as to where to look to find more information/documentation on the sysfs files and what they do, etc.?
>
> Thanks!
> Michael
next prev parent reply other threads:[~2010-09-08 6:02 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-09-08 5:45 3-way mirrors Michael Sallaway
2010-09-08 6:02 ` Neil Brown [this message]
-- strict thread matches above, loose matches on Subject: below --
2010-09-08 7:01 Michael Sallaway
2010-09-08 9:11 ` Tim Small
2010-09-08 6:16 Michael Sallaway
2010-09-08 6:40 ` Neil Brown
2010-09-08 9:06 ` Tim Small
2010-09-08 3:58 Michael Sallaway
2010-09-08 4:16 ` Neil Brown
2010-09-07 14:19 George Spelvin
2010-09-07 16:07 ` Iordan Iordanov
2010-09-07 18:49 ` George Spelvin
2010-09-07 19:55 ` Keld Jørn Simonsen
2010-09-07 18:31 ` Aryeh Gregor
2010-09-07 19:02 ` George Spelvin
2010-09-08 22:28 ` Bill Davidsen
2010-09-07 22:01 ` Neil Brown
2010-09-08 1:33 ` Neil Brown
2010-09-08 14:52 ` George Spelvin
2010-09-08 23:04 ` Neil Brown
2010-09-28 16:42 ` Tim Small
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=20100908160207.1075c60d@notabene \
--to=neilb@suse.de \
--cc=linux-raid@vger.kernel.org \
--cc=michael@sallaway.com \
/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).