A RAID controller is a hardware device or software program used to manage hard disk drives (HDDs) or solid-state drives (SSDs) in a computer or storage array so they work as a logical unit. A RAID controller provides a degree of protection for stored data and may also help to improve computing performance by accelerating access to stored data.
What a RAID controller does
A controller offers a level of abstraction between an operating system and the physical drives. A RAID controller presents groups of or sections of drives to applications and operating systems as logical units for which data protection schemes can be defined. The logical units appear as drives (or portions of drives) to the applications and OSs even though they may comprise parts of multiple drives. Because the controller has the ability to access multiple copies of data on multiple physical devices, it has the ability to improve performance and protect data in the event of a system crash.
There are about ten different RAID configurations as well as numerous proprietary variations of the standard set of RAID levels. A RAID controller will support a specific RAID level or group of related levels.
Hardware vs. software RAID controllers
In hardware-based RAID, a physical controller is used to manage the RAID array. The controller can take the form of a PCI or PCI Express (PCIe) card, which is designed to support a specific drive format such as SATA or SCSI. (Some RAID controllers can also be integrated with the motherboard.) Hardware RAID controllers are also often referred to as RAID adapters.
The prices of hardware RAID controllers vary considerably, with desktop-capable cards available for less than $50. More sophisticated hardware RAID controllers that can perform well enough to support shared networked storage are considerably more expensive, typically ranging from a few hundred dollars to more than a thousand.
LSI (now part of Broadcom), Microsemi Adaptec, Intel, IBM, Dell and Cisco are just some of the companies that offer hardware RAID controllers at this time.
Some key features that you will have to decide on when selecting a hardware RAID controller include:
- SATA and/or SAS interface (and related throughput speeds)
- RAID levels supported
- Operating system compatibility
- Number of devices supported
- Read/write performance
- IOPs rating
- Cache size
- PCIe interface
- Encryption capabilities
- Power consumptio
A RAID controller may also be software-only, using the hardware resources of the host system, particularly the host’s CPU and DRAM. Software-based RAID generally provides similar functionality to hardware-based RAID, but its performance is typically less than that of the hardware versions.
The main advantages of using a software RAID controller is flexibility and low cost because special hardware isn’t required. It is important, however, to ensure that the host system’s processor is powerful enough to run the RAID software without negatively impacting the performance of applications that are also running on the host.
Some operating systems include RAID controller software. For example, Windows Server provides RAID capabilities with its Storage Spaces facility. Most enterprise-class versions of Linux servers also provide RAID controller software via the Linux mdadm utility.
There are also third-party software RAID controllers available, including products such as SnapRAID, Stablebit DrivePool, SoftRaid and FlexRAID, These programs are typically adequate for small installations but may not stand up to the storage performance and capacity requirements of business environments.
Some commercially available storage arrays employ software RAID controllers, but typically the software is developed by the storage vendor and enhanced to provide adequate performance. Also, the storage systems hosting software RAID controllers are typically built around potent processors that are dedicated to controlling and managed the shared storage system.