[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: is this hard disk failure?



On Tue, 07 Jun 2011, Miles Fidelman wrote:
> >Linux software raid is much more forgiving by default (and it can tune
> >the timeout for each component device separately), and will just slow
> >down most of the time instead of kicking component devices off the array
> >until dataloss happens.  Could be useful if you got duped by the vendor
> >and sold a defective drive that can only operate safely out-of-spec, but
> >can still be useful to you.
> 
> Not necessarily the best strategy if you have enough drives to
> survive 2 drive failures.  Sometimes better to have a drive drop out
> of the array and trigger an alarm than to have a system slow to a
> crawl precipitously (particularly as that makes it hard to run
> diagnostics to figure out which drive is bad).

YMMV.  I'd never do that in a RAID array with important data in it.

External events that cause non-ECR disks to time out CAN and DO happen to
the entire set of disks in the same enclosure (such as impact vibrations
from a nearby equipment or from the floor).  It is a known problem in
datacenters, but it can happen at home as well when a large truck passes
close by, or someone bumps in the shelf/table/rack :-)

If enough of those devices go over the timeout threshold because of the
external even (which is rather spartan by default on most hardware RAID
cards), the array goes offline and data loss can happen.

Worse, rebuilding a degraded array will excercise the array at the time it
is most vulnerable, it is not a safe operation unless you're rebuilding an
already redundant array (which is one of the reasons why RAID6 or anything
N+2 or above is a good idea).  This is why you have to regularly scrub the
array at off-peak hours or as a background operation.

> Re. tuning:  How?  I've tried to find ways to get md to track
> timeouts, and never been able to find any relevant parameters.

It is not in md.  It is in the libata/scsi layer.  Just tune the per-device
parameters, e.g. in /sys/block/sda/device/*

AFAIK, if libata doesn't time out the device, md won't drop it off the
array.

> Queries to the linux-raid list have yielded some fairly definitive
> sounding statements, from folks who should know, that md doesn't
> have any such timeouts.  If they're there, please.. more
> information!

md doesn't track performance (much, if at all), it does not do even a decent
job of scheduling reads/writes over multiple md devices that have components
that share the same physical device.   It is quite simple (but not to the
point of being brain-dead like dm-raid).

OTOH, md really is a separate layer on top of the component devices. You can
smart-test and performance-test the component devices, change their
libata/scsi layer parameters...

-- 
  "One disk to rule them all, One disk to find them. One disk to bring
  them all and in the darkness grind them. In the Land of Redmond
  where the shadows lie." -- The Silicon Valley Tarot
  Henrique Holschuh


Reply to: