4

RAID 5 has gotten some bad rep lately mainly because disks got so big and that in a rebuild case a bit failure on the remaining disks is likely.

Nevertheless, I'm curious about something: I read that when using RAID 5 with a hardware controller that does not have a cache, each write requires multiple reads from the other disks and this is bad and slow.

I'm curious whether Storage Spaces with parity in this case would actually outperform the hardware raid 5 and also require fewer reads for a write since I assume that it does use (ram based) caching?

matthias_buehlmann
  • 488
  • 1
  • 6
  • 19

1 Answers1

6

RAID5 (just like any parity RAID, f.e. RAID6 or RAID4) has to read the data before applying writes regardless of cache or no-cache on controller. See:

Read-Modify-Write Vs. Read-Construct-Write

Windows Storage Spaces are infinitely slow (esp. dual parity which is diagonal parity actually taken nearly AS IS from Azure, see Erasure Coding in Azure) so if you have an option to stick with cache-equipped hardware RAID - go for it! It will help with write coalescing by "glueing" multiple writes into single RAID strip update. ZFS which works with variable-size strips so has no mentioned "write hole" is another option, see "Write hole" and why ZFS is immune to it.

Good luck!

BaronSamedi1958
  • 13,676
  • 1
  • 21
  • 53
  • 1
    true, but with cache it shouldn't have to read it multiple times, while without cache it aparently does – matthias_buehlmann Dec 11 '19 at 17:47
  • 4
    With or w/out cache parity RAID works in exactly the same way. BTW, read about MD strip cache in Linux. https://www.kernel.org/doc/html/latest/driver-api/md/raid5-cache.html – BaronSamedi1958 Dec 12 '19 at 17:18
  • according to this https://www.dell.com/support/article/us/en/04/sln164091/perc-performance-concerns-for-raid-controllers-without-cache-h330-h310-s130-s110-s300-s100-h200-sas-6-ir-sas-5-ir?lang=en RAID5 incurs additional reads if used with controller without cache. maybe this is DELL specific though – matthias_buehlmann Dec 13 '19 at 13:36
  • 4
    This is due to on-disk individual caches disabled when used with RAID and need to synchronize multiple writes among all the spindles in RAID strip (they can be postponed with BBU-equipped WB cache). Amount of reads is always the same, your link says nothing about read amplification w/out cache. – BaronSamedi1958 Dec 15 '19 at 17:24