Very low disk performance on 5.x

asym bsdlists at rfnj.org
Mon May 2 07:42:46 PDT 2005


At 10:38 5/2/2005, Arne "Wörner" wrote:
>--- Allen <bsdlists at rfnj.org> wrote:
> > Scenario B, verified read enabled:
> > 1. RAID card reads up ALL blocks in the stripe (5 reads).
> > 2. RAID card pretends the block requested is on a "degraded"
> > drive, and
> > calculates it from the other 3 + the XOR stripe.
> > 3. RAID card reports the value back, or tosses some kind of
> > error.
> >
> > You can see, the cache just doesn't play a part in what I was
> > describing,
> > which is basically the array performing as though it is degraded
> > when in
> > fact it is not, to catch failures that would otherwise be
> > missed.
> >
>That would be a funny implementation. Step one could be done
>mostly from cache in case of sequential reads from a device (like
>/dev/ad0s1f or so). In this thread we always looked at sequential
>reads, as far as I recall...

It's not "funny" it's just something some people do to try to catch more 
errors.

RAID5 will not catch transient write errors by default.  If there was say 
noise on the bus, and so the wrong value was written to the disk after the 
XOR was performed, but the right XOR data was written to the disk.

RAID5 would normally never catch such an error, unless you run it in a 
verified mode where it always behaves as though it is degraded, which is 
what I was describing.

Why you would, I'm not sure.  It would catch the errors I suppose, but 
there's nothing it can do about them -- it can't know if the XOR data or 
the actual data is corrupt.  Detection without correction is better than 
nothing though, and if performance isn't your real goal, you can turn on 
such features in some cards.



More information about the freebsd-performance mailing list