What Read Ahead setting on a RAID controller should be used for various workloads?

Solution 1:

First use-case: Small File Server

You have so few demands on that system that optimizing the read-ahead settings won't get you much. Such workloads are significantly random I/O, but infrequent. Read-ahead will get some advantages, but the users aren't likely to notice.

Second use-case: Backup-to-Disk target

This type of system will be primarily write. Read-ahead in this instance is not used much since it's writing most of the time. The cache will be used to reorder writes. Which should go pretty well since this is primarily sequential writes happening (unless it's a deduplication system, at which point it'll be highly random) which makes things go a lot faster.

The caveat here is if backups are later staged to tape. The staging process will be primarily read, and if you're doing that kind of thing Read Ahead settings will absolutely net you gains so set them as high as you can (sequential writes mean sequential reads here! Unless it's a dedupe system, at which point it doesn't matter any more).

Third use-case: VM Host

This type of system is the most demanding on storage since it's a highly random mix of I/O types. Of the three types presented, it'll need the most tuning. Some read-ahead will be valuable, but not much due to the nature of the I/O demands.