I'm building a new file server to replace an existing server. The current workload is about 50 connections that are heavily reading and writing files all day long. It is about 50/50 read to write. Most of the files are less than 10MB, though some files near or exceed 1GB. All files need to be on the same volume. We will be using Linux, and will have access to hardware RAID.

For the moment we are limited to physical 15K disks, likely not more than 6 or 8 disks.

What RAID configuration should I use for optimal performance, total disk space is not a concern?

I am considering RAID 1+0. However given our workload, it has been suggested that due to the random access and how the data is striped, that a 6 disk RAID 10 config. won't perform any better than a simple mirror; that the random access and queuing will make that moot and all the disks in the stripe will need to be read for the task of one of the 50 before a task for the next of the 50 is performed. Is anyone aware of any hard data that concurs with or refutes that point?


Who gave you that advice? They're an idiot. Large contiguous reads and writes benefit from a large stripe size (which, in extremis, might be "the size of the disk"), but you've explicitly said that you've got random access, which benefits from RAID-10 immensely.

To get maximum performance, yes, you will have to correctly size your stripes, and that's not something that we can help with -- you'll need to experiment with the configuration under your specific workload to get some idea of what'll be optimal for you.

You're unlikely to get any "hard data" (whatever that means to you) relevant to your situation, because every workload and RAID setup is different (that's why I encourage you to benchmark your environment), and you haven't given enough data to come even close to being able to understand your situation with enough detail to give hard data.

  • Agreed. How sure are you that your performance is actually 50% writes? That would be exceptional, though not unprecedented. – Matt Simmons Aug 5 '11 at 1:09
  • It is essentially batch processing. The clients read a file in order, process in memory, and write a file at the same time. At times they read more than they write, other times they write more than they read. It averages out close to 50/50. 50 clients do this work at the same time and do so non-stop for hours. Under current rules, they all need to do so on the same volume. – someguy Aug 5 '11 at 1:57
  • Fix that rule. It's idiotic. – womble Aug 5 '11 at 2:14
  • Easier said than done, and potentially done eventually. However, in the mean time, I need to architect a volume that performs the best it can under the circumstances. – someguy Aug 5 '11 at 2:59
  • 2
    Everything is easier said than done; if you take that attitude you'll be forever cursed with crap architecture and substandard service levels. Do it right or do it over. – womble Aug 5 '11 at 3:41

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.