I am planning to purchase a server (Dell PowerEdge R740) with SSDs in RAID 10, and my priorities are write performance and data integrity. It will be running Linux. The SSDs have write caches with power loss protection.
It seems like these are my RAID options:
- PERC H330 (no cache), software RAID (pass-through)
- PERC H330 (no cache), hardware RAID (write-through)
- PERC H730P (2 Gb NV cache), hardware RAID (write-through)
- PERC H740P (8 Gb NV cache), hardware RAID (write-through)
My questions:
- Are any of these configurations at risk for data loss or corruption on power loss?
- Which configuration should I expect to have the best write performance?
- Are there any other benefits to an NV cache that I haven't considered?
Related questions:
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:
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:
A1: You shouldn't have any issues, unless you'll configure cache in write-back mode, and w/out NV RAM.
A2: One having biggest amount of cache obviously! ...and no parity RAID, but RAID10 of course.
A3: Write coalescing, spoofing etc. But these are minor really.
You might want to use Bonnie++ to do tests on server raid cards/Perc vs SSD. the HDD speeds 5k/10/16k rpm or hybrid drives will vary the stats and cache use.
another advocate for ZFS.. I started using SGI's servers in the mid 90's and ZFS knocked the spots off anything UFS/ext2/3 related.. its bombproof.
In addition to the good answers above: an item often forgotten but required for the extended integrity of any RAID is data scrubbing aka media patrol or read patrol. This makes sure that all data on all disks is readable over an extended time.
Without scrubbing it is possible - and after an extended period of time and a large number of sectors even probable - that data sectors that haven't been used for a very long time are not readable any more. In normal operational mode this isn't a problem as the bad sector can be reconstructed using redundancy data. However, if a disk fails you've already lost redundancy (except for RAID 6 or nested RAID levels) and when a bad sector surfaces during rebuild you're dead in the water.
So, always enable data scrubbing unless you like unpleasant surprises.