RAID 6 vs RAID 10? Which would you choose

My choice would be RAID 6 for a file server since you can lose two drives and it does not matter which set of two can die. From what I understand with RAID 10 you can lose two drives but if they happen to be on the same RAID 1 array then you are a out of luck? Any suggestions? Basic file server with about 200GB of data and it would act as a single point of backup for other workstations and servers.


Solution 1:

It depends on what you are trying to do. While Raid 10 would give you faster reads and writes of the two, as you said, it is possible to lose everything if you lose the wrong two drives. But on larger disk arrays you could lose exactly half the drives and retain full operations. But with Raid 6, your writes could be a bit slower b/c of the extra checksum. But you could lose any two drives and not lose any data as long as there are no UREs found on any other drive during the RAID reconstruction phase.

I think another important point to remember is that Raid is not data backup. So the main thing RAID should be looked at is server uptime. Not keeping data intact.

I think in the end it is a matter of preference. I would go with Raid 10 personally; For really large arrays you might be able to pull of a RAID 50 or 60. Where disk in the striped set could be protected with raid 5 or raid 6.

Some good reading:

  • Wikipedia - Standard Raid
  • Wikipedia - Nested Raid

Solution 2:

[I'm assuming you're comfortable with the performance hit of RAID6, and only concerned with failures]

I'm using the numbers from http://en.wikipedia.org/wiki/Standard_RAID_levels, and I suck at math, so this may be wrong. Lets assume that 5% of your drives will die within 1 year.

The probability of a dual-member RAID1 outright dying is the probability of any given drive dying, squared: P(R1) = P(drive)^2.

So with the 5% failure rate, you end up with:

P(R1) = 0.005^2 = 0.0025 = 0.25%

(Here's where I'm not sure about the math---it makes sense, but that doesn't mean anything)

So the chances of losing any given R1 member are 0.25% per year, but you've got several of them striped together, and if any of them die, your array is dead. so you need to plug the P(R1) number into the R0 failure math: P(R10) = 1 - (1 - P(R1))^(n_R1). Lets assume you've got 8 drives total (and don't replace them when they fail) so a stripe across 4 R1s:

P(R10) = 1 - (1 - 0.0025)^4 ~= 0.99%

So you've got about a 1% chance of losing a RAID10 that's got 8 drives with a 5% chance of failure per-year.

Simplistically, the probability of RAID6 failing is the probability of any given drive dying, cubed (since you have to lose three drives for it to fail), e.g.:

P(drive)^3 = (5%)^3 = 0.0125%

So for the "multiple drives dying" scenario, RAID6 is about 1/80 as likely to fail as RAID10 with the same drives.

Unfortunately, life is complicated, and you have to deal with sectors going bad. It's entirely likely that random errors are introduced into your drives that go unnoticed. I'm no longer just copying wikipedia here, but I'd guess the probability of a bad sector showing up on any given drive is P(bs) = P(UBER) * bits_written. If that happens, then recovery after a drive failure is impossible in an R1, and trickier in an R6.

Of course, all that is moot if the RAID6 controller or driver is buggy, and introduces errors into your data, or corrupts your array :-)

Solution 3:

For a workstation or a primarily CPU-intensive server, I'd vote for RAID 10 for the better read/write performance.

For a data storage server, I'd go with RAID 6.

If possible, I'd use the RAID 10 on my workstation and servers and use a RAID 6 on a file server to keep backup files.