Managing RAID on Linux - Derek Vadala [80]
Controller Memory
The controller uses memory to cache data during write operations. This process improves overall write performance and helps the system recover from a crash by storing unwritten data in the controller cache and committing the data to disk when the system restarts. The more controller cache you have, the more data the card can buffer before committing the data to disk.
All RAID controllers come with a fixed amount of onboard memory, but it can usually be augmented by purchasing memory expansion kits.
* * *
Tip
In some cases, memory expansion kits are available only at the time of purchase. You may not be able to order the kits standalone and install them yourself. While many RAID controllers use standard 72-pin SDRAM DIMMs (Dual Inline Memory Modules), purchasing untested third-party upgrades is likely to void the controller's warranty. Please check with the vendor before upgrading any controller.
* * *
Purchasing additional controller memory is a good idea if you typically work with a lot of large files, such as audio, video, or image files. If you have a lot of small files or files of varying sizes, additional cache memory is unlikely to improve performance. In general, additional controller cache memory will improve performance on systems that have a lot of large sequential file I/O. Systems that lean toward random I/O on small files won't see much of a difference. A typical office file server probably doesn't need extra memory. A graphics or video production workstation does.
Battery backed-up cache memory
Many high-end controllers support an optional battery pack that ensures that data in the controller cache memory is preserved during power failures. The amount of memory you have on your controller generally affects how long the cache memory will be preserved when the system loses power. Thus, if you purchase a controller with extra memory, the time that the controller can preserve data in the cache decreases. Cards with less memory can store data in the cache for a longer period because there is less memory to power.
Product specification sheets or pre-sales materials should provide you with a chart showing the length of time that cache memory will be preserved, based on how much memory you have. Some vendors increase the number of batteries based on the amount of memory installed, so that the duration of time when memory is preserved is consistent, regardless of how much memory you purchase. Check the specifications prior to purchase to make sure that the controller and memory combinations meet your needs.
JBOD (Just a Bunch of Disks)
While nearly all controllers support JBOD mode at this point, it's still a good idea to check with your vendor before purchasing. In particular, make sure that Linux will recognize disks that are connected to the controller but are not part of any array. If you don't buy a card that supports JBOD mode, you'll need a separate controller for any non-RAID disks you want to connect to the system. Usually there are a couple of controllers on the motherboard, but it's best to double-check.
Software Considerations
There are also software issues to consider. First, is the controller you are thinking about purchasing supported by Linux? If there is support, is it open source and integrated into the kernel? Or is it available only as a kernel patch or as a binary-only kernel module?
Integrated open source support is obviously