Given that mirrored Storage Spaces provide automatic corruption detection and repair, is space efficiency the only compelling advantage of parity over a mirror?

I am thinking that the poor write performance of parity justifies the relatively cheap cost of storage overhead incurred in a mirror.

  • You can find the answers you're looking for in the question that this is a duplicate of - mainly the "good when/bad when" headers on each RAID type. – Mark Henderson Apr 7 '14 at 1:26
  • I was under the impression that hardware based raid required parity for automated 'scrubber' functionality (automatic corruption repair). This feature is not typically available for hardware based mirrors, right? – gravidThoughts Apr 7 '14 at 1:40
  • Corruption repair? With traditional RAID, if your data is corrupted, it's corrupted multiple times. ZFS attempts to fix this with RAID-Z, which is software-only. I think you're thinking of a write cache, which commits the write to flash-based memory with a backup battery so that if the drive fails during the commit process, it can be re-commited once the array comes back online. Software RAID does not have this, and mirrors do not need this. Only parity-based hardware-raid needs this. – Mark Henderson Apr 7 '14 at 1:49
  • I see. I thought some hardware controllers had ZFS like functionality. During idle it would compare parity against stored data and proactively find corrupted data and attempt to repair it. It may have not been clear but my question was about MS Storage Pools and ReFS, not hardware based RAID. – gravidThoughts Apr 7 '14 at 1:58
  • You get that with ACTUAL high end gear like NetApp, etc. Hardware sectors are 520 bytes to store additional ECC data for the sector. ZFS does not use RAID-Z to detect corruption - it also stores additional data to detect corruption on disk. Parity only helps you detect/fix corruption when you know which sector is bad or when you have multiple parity vectors (RAID6). If you read a RAID5 stripe and the parity doesn't jive, notwithstanding other information all you know is the whole stripe is bad. – MikeyB Apr 7 '14 at 2:06

Engineering is all about choices and trade-offs.

If you want speed? Mirror

If you favor cost? Parity

Neither is better than the other. Ask the SysAdmin that is over budget but has too few users to appreciate the aggregate speed achieved by mirroring, or the SysAdmin that impressed his/her boss by saving money but now the company is going out of business because users are leaving because their site is unusable slow.

Also consider the performance during rebuild time. Both have some performance loss due to the fact that both require reading and writing one disk worth if information. On the other hand the performance loss is worse for mirroring (I think, I may have reversed that).

| improve this answer | |

Not the answer you're looking for? Browse other questions tagged or ask your own question.