-3

I'm wondering what the write penalty is for RAID 3?

I know for 5 it is 4, and 6 is 6, but I'm not entirely sure how it would work for RAID3.

The thing that confuses me a little with raid 3 is the fact that any request requires all the blocks in a strip to be read:

from wiki: This happens because any single block of data will, by definition, be spread across all members of the set and will reside in the same location. So, any I/O operation requires activity on every disk and usually requires synchronized spindles.

This implies to me that 1 write IOP for one a block (or byte) update would require the following:

  1. Read all blocks in stripe.
  2. Update stripe where necessary and calculate parity.
  3. Rewrite all blocks to disk.

My query is how many RW does 1 and 3 count for (disk number dependent of course)?

elbekay
  • 33
  • 2
  • 4
  • Is this a practical problem that you actually face, because that's a requirement in the [faq] for posting a question here. If it is, I'd like to know what RAID controller that you're using for this? I haven't seen a controller that supports RAID 3 ever. – MDMarra Jul 19 '12 at 14:32
  • 1
    I don't see how having a good understanding of performance implications of different RAID levels isn't applicable in a professional setting. Whether its an actual problem isn't a requirement in the faq, only that it be applicable in a professional setting. – elbekay Jul 19 '12 at 15:08
  • I'm asking if this is an actual problem that you face because I don't know of a single RAID controller currently in production that even has RAID 3 as an option on it, that's all. If you are using it in a real environment and this isn't theoretical, I was going to persuade you not to use it. And just for the record, the [faq] says: `"You should only ask practical, answerable questions based on actual problems that you face"` – MDMarra Jul 19 '12 at 15:29
  • To echo what MDMarra's said, it's applicable because you shouldn't be using RAID3 (or any "non-standard" RAID level) in a professional setting, and your concern should be how to migrate the RAID3 array you inherited over to something suitable for a professional environment. – HopelessN00b Jul 19 '12 at 15:42

2 Answers2

6

Look at the cause for a write penalty in RAID5.

Quoted from the SF canonical answer on RAID levels: RAID 5 has a high disk write overhead on small writes. Writes less than a stripe width in size cause an extra read prior to the write, causing a single frontend IOP to turn into 4 backend IOPs. The small write penalty is mitigated by having controller-based write-back caches capable of taking up the entire I/O write load of your system.

(emphasis mine)

Now consider the difference between RAID 3 (byte-level striping with dedicated parity) and 5 (block-level striping with distributed parity) and try to come up with a good way when RAID3 would be better. (Hint: nobody uses it for a reason).

If you are an network or server admin setting up a new server in a corporate network then you might want to rephrase the question stating what you are doing and why you think you might need RAID3. In which case the canonical answer mentioned above will likely answer your question.

Hennes
  • 4,772
  • 1
  • 18
  • 29
1

So when talking about RAID 5, raid penalty is actually caused by parity writes. When writing in RAID 5 write penalty is
1 IO for reading data
1 IO for reading parity
1 IO for writing new data
1 IO for writing new parity.
Write penalty = 4.

In the example you use above of partial writes the write penalty is increased even higher and dependent on number of disks in the raid group.

In the case of RAID 3 this is an interesting question as it writes in parallel, but when reading it reads sequentially.
Hence my prediciton is
1 IO for reading data
1 IO for reading parity
1 IO for writing data and parity
Write penalty of 3.

anthony
  • 11
  • 1