From: "Patrick H." <linux-raid@feystorm.net>
To: linux-raid@vger.kernel.org
Subject: Re: integrity verification on raid-5?
Date: Fri, 17 Dec 2010 15:20:31 -0700 [thread overview]
Message-ID: <4D0BE22F.8000706@feystorm.net> (raw)
In-Reply-To: <20101217212436.GA11425@cthulhu.home.robinhill.me.uk>
Sent: Fri Dec 17 2010 14:24:37 GMT-0700 (Mountain Standard Time)
From: Robin Hill <robin@robinhill.me.uk>
To: linux-raid@vger.kernel.org
Subject: Re: integrity verification on raid-5?
> On Fri Dec 17, 2010 at 02:08:16PM -0700, Patrick H. wrote:
>
>
>> Is there a way to do integrity verification on a raid-5 array? I'm
>> working on building a storage system on SSDs under raid-5 and want to be
>> able to perform periodic integrity checks. Basically just check the
>> drives to make sure that they match what the parity drive has.
>> After a bit of googling I saw other people wanting the same thing but
>> nobody with any result. I dont see why this cant be done, but is there
>> any tool to do so?
>>
>
> There's built-in functionality to do this. To start the check, run:
> echo check > /sys/block/mdX/md/sync_action
>
> You can check progress by catting /proc/mdstat, and the number of errors
> is reported at the end in /sys/block/mdX/md/mismatch_cnt. To rewrite
> the parity data for any mismatches, use "repair" instead of "check" in
> the first command.
>
> Currently, there's no easy way to find out what file(s) are affected by
> the mismatches though.
>
>
The docs say that for both raid 5 & 6 it the repair function simply
rewrites the parity drive(s). For raid-5 I can understand this as
there's no way to tell if the data is incorrect, or if the parity is
incorrect since there's only 1 parity. And while I dont know the details
of the algorithms involved in raid-6, couldnt you do something like:
Calculate replacement data for both parity drives
If one of the 2 parity drives doesnt match its replacement data
assume that drive is bad
Else if both parity drives dont match their replacement data
one of the data drives must be bad
calculate replacement data for each data drive and find the one that
doesnt match
If more than 1 data drive doesnt match its replacement data
we have multiple-drive failure (could be any combination of
parity & data drives) and cant determine which ones
Else
the world is ok
Its probably a heck of a lot more computationally expensive, but it can
isolate which drive is the bad one. But again, I'm not knowledgeable on
the the internal details of raid-6 and might just be completely off my
rocker.
-Patrick
> Cheers,
> Robin
>
next prev parent reply other threads:[~2010-12-17 22:20 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-12-17 21:08 integrity verification on raid-5? Patrick H.
2010-12-17 21:17 ` Neil Brown
2010-12-17 21:25 ` Patrick H.
2010-12-17 21:24 ` Robin Hill
2010-12-17 22:20 ` Patrick H. [this message]
2010-12-18 10:25 ` Piergiorgio Sartor
2010-12-18 10:30 ` Roman Mamedov
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=4D0BE22F.8000706@feystorm.net \
--to=linux-raid@feystorm.net \
--cc=linux-raid@vger.kernel.org \
/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