RAID storage is often associated with high performance. However, RAIDs can present unexpected performance challenges and do not always provide the benefits you may expect.
Following are some things to consider when attempting to transfer high-speed data with RAID storage at the source or destination. For general information about optimizing storage hardware, see Tech Note 0023.
RAID Theory
The primary purpose of a RAID storage system is data integrity, not high performance. Performance improvements compared to single-disk storage can sometimes be achieved by striping data across multiple drives. However, the overhead of controlling the data distribution, calculating parity information, and mismatches between the controller configuration and data access patterns can actually result in much slower performance.
Software versus Hardware
Software RAIDs rely on the CPU and motherboard I/O to distribute storage operations across multiple drives. When transfer speeds are in the hundreds of megabits per second or faster, the CPU or I/O bus can become a severe bottleneck. This is especially true for network data transfer, which also relies on the CPU and I/O bus.
Hardware controllers are strongly recommended for transfer rates of hundreds of megabits per second or faster.
Caching Policy
RAIDs may be configured to maximize either reliability or performance. Generally one comes at the expense of the other.
For maximum performance, be sure to enable caching features such as "read-ahead", "write-behind", "write-back", "audio-video", or "streaming".
Be sure to disable features such as "write-through", "synchronized", or "atomic". It may also be necessary to disable "mirroring", particularly for software RAIDs.
Different controllers may use different terminology, so consult your documentation or vendor for specific information on maximizing performance.
Firmware & Drivers
Check that your controller firmware is up-to-date and that you have the correct driver version installed. Also make sure you are using the correct configuration software.
Note that some RAID controllers ignore or override operating system settings. For example, the operating system may request read-ahead caching, but the RAID controller may have it disabled. Therefore you cannot rely on registry or sysctl settings.
Contention
Hard-disk performance is reduced exponentially when multiple processes access the same disk at the same time. RAIDs may reduce this effect through caching and striping, but only up to a point. Modern operating systems often have disk access occurring in the background, so contention is always an issue.
For more information about hard-disk contention issues, see Tech Note 0023.
For example, a storage system which may be able to sustain 1 gigabit of throughput for a single sequential data read, may be reduced to less than 100 megabits per second of total throughput when two reads are being performed in parallel. When considering performance statistics, random-access benchmarks will be much more indicative of performance under load than the more commonly cited sequential access benchmarks.
Performing high-speed data accesses in series rather than parallel will usually result in faster over-all performance.
Tech Note History
Mar | 30 | 2011 | Links to TN0023 |
Nov | 17 | 2010 | Disable Mirroring |
Nov | 03 | 2009 | First Post |