Linux RAID subsystem development
 help / color / mirror / Atom feed
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
>   

  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