RAID controller
What is a RAID controller?
A RAID controller is a hardware device or software program used to manage hard disk drives or solid-state drives 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 speeding up access to stored data.
What a RAID controller does
A controller offers a level of abstraction between an operating system (OS) and the physical drives. A RAID controller presents groups of or sections of drives to applications and OSes 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 OSes, 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 10 different RAID configurations, as well as numerous proprietary variations of the standard set of RAID levels. A RAID controller supports a specific RAID level or group of related levels.
Hardware RAID controllers
In hardware-based RAID, a physical controller is used to manage the RAID array. The controller can take the form of a Peripheral Component Interconnect or PCI Express (PCIe) card, which is designed to support a specific drive format, such as Serial Advanced Technology Attachment (SATA) or Small Computer System Interface (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 about $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 $1,000.
Broadcom, Microsemi Adaptec, Intel, IBM, Dell and Cisco are some of the companies that offer hardware RAID controllers.
Some key features that you have to decide on when selecting a hardware RAID controller are the following:
- SATA and/or Serial-Attached SCSI -- and related throughput speeds.
- RAID levels supported.
- OS compatibility.
- Number of devices supported.
- Read/write performance.
- Input/output operations per second rating.
- Cache size.
- PCIe interface.
- Encryption capabilities.
- Power consumption.
Software RAID controllers
A RAID controller may also be software-only, using the hardware resources of the host system, particularly the host's central processing unit and dynamic RAM. 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 are 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 affecting the performance of applications that also run on the host.
Some OSes include RAID controller software. For example, Windows Server provides RAID capabilities with its Storage Spaces facility. Most enterprise-class versions of Linux servers 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 and SoftRAID. 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 managing the shared storage system.