A disk array controller (often referred as RAID controller) is required to implement RAID functions. There are two options, by using operating system (software) or a dedicated hardware (integrated chip/expansion card) to manage the data flow to the disk arrays.
Software based controller
- Low cost. Some operating system include software RAID feature, so there is no extra cost.
- Performance is lower. The performance is largely affected by the available CPU, memory, and RAID level. RAID 5 configuration (with parity) would has worse performance than RAID 0 / RAID 1 configuration.
- Higher overhead as the software is taking up server CPU and memory.
- No disk hot swap
- High cost.
- High performance (dedicated component, provide read/write cache)
- No overhead (Doesn't require processor resource)
- Hot swap
Most of the mission critical server nowadays use hardware based controller as the cost has been reduced significantly especially for RAID 0 and RAID 1. Some of the motherboard even come with an embedded RAID controller.
Dell PowerEdge RAID Controller (PERC)