Re: proactive disk replacement

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

 



Sorry, but I'm just seeing scaremongering and things that don't compute. Possibly I'm just not seeing it, but I don't see your advise being given by a majority of "experts" either on this list or elsewhere. I'll try to refrain from responding beyond this one, and return to lurking and hopefully learning more.

Also, please note that the quoting / attribution seems to be wrong (inverted).

On 21/3/17 22:03, Reindl Harald wrote:

Am 21.03.2017 um 11:54 schrieb Adam Goryachev:
On 21/3/17 20:54, Reindl Harald wrote:
and about RAID5/RAID6 versus RAID10: both RAID5 and RAID6 suffer from
the same problems - due rebuild you have a lot of random-IO load on
all remaining disks which leads in bad performance and make it more
likely that before the rebuild is finished another disk fails, RAID6
produces even more random IO because of the double parity and if you
have a Unrecoverable-Read-Error on RAID5 you are dead, RAID6 is not
much better here and the probability of a URE becomes more likely with
larger disks

RAID10: less to zero performance impact due rebuild and no random-IO
caused by the rebuild, it's just "read a disk from start to end and
write the data on another disk linear" while the only head moves on
your disks is the normal workload on the array

with disks 2 TB or larger you can make the conclusion "do not use
RAID5/6 anymore and when you do be prepared that you won't survive a
rebuild caused by a failed disk"

I can't say I'm an expert in this, but in actual fact, I disagree with
both your arguments against RAID6...
You say recovery on a RAID10 is a simple linear read from one drive (the
surviving member of the RAID1 portion) and a linear write on the other
(the replaced drive). You also declare that there is no random IO with
normal work load + recovery. I think you have forgotten that the "normal
workload" is probably random IO, but certainly once combined with the
recovery IO then it will be random IO.

but the point is that with RAID5/6 the recovery itself is *heavy random IO* and that get *combined* with the random IO auf the normal workload and that means *heavy load on the disks*
random IO is the same as random IO, regardless of the "cause" of making the IO random. In most systems, you won't be running anywhere near the IO limits, so allowing your recovery some portion of IO is not an issue.

In addition, you claim that a drive larger than 2TB is almost certainly
going to suffer from a URE during recovery, yet this is exactly the
situation you will be in when trying to recover a RAID10 with member
devices 2TB or larger. A single URE on the surviving portion of the
RAID1 will cause you to lose the entire RAID10 array. On the other hand,
3 URE's on the three remaining members of the RAID6 will not cause more
than a hiccup (as long as no more than one URE on the same stripe, which
I would argue is ... exceptionally unlikely).

given that when your disks have the same age errors on another disk become more likely when one failed and the heavy disk IO due recovery of a RAID6 with takes *many hours* where you have heavy IO on *all disks* compared with a way faster restore of RAID1/10 guess in which case a URE is more likely

URE's are based on amount of data read, and that isn't cumulative, every block read starts again with the same chance. If winning lottery is a chance of 100:1 it doesn't mean you will win at least once if you buy 100 tickets. So reading 200,000,000 blocks also doesn't ensure you will see a URE (equally, you just might be lucky and win the lottery more than once, and get more than one URE). In any case, if you only have a single source of data, then you are more likely to lose it (this is one of the reasons for RAID and backups). So RAID6 which stores your data in more than one location (during a drive failure event) is better. BTW, just because you say that you will suffer a URE under heavy load doesn't make it true. The load factor doesn't change the frequency of a URE (even though it sounds possible).
additionally why should the whole array fail just because a single block get lost? the is no parity which needs to be calculated, you just lost a single block somewhere - RAID1/10 are way easier in their implementation
Equally, worst case, you have multiple URE on the same stripe on RAID6 only loses a single stripe (ok, a stripe is bigger than a block, but still much less likely to occur anyway).

In addition, with a 4 disk RAID6 you have a 100% chance of surviving a 2
drive failure without data loss, yet with 4 disk RAID10 you have a 50%
chance of surviving a 2 drive failure.

yeah and you *need that* when it takes many hours ot a few days until your 8 TB RAID6 is resynced while the whole time *all disks* are under heavy stress
Why are all disks under heavy stress? Again, you don't operate (under normal conditions) at a heavy stress level, you need room to grow, and also peak load is going to be higher but for short duration. Normal activity might be 50% of maximum, degraded performance together with recovery might push that to 80%, but disks (decent ones) are not going to have a problem doing simple read/write activity, that is what they are designed for right?

Sure, there are other things to consider (performance, cost, etc) but on
a reliability point, RAID6 seems to be the far better option

*no* - it takes twice as long to recalculate from parity and stresses the remaining disks twice as hard as RAID5 and so you pretty soon end with lost both of the disk you can lose without the array goes down while you still have many hours remaining recovery time

here you go: http://www.zdnet.com/article/why-raid-6-stops-working-in-2019/
That was written in 2010, 2019 is only 2 years away, (unless you meant 2029 and it was a typo) and I don't see evidence of that being true nor becoming true in such a short time. We don't see many (any?) people trying to recover their RAID6 arrays with double URE failures.

You say it takes twice as long to recalculate from parity for RAID6 compared to RAID5, but with CPU performance, this is still faster than the drive speed (unless you have NVMe or some SSD's, but then I assume the whole URE issue is different there anyway). Also, why do you think it stresses the disks twice as hard as RAID5? To recover a RAID5 you need a full read of all surviving drives, that's 100% read. To recover a RAID6 you need a full read of all remaining drives minus one, so that is less than 100% read. So why are you "stressing the remaining disks twice as hard"? Also, why does a URE equal losing a disk, all you do is read that block from another member in the array, and fix the URE at the same time.

If anything, you might suggest triple mirror RAID (what is that called? RAID110?) If I was to believe you, then that is the only sensible option, with triple mirror, when you lose any one drive, then you may recover by simply reading from the surviving members, and you are no worse off under any scenario. Even losing any two drives and you are still protected, potentially you can lose up to 4 drives without data loss (assuming a minimum of 6 drives). However, cost is a factor here.

Finally, other than RAID110 (really, what is this called?) do you have any other sensible suggestions? RAID10 just doesn't seem to be it, and zfs doesn't seem to be mainstream enough either, same with btrfs and other FS's which can do various checksum/redundant data storage.

PS, In case you are wondering, I am still running 8 drive RAID5 in real life workloads, and don't have any problems with data loss (albeit, I do use DRBD to replicate the data between two systems with RAID5 each, so you can call that RAID51 perhaps, but the point remains, I've never (yet) lost an entire RAID5 array due to multiple drive failure or URE's).

--
To unsubscribe from this list: send the line "unsubscribe linux-raid" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux RAID Wiki]     [ATA RAID]     [Linux SCSI Target Infrastructure]     [Linux Block]     [Linux IDE]     [Linux SCSI]     [Linux Hams]     [Device Mapper]     [Device Mapper Cryptographics]     [Kernel]     [Linux Admin]     [Linux Net]     [GFS]     [RPM]     [git]     [Yosemite Forum]


  Powered by Linux