We have a central storage server (PowerEdge R720) serving shared files to an HPC cluster, and it has two hardware RAID controllers attached (PERC H810, each driving 2 MD1200 enclosures filled with 7200rpm 4TB disks). As with typical HPC workload, the access pattern is expected to be highly parallel sequential reads/writes. I suppose striping files to the two arrays would give better total throughput, but the idea of software RAID 0 on top of hardware RAID sounds crazy to me.
I came up with two options:
- NFS on XFS on software RAID 0 on hardware RAID 6
- lustre on each hardware RAID 6
XFS pros: project quota.
XFS cons: NFS on XFS showed very bad metadata performance (would degrade to nearly unusable when there's large throughput on it, did I tune it wrong?).
lustre pros: significantly better metadata performance.
lustre cons(?): we have no dedicated metadata device, have to partition an array. Sounds like not a recommended practice.
We considered metadata performance, because while sequential R/W is the primary workload, we have some programs working with something like ~40k 1GB files. Managing these files interactively does require an acceptable metadata performance.
And a question at last, what stripe sizes to use on the hardware and the software?