-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 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,852
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