Hardware RAID controllers are considered 'the best' solution for high
performance and high availability. However, this is not entirely true. Using a
hardware RAID controller might even endanger your precious data.
For enterprise environments, where performance is critical, it is more
important that the arrays keeps on delivering data at a high speed.
Professional RAID controllers use TLER with TLER-enabled disks to limit
the time spend on recovering bad sectors. If a disk encounters a bad sector,
there is no time to pause and try to fix it. The disk is just dropped out of
the RAID array after just a couple of seconds. At that moment, the array still
performes relatively well, but there is no redundancy. If another disk fails
(another bad sector?) the array is lost, with all its data.
More people are building NAS boxes for centralized storage of data, for
private home use. Since disks are cheap, it is possible to create lots of
storage capacity for little money. Creating backups of terabytes of data is
however not cheap. Or you have to create two NAS boxes. But that is very
expensive and not worth the effort.
People seem to spend lots of money on expensive enterprise level hardware RAID
cards, not understanding that the whole TLER-mechanism causes an increased
risk for their data. In enterprise environments, budgets are relatively big,
and data is always backed up. They can afford to take the risk of losing a
RAID array due to these backups. But consumers often don't have the money to
spend on creating backups of terabytes of data. They just go for RAID 5 or
RAID 6 and hope for the best.
For consumers, if the RAID array goes, all data is lost.
So consumers should choose a RAID solution that will do its best to recover
from hardware failure. Performance is not so much an issue. Reliability is. So
consumers do want disks to spend 'ages' on recovering bad sectors if this
means that the RAID array will survive.
Linux software RAID and ZFS do not use TLER and therefore are a safer choice
for your data then regular hardware RAID controllers. You may still use such
controllers (but please test them properly) but only to provide SATA ports
with individual disks, the RAID part should be handled by Linux.
So in my opinion, hardware RAID controllers are more expensive, require more
expensive (enterprise) disks and are less safe for your data.