Does a RAID controller with an NV cache improve the performance or integrity of an SSD array?
Solution 1:
If used with SSDs without powerloss-protected write cache, the RAID controller's NVCACHE is extemely important to obtain good performance.
However, as you are using SSDs with powerloss-protected write caches, performance should not vary much between the various options. On the other hand, there are other factors to consider:
- with hardware RAID is often simpler to identify and replace a failed disk: the controller clearly marks the affected drive (eg: with an amber light) and replacing it is generally as simple as pull the old drive/insert the new one. With a software RAID solution, you need to enter the appropriate commands to indentify and replace the failed drive;
- hardware RAID presents the BIOS a single volume for booting, while software RAID shows the various component devices;
- with the right controller (ie: H730 or H740) and disks (SAS 4Kn) you can very easily enable the extended data integrity field (T10/T13);
- hardware RAID runs an opaque, binary blob on which you have no control;
- Linux software RAID is much more flexible than any hardware RAID I ever used.
That said, on such a setup I strongly advise you to consider using ZFS on Linux: the powerloss-protected write caches means you can go ahead without a dedicated ZIL device, and ZFS added features (compression, checksumming, etc) can be very useful.
To directly reply to your questions:
- Are any of these configurations at risk for data loss or corruption on power loss? No: as any caches is protected, you are should not corrupt any data on power losses.
- Which configuration should I expect to have the best write performance? The H740P configured in write-back cache mode should give you the absolute maximum write performance. However in some circumstances, depending on your specific workload, write-through can be faster. DELL (and LSI) controller even have some specific SSD features (ie: CTIO and FastPath) which build on write-through and can increase your random write performance.
- Are there any other benefits to an NV cache that I haven't considered? Yes: a controller with a proper NVCACHE will never let the two RAID1/10 legs to have different data. In some circumstances, Linux software RAID is prone to (harmless) RAID1 mismatches. ZFS does not suffer from that problem.
Solution 2:
Q1: Are any of these configurations at risk for data loss or corruption on power loss?
A1: You shouldn't have any issues, unless you'll configure cache in write-back mode, and w/out NV RAM.
Q2: Which configuration should I expect to have the best write performance?
A2: One having biggest amount of cache obviously! ...and no parity RAID, but RAID10 of course.
Q3: Are there any other benefits to an NV cache that I haven't considered?
A3: Write coalescing, spoofing etc. But these are minor really.