In the last two episodes of our “Server Talk” podcast we have focused on the topic of RAID and storage media. Now, we’re going to put some of these pieces of information together and look at how storage systems can be configured with a RAID controller.
One of the basic components of a storage system is the host bus adapter (HBA) which provides connectivity between a server and a storage device. Though HBAs do not inherently provide RAID functionality, they can be used with software RAID for some degree of redundancy. “Software RAID” simply refers to configurations where the RAID task is executed using the processor on the server. In other words the software RAID code utilizes the calculating power of the computer’s CPU, sharing the same computing power used by the operating system and associated applications. Software RAID can only consistently allow for RAID levels 0, 1, and 10 – remember back to the RAID levels we discussed in our introduction to RAID.
In contrast to software RAID, “hardware RAID” involves the RAID task being executed by the processor of a dedicated card or RAID controller. Generally speaking hardware RAID is superior to software RAID, with several notable advantages including:
- Full range of RAID configuration levels (RAID 0, 1, 5, 6, 0+1, 10, 50, 60, etc.)
- Dedicated processor and memory to execute the RAID application, offloading the task from the server processor and improving performance
- More features which are not possible with software RAID (e.g. power failure protection, caching, etc.)
Hardware RAID can be integrated into the motherboard, but typically the best hardware solutions call for an add-on card which connects to the motherboard and storage drives, typically through PCI-e slots.
Choosing a RAID Card
Add-on RAID cards are generally the most flexible, scalable and best-performing hardware setup as multiple storage and RAID arrays can be added without decreasing the performance of the host system. This becomes even more important with RAID configuration levels that involve calculating parity (RAID 5, 6, 50, 60).
There are a few things to consider when looking at different RAID cards:
- Onboard memory / cache
- Battery backup unit (BBU)
- RAID levels supported
- Number of ports
- Brand (there are only a few major ones) – LSI, Adaptec, Areca, etc.
Typical RAID controllers run between 256MB-1GB of cache memory; some cards allow for memory expansion. Cards also offer a battery backup unit option for enhanced protection in case of power loss. In the case of a power failure, data can remain in the cache for a certain amount of time until power is restored, further ensuring data integrity.
In general, most RAID cards provide access to all of the different RAID configuration levels, though only some may allow for single disk and JBOD ‘just a bunch of disks’ setups.
Different RAID Controller Configurations
There are a few different ways you can configure the physical components involved in hardware RAID. Technically this can be done with both software RAID (HBA) and hardware RAID (RAID controller) setups:
- One chassis, RAID controller installed on motherboard
- Two chassis, RAID controller installed on motherboard and runs via backplane with expander out of the chassis to connect to a second system containing only drives (JBOD)
- Two chassis, RAID controller installed on motherboard in server with no drives (compute server only) and runs via backplane with expander out of the chassis to connect to second chassis containing only drives (JBOD)
- Typically high-end RAID solutions utilize this method as the computational aspect of the system is isolated, allowing for a more dense / compact / or powerful system as needed
While there are more complex configurations for storage solutions, this provides a basic overview of what a storage system with hardware RAID and a RAID controller looks like.